evil, but if we don't do it now we'll have to do it when more people
are using it.
* Fixed minor libdvdcss stuff such as the soname and compilation flags.
* New --with-dvdcss flag.
Explanation:
o default: build libdvdcss, statically link vlc against it.
o --with-dvdcss=no: build libdvdcss, dynamically link vlc against it.
o --with-dvdcss=yes: don't build libdvdcss, use already installed one.
o --with-dvdcss=/foo: don't build libdvdcss, use libdvdcss from /foo/*.
(this looks a bit strange to me, I'll find better flag settings)
vlc's DVD input (looks like decoders are expecting data too early and
DVD input can't cope with it due to decryption). Needs to be investigated.
* Plugins are now compiled in plugins/* and libraries in lib/*.
* The KDE UI compiles again but does not work yet.
* ALSA plugin message corrections.
* Calculation modules can now be calledwith a shorter name
(eg. '--downmix mmx' instead of '--downmix downmixmmx').
* Fixed insane verbosity of the SDL plugin.
- defined off_t as a long long. This allows DVD navigation to work.
This change is to be implemented on a compiler by compiler basis. For
now, it works on mingw32 (tested) and should work on MSVC (not tested).
- Implemented a quick and dirty hack in intf_msg.c to be able to display
long long integers with printf on Win32. This change is also necessary
to avoid segfaults when debug is enabled in vlc on Win32.
- few minor changes in the directx plugins.
- defined snprintf in common.h and removed a few #ifdef WIN32
and stderr to the specified file. This option should mainly be useful
on Win32.
- On Win32, vlc now has an icon associated to the .exe file, and is a full
GUI application (you don't have this annoying dos command box anymore)
- Added INSTALL-win32.txt for specific details to the Win32 port.
I've tested these changes on Win32 and Linux, let's hope I didn't break
vlc for other platforms.
--
Gildas
It works at last! configure with --enable-profiling, build, run
vlc (you may want to add --noaudio, it currently segfaults with sound
here) and launch "gprof vlc" when finished.
To make gprof work with multithreaded programs, one needs to set the
internal ITIMER_PROF timer for each new thread launched. I did this
through a wrapper in vlc_thread_create (see include/threads.h).
* Merged dvdcss_init and dvdcss_open into dvdcss_open, and dvdcss_close
and dvdcss_end into dvdcss_close. libdvdcss API now has 7 functions.
* Another failed attempt at profiling vlc under Linux: ported the
threads API to GNU Pth. Activate with --enable-pth. It doesn't seem to
spawn new threads for me, maybe someone will have better luck.
* Makefile optimizations.
* Automatic build of libdvdcss if not found.
about this in a forthcoming post here).
* Fixed the painfully slow build process (at last!).
* Moved the null plugin together with the dummy one.
* Added new dummy input plugin.
More on the dummy input plugin: we'll use it to insert commands in
the playlist. Currently implemented are the "quit" and "pause" functions,
here are examples on how they are used:
vlc file.mpeg vlc:quit # exit after file.mpeg has been read.
vlc file1.mpeg vlc:pause:3 file2.mpeg # pause 3 seconds before playing
# the next file.
From now we can more efficiently benchmark vlc. For instance, to test
the video output changes I am doing, I use such a command:
time vlc -I dummy --noaudio file.mpeg vlc:quit
Future extentions might include more interesting stuff like "switch
to full screen", "repeat next file 3 times", "switch to SDL video
output"...
Notes: o I called it 'directx' instead of 'windx' because it
made a lot more sense to me.
o Completely untested. I didn't manage to compile it yet.
o Code in vout_directx.c will go through a big rewrite when
vout 4 is finished. Xav is already working on this.
* 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.
* aout and vout are now allocated in banks, making it possible to have
several of them at the same time.
* configure now checks for MMX and MMX EXT support in the assembler.
* Removed all MMX code from the main program and moved it to the
existing idct modules (Closes: Debian bug #96036).
Don't forget to make distclean before building vlc again.
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>.
* Miscellaneous QNX compile fixes.
* Beginning of the mingw32 port by Gildas Bazin <gbazin@netcourrier.com>.
* Added Marcari and Gildas to the AUTHORS file.
(I commited the mingw32 port because it doesn't add any new code outside
the #ifdefs, but we won't tell a word about it for the moment. We don't
really need windows users whining about bugs, do we ?)
* Built-in modules support almost finished.
Now you can compile any module within vlc, even the Gnome, Qt, SDL
and GGI modules at the same time, resulting in an awful extra fat
vlc binary with gazillons of library dependecies.
The only exception is that the Gnome and Gtk+ modules can't be
compiled together into vlc. But you can have one compiled built-in
and the other as a plugin.
Another consequence is that libdl should no longer be needed under
MacOS X. I'll check this as soon as possible.
A few words about the changes:
- heavy Makefile butchery has taken place, each plugin now has its own
Makefile. I know recursive make blablah harmful, but it was just so
much easier to do this way.
- Makefile.in has disappeared, we now generate Makefile.opts with
the overall configuration options, and Makefile.modules which is
specific to module compilation.
- After ./configure has been run you may want to modify Makefile.opts
to check which modules will be compiled built-in or as plugins.
- Some modules cannot be compiled built-in right now because proper
linkage doesn't work yet. We don't really care since they're the
interface or video output modules. The most important stuff works
(iDCT, motion, YUV, input).
- It's perfectly valid to compile a module both as built-in and as a
plugin. vlc will only load the built-in one, but I'll add an option
to ignore built-in modules for testing purposes.
- We *should* see a performance increase here. I didn't have much time
to test it, but if anyone can confirm and perhaps give a rough
estimate of how much we gain...