demux plugins (ps, ts, but also dvd*).
* ./src/input/mpeg_system.c: removed MPEG-related stuff from the vlc core.
* ./src/misc/modules.c: max recursion level is now 5.
* ./modules/access/dvdplay/es.c: fixed a buffer overflow.
waveout, directx, qnx, beos, win32, macosx, and the AltiVec modules.
* ALL: removed mention of AC3 in favour of A52.
* ./configure.in, ./Makefile*: modules can now be built deeper than 1
directory. As a consequence, the build is even slower (but I'm fixing
this) and make clean doesn't work anymore.
* include/input_ext-intf.h: killed p_es->b_audio, since i_cat already fills
its purpose.
* include/input_ext-intf.h: killed p_es->i_type in favour of p_es->i_fourcc.
* include/video.h: killed p_pic->p_plane->b_margin; now i_visible_pitch is
always valid.
* ./src/libvlc.h: replaced --mpeg-adec and --ac3-adec with --codec; see
vlc --help for more information.
* include/video.h: removed fourcc values which should _not_ be global
(thanks fenrir for convincing me).
* ALL: video output plugins use the VLC_FOURCC macro to build their fourccs.
* ./plugins/beos/InterfaceWindow.cpp: removed the last remaining call to
input_ChangeES.
Things I'm not sure about and need comments:
- I used "mpga" and "mpgv" for MPEG (1+2) audio and video fourcc values.
- I also introduced "spu ", "lpcm" and "ac3 ".
- I removed for instance "MP4_GetCodec" because it wasn't really
used except for the description string. I hope this change did not
break anything really important.
- fenrir, I must have broken a lot of things you wrote. Sorry in advance.
* ./src/libvlc.c, ./include/vlc/vlc.h: created reentrant versions of the
libvlc API.
* ./src/vlc.c: vlc uses the non-reentrant libvlc functions.
* ./mozilla/vlcplugin.c: the mozilla plugin uses the reentrant functions.
* ./debian/*: created packages for libvlc0-dev.
* ./src/playlist/playlist.c, src/input/input.c: added safety checks to
prevent crashes on next file.
(ported from 0_4_1_branch)
* ./plugins/gtk/gtk_display.c, ./plugins/win32/mainframe.cpp: we deactivate
popup menus when no stream is being played, even in network mode.
* ./src/input/mpeg_system.c: removed unnecessarily verbose message.
As for video output 4, this breaks almost everything, but I'll slowly
do what remains to be fixed during the weekend.
Changes in vlc:
===============
* vlc is now a very small program (20 lines) which uses the libvlc API;
it is quite simple for the moment but can be extended in the future.
* interfaces, decoders, video outputs, etc. are now almost the same
objects (yes, I know, this is C++ redone in C) and are structured in
a tree. More about this later, but basically it allows the following
nice features:
- several interfaces
- several playlists with several outputs
- input plugins spawning helper interfaces (will be used for DVD menus)
- anything spawning anything; I swear there are useful uses for this!
* libvlc can be used in other programs; I'm currently writing a Mozilla
plugin for my employer.
Things currently broken:
========================
* most interfaces, most ports
* the playlist handling (almost finished rewriting this though). This means
no file can be played from the GUI, you need to use the commandline. This
also means it segfaults at EOF, when exiting the program, and it sometimes
refuses to open a file when asked to.
* ALL: removed underscores from option names and made a few options more
self-explanatory, for instance --input_channel becomes --audio-channel;
run vlc -H to see what has changed.
* ALL: replaced many occurences of "plugin" with the word "module".
* ./src/interface/main.c: moved all satellite-specific configuration options
to the satellite plugin.
* ./po/*: updated translations.
needs nothing specific to change angle.
* Fixed a bug in clock management where ES without a program couldn't get
timestamped.
*Fixed program management in gnome/gtk. Program now also appears in popup.
*In interface, only display ES associated with the selected program, or with
no program at all.
- Major rewrite of the buffer core functions
- Modularity of access plugins (file, udp, http)
- Modularity of network stack (ipv4, soon ipv6)
- Autodetection of the type of stream
And a new killing feature : HTTP streams are now seekable.
Please note that dvd, dvdread and vcd plug-ins are broken and thus disabled.
of the real _Init or _Create functions. That's 1000 lines of code gained.
* ./src/misc/modules.c: we try not to keep the global lock in module_Need,
which should speed up output spawning.
* ./plugins/dummy/input_dummy.c: fixed vlc:quit command.
* ./plugins/gtk/gtk_playlist.c: compilation fix.
* ./plugins/macosx/*: preliminary fixes for the vout4 port.
Notes on the *_Probe eradication:
o I probably broke the DirectX video output, because of the "must init and
run in the same thread" issue. I'll fix this ASAP.
o Subtitles are broken (or at least, pretty ugly) in RGB mode.
o The input plugins still have *_Probe functions. This will disappear when
meuuh is finished with the access plugins.
o The decoder plugins still have *_Probe functions. This is probably not
going to change, it looks OK to me.
already a system macro under MacOS X.
* ./plugins/dummy/dummy.c: fixed vlc:loop, vlc:quit, etc. entries.
* ./plugins/glide/glide.c: activated double buffering.
* ./plugins/mga/xmga.c: started writing an xmga plugin; doesn't work yet.
* ./src/input/input.c: fixed the input memory leak, and the insane thread
spawning we got with vlc:loop.
* ./src/misc/intf_eject.c: disc ejection routine courtesy of Julien Blache,
currently Linux-only.
the chroma_i420_ymga module instead. This introduces a slight
performance issue as we now need to memcpy() the Y plane, but I have
some vout4 enhancements on their way which make this point moot.
* ./debian/changelog: imported official Debian changelog.
* ./debian/control: activated the vlc-mad and vlc-arts packages; package
builds should now work again.
* ./plugins/dvd/dvd.c: solved a symbol resolution issue when vlc was
compiled without libdvdcss which overflowed the return stack.
* ./plugins/ggi/ggi.c: ported the GGI plugin to vout4.
* ./plugins/glide/glide.c: ported the Glide plugin to vout4 (untested).
* ./src/input/input.c: prepared everything for multi-input mode; since
no interface is yet prepared to handle this, I changed them so that
they just use the first available input for now. This may break other
things, but I promise I'll eventually repair everything :-)
* Removed duplicate function checks from configure.in.
* Added extra magic to Makefile.modules so that the module Makefiles
are now ridiculously simple. And I mean *simple*. Check it! This will
make a possible switch to full autoconf/automake a lot easier.
* Added the vlc version name to the plugin symbols, to be sure we only load
plugins with the same version number. A nasty consequence is that you
need to rebuild your tree after midnight if you are using a CVS tree :-)
* Got rid of modules_export.h by #defining exported functions in the same
header as their prototype.
* Added modules_inner.h and other commonly used .h files to common.h so
there are less and less files to include, and renamed common.h to
<videolan/vlc.h>.
* First modifications to the module handling system towards my ultimate
goal to get rid of the *_Probe functions. Got rid of TestMethod and
TestCPU, as well as src/misc/tests.c.
* Wrote the chroma plugin handling functions. No YUV functions have been
ported yet because it'ls a lot of work, but the core system works, I
tried it with a naive yv12->rgb16 plugin (which will disappear when the
real functions are ready).
* Made a lot of functions in dvd_summary.c one-liners to avoid wasting
too many output lines.
* Fixed a segfault in input_dvd.c:DVDInit.
* Added a fixfiles.sh script in plugins/gtk to be run after Glade has
generated its C files.
* Did some work on the KDE interface to make it suck a bit less. It still
segfaults, but at least it runs and it looks less ugly.
* RGB SDL rendering works again, though in 16bpp only.
* Made plugins/vcd/linux_cdrom_tools.c independent of any vlc structure
so that it'll be easily put in a library. Maybe libdvdcss?
* Fixed VCD date display.
* Merged vout_xvideo.c, vout_x11.c and vout_common.c into xcommon.c.
* Wrote non-Shm XVideo output.
* Made X11 output work again. Still pretty unstable, only works for 16bpp.
* Additional french translation in po/fr.po. Any taker for the rest?
* Fixed a segfault in video_output.c when the allocated pictures were
not direct buffers.
* If $DISPLAY isn't set, don't try to run the Gtk+ interface.
* Replaced 48x48 .xpm images with 32x32 ones to conform to Debian policy
(Closes Debian bug #126939).
* Removed the automatic ./configure launch when running `make all' for
the first time.
Stuff currently more broken than it ought to be:
* The wall filter. Being fixed.
* x11 and sdl plugins for depth != 16bpp.
* Software YUV.
* gvlc, gnome-vlc, kvlc shortcuts. Use --intf instead for the moment.
* Put common_win32.h back into common.h -- it wasn't that big and we
should not multiply header files.
* Added gettext support by Thomas Graf <reeler@reeler.org>, may be
broken on other platforms but we'll only see it when I'm finished
with vout 4 :-)
* Fixed a segfault on exit when no fast_memcpy module was found.
input_thread_t structure, so that we may support multi programs
streams.
* Modified inputs to take account of this change.
* Modified input_clock.c so that it doesn't refer to pp_programs[0]
any more.
Now we should not refer to the first program, but to the selected
program. Functions to change the current program are coming.
* Added bytes_swap.h to provide ntoh() and htol() on Win32. With this
change we don't have to link winsock2 with every plugin anymore. This
should also give us a slight speed increase.
* Added #define WIN32_LEAN_AND_MEAN in threads.h to speed-up compilation
on Win32.
* Modified ac_downmix_3dn and sse so they compile with the latest gcc for
Win32.
(PS: the dvdread plugin doesn't compile yet on Win32)
* With -vvv modules now show up their scores ;
This afternoon I have been a little bored, so the feature of the day is :
* HTTP input support.
You can test it with :
./vlc http://mysite.com:80/mystream.mpg
It doesn't implement any kind of buffering, so make sure you have enough
bandwidth, otherwise you'll just get nothing.
It is compatible with HTTP proxy, just set http_proxy :
export http_proxy="http://proxy.mycompany.com:3128/"
Enjoy !
* Removed --enable-stats configuration directive. Stats are now activated
at runtime with --stats ;
* New intf_StatMsg() call ;
* Vout picture heap is now 8 pictures instead of 5 (better synchro) ;
* Tremendous enhancements in statistics display ;
* Better capabilities handling.
* Fixed a bug in the video decoder initialization :-p ;
* Added --smp option and several hooks in src/input/input_ext-intf.c ;
* Grayscale mode now turns off chroma IDCT.
time we restart the synchro (for scr discontinuity for instance)
*In DVD mode, we reinit the synchro only if the scr are not continuous
(instead of each cell)
*Try to improve ac3 spdif to prevent from desynchronization.
* The ALSA plugin is back.
* A gift for Gildas: plugins don't rely on backlinking any more. The
drawback is the dirty magic in include/modules_export.h which has to
be included whenever a module needs one of the functions in it. But
a) we should less and less rely on those functions
b) no plugin code modification was needed
The BeOS and MacOS X modules may be broken when compiled as plugins,
I'll check this later when I can reboot under BeOS.
title/chapter/audio/spu/angle, we tell the input to do intead of doing
it inside the interface. It results in fewer locks during the changes.
*The dvd plugin reads again blocks of 32 sectors to gain speed since
there are no more lock-ups during stream change. I've also created a new
file that contain function to described video and audio streams with ifo
datas.
The changes are made only for gtk. We should update the other interfaces
soon (beos at least).
There is a memory corruption somewhere that make the vlc crash. I've no
idea where to search.
fix: the output threads are now spawned when a decoder needs one,
so it can decide the audio frequency or the video window size. Still
under heavy construction, so don't get too excited at finding bugs
in it yet.
Note: this change broke the XVideo module, so I made its score much
lower than before. I suspect xvideo.so had a bug before which only
appears now. Other video output plugins may be broken as well, but
again this might be due to old existing bugs showing their ugly head.
* Fixed a few buffer overflows in the Gnome interface.
* The module bank is now a global variable. The video output bank and
the audio output bank might follow (when they exist).
* Coding style and organization fixes to the spdif decoder.
* autoconf and Makefile changes by Arnaud Gomes-do-Vale
<arnaud@carrosse.frmug.org>.
synchronized ; and menus have less chances to be changed when they're opened.
-added basic angle support ; this is a first try. It works with my 2
test-DVDs, but I'd like that people having DVDs with repeated scenes to
test it. We can choose angle with command line option -u (don't ask me
why :)
-a cosmetic change in css decryption.
Since config.h.in has changed, you have to re-run ./configure.
-New function input_ToggleES for interaction with interface.
-Changes in gnome interface : navigation menus are now splited, there
are radio item in menus and the code should be better.
-First step for dvd_ifo rewritting. Now allocation/disallocation is
being done as it has to be.
-Fixed a bug in title management that make dvd like Seven work.
interface.
It is a bit buggy yet, and some pieces of code need to change,
especially to handle better menus change when title change but it
eventually works.