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.
* ./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'.
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.
* ./src/video_output/vout_pictures.c et al.: vout4 now automatically
detects when two chroma formats are the same, such as UYVY/Y422, or
roughly equivalent, such as I420/YV12. Plugins need not worry about
conversion anymore.
* ./MODULES: added a short description of each module. Maybe we should
add more details to make this file really useful.
* ./doc/bugreport-howto.txt: wishful thinking...
* ./Makefile: added a workaround for the fact that .c files don't depend
on <videolan/vlc.h>.
* ./plugins/memcpy/memcpy.c: all memcpy modules are now built from the same
single file.
* ./src/interface/main.c: added the --nommx, --no3dnow, --nommxext, --nosse
and --noaltivec options to vlc.
* ./configure.in: removed the --disable-mmx option, now useless because
of the vlc --no* options.
* ./src/interface/main.c: fixed a crash caused by the memcpy module
being released too early.
* ./include/video.h: more vout4 changes, including margin support, more
FOURCC formats recognized, transparent support of identical or almost
identical FOURCC formats.
* ./include/video_output.h: added a vout_Render function to video output
modules which is to be executed before vout_Display.
* ./include/common.h: this header is back.
* ./plugins/chroma/i420_rgb.c: planar YUV 4:2:0 to packed RGB conversion
functions, mostly taken from vout3's yuv functions, but heavily modified
to use FAST_MEMCPY and to handle image dimensions which are not multiples
of 16. Not all functions have been written yet, though.
* ./plugins/chroma/i420_yuy2.c: planar YUV 4:2:0 to packed YUV conversion
functions, various targets such as 4:2:2 YUYV, YVYU, UYVY, or 2:1:1 YUYV,
with accelerated MMX versions.
* ./plugins/chroma/i422_yuy2.c: same as i420_yuy2.c but takes planar YUV
4:2:2 pictures in input. With accelerated MMX versions as well. This plugin
makes it possible to display 4:2:2 files on most video cards without the
quality loss of 4:2:0 downsampling.
* ./plugins/filter/*: thanks to the vout_Render function, all filters now
output their data perfectly in sync.
* ./plugins/dvdread/Makefile: fix to prevent unnecessary target rebuilds.
* ./plugins/sdl/vout_sdl.c: support for YV12, UYVY, YUY2 and YVYU overlays.
* ./plugins/x11/xcommon.c: support for I420, YV12, YUY2 and Y211 overlays.