gtk_main() in its own thread, and does nothing on subsequent calls. This
ensures that gtk_main is only running once.
* ./modules/gui/familiar/*, modules/gui/gtk/*: the familiar, gtk and gnome
modules are now fully reentrant thanks to their use of the gtk_main module.
* ./src/libvlc.c: implemented vlc_set(), a wrapper for config_Put* available
to external programs.
* ./src/libvlc.c: removed vlc_stop() and vlc_end(), everything is now done
by vlc_destroy().
* ./modules/control/rc/rc.c: implemented a few new functions. For instance,
run "vlc -I rc" and then type "intf gtk" or "intf gnome". You can even
launch several of them. "segfault" works, too.
(faad2).
* modules/demux/mp4/libmp4.c : could compile without zlib.
* modules/codec/ffmpeg/* : set error resilience to -1 by default.(in
order to decode more files, but it could produce segfaults ... )
* Makefile.*, configure.in : enable mp4 by default, add faad
module (disabled by default ).
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.
libdvdplay installed (available from videolan CVS), and request plugins
compilation in the usual way:
--enable-dvdplay.
Note that libdvdplay needs libdvdread and libdvdcss.
Currently it has only been tested under linux, with gnome interface (optional)
and xvideo output.
What works (more or less):
-DVD reading in some rare cases :) (title and menus),
-Menu pause,
-Seeking,
-Selecting directly a specific title/chapter/angle,
-Changing audio, sub-picture, angle during playback,
-Interactive menus with mouse only.
What is missing:
-Menu buttons highlighting (needs spudec patch),
-Keyboard interaction (needs a specific part in port specific plugins),
-A specific interface to navigate through menus (needs that I move my ass),
-Interactive menus won't work with other output plugins so long as they
have not been patched to send mouse/keyboard events to vlc interface,
-Whatever you need.
Known bugs (bugs in libdvdplay mostly):
-Seeking in some menus or intro titles (bad vobu map),
-Read/seek error with some DVDs,
-the configure needs tweaking,
-numerous segfaults,
-decoder/output modules locking error,
-fuzzy colors in menus when spudec is active (default in menus).
The plugin is not guaranteed to work anywhere outside my computer. If it break your, don't come and complain to me :).
* ./src/interface/interface.c: interfaces are no longer attached only to
p_vlc.
* ./src/libvlc.c, ./src/misc/modules.c, ./src/playlist/playlist.c,
./src/input/input.c: improvements in the playlist handling (not quite that
yet though).
(ported from v0_4_1_branch)
* ./configure.in, ./plugins/mpeg_system/mpeg_ts.c: fixed libdvbpsi handling.
* ./src/misc/configuration.c: fixed the --nofoo option handling.
* ./src/interface/main.c: fixed two compilation warnings under Solaris.
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.
might not work! To compile this stuff you need a mingw compiler with
w32api-1.3.
The win32 code uses the getaddrinfo function because inet_pton is
supposed to be deprecated and not supported by Microsoft. gethostbyname2
isn't supported as well. Maybe we could try to unify the ipv6 plugin and
have all the ports use getaddrinfo ? (I didn't dare to do it because I
don't want to break anything before a release ;-)
* Objective-C files are now .m
* Fixed a major bug in the spu decoder
* Disabled auto-hiding of mouse cursor since it doesn't work when browsing
menus ; instead, click in the video window
* ./include/video.h: moved vout_CopyPicture out of the way, an inline
function did not make sense here.
* ./include/video.h: moved vout_ChromaCmp out of the way.
* ./plugins/avi/fourcc.h, ./include/video.h: merged these two files into
video.h.
* ./include/os_specific.h: this file is now always included.
* ./include/debug.h: removed this file which was almost useless, and moved
ASSERT to common.h.
* ./include/common.h: fixed vlc_memalign and changed its prototype to
follow posix_memalign's.
* ./Makefile: we don't include the Gtk+ and SDL DLLs in the win32 package
anymore, the package is now 700k instead of 4MB.
* ./configure.in, ./Makefile, ./Makefile.opts.in: replaced LIB_FOO with
foo_LDFLAGS and CFLAGS_BAR with bar_CFLAGS for faster builds, and moved a
lot of stuff from Makefile.opts.in back to configure.in.
* ./install-win32: updated script for NSIS 1.96.
I hope this doesn't break too many other architectures...
* ALL: removed libdvdread from the vlc tree.
* ./acconfig.h: removed this file.
* ./plugins/dvd/dummy_dvdcss.c: merged this file into dvd.c.
* ./AUTHORS: moved a few gentlemen to the libdvdcss AUTHORS file.
* All intf_*Msg functions now write to stderr.
* Implemented a message queue interface plugins can subscribe to.
* Wrote the logger interface plugin. Usage:
vlc -I logger:filename.log
* Lots of fixes in the SPU renderer.
waveOut API which is a lot easier to use for streaming stuff than
directsound. (you don't have to take care of underflows anymore
because it doesn't use circular buffers).
If you are having a lot of underflows, this plugin is currently
better adapted than the directx plugin.
* Moved some initialization stuff in audio_out.c so we can now the
caracteristics of the audio stream before calling aout_Open().
It is now activated with option --with-dvdread, that takes the same options
as --with-dvdcss.
If you link with libdvdread statically dvdread is compiled builtin ; if you
link dynamically, it is compiled as a plugin.
* ./config.guess ./config.sub: latest GNU versions.
* ./configure.in: when possible, xvideo is compiled as a plugin.
* ./vlc.spec: fixed a few minor inaccuracies.
* ./debian/control: vlc-gui is no longer depended on, but rather recommended.
* ./src/interface/main.c: --spumargin flag; use this to force displaying
subtitles at the bottom of the screen instead of putting them in the
middle, for instance: `--spumargin 5'.
* ./include/config.h et al.: this file is no longer generated.
* ./include/video.h: we use the FOURCC definition of a chroma format to
describe picture types (see http://www.webartz.com/fourcc/).
* ./plugins/dvdread/input_dvdread.c: compilation fix by Eyal Lebedinsky.
* ./plugins/x11/xcommon.c: fixed the XShm operations order.
* 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.
* Prevent two SDL video outputs or audio outputs to be spawned at the
same time to avoid ugly crashes.
* The SDL plugin now says whether we are using software or hardware YUV
in its window title.
* We now stop at the first ':' when looking for a module name, to easily
pass information to the modules. Possible example: --vout sdl:software,
implementation of such an option is left as an exercise.
* Merged filter_bob and filter_bob422 into filter_bob. Use --filter bob
to deinterlace 422 into 420 as well.
* Factorized code common to most filters and the video output, optimized
a few filters by aligning data and reading 64 bits at a time.
* Two new absolutely useless, CPU-eating, resource-wasting, but fun
filters: enjoy `transform', which performs flips and 90� rotations, and
`distort', which performs animated image effects (currently only a naive
sine wave is implemented). Usage examples:
--filter transform:hflip
--filter transform:vflip
--filter transform:90
--filter transform:180
--filter transform:270
--filter distort:wave