Sam Hocevar [Fri, 25 Oct 2002 18:17:59 +0000 (18:17 +0000)]
* ./modules/video_output/directx/events.c: start the colorkey search at 10,
not 5, to avoid using a color used by another application.
* ./modules/video_output/directx/events.c: support for drawing in a parent
window instead of creating our own; still a bit flakey.
* ./mozilla/vlcshell.cpp: we can now compile the Mozilla plugin so that it
does not call libvlc (for testing purposes).
Gildas Bazin [Fri, 25 Oct 2002 15:21:42 +0000 (15:21 +0000)]
* modules/audio_output/oss.c: when now set the fragment size of the OSS device
according to the size of an audio sample.
For buggy OSS drivers, we now take into account the real size of the OSS
internal buffer when we check how much this buffer has been filled.
Sam Hocevar [Fri, 25 Oct 2002 09:21:09 +0000 (09:21 +0000)]
* ./include/vlc_common.h: we now use the ISO C9x types (int8_t, uint8_t,
int16_t) instead of our custom types (s8, u8, s16) and you are encouraged
to use these types from now. Of course the old types are still available
for backward compatibility.
Gildas Bazin [Thu, 24 Oct 2002 09:37:48 +0000 (09:37 +0000)]
* src/input/input_ext-dec.c, include/input_ext-dec.h, modules/codec/araw.c:
renamed input_NextPES into input_ExtractPES and factorised its code.
* modules/codec/ffmpeg/ffmpeg.c, modules/codec/faad/decoder.c,
modules/codec/cinepak/cinepak.c: make use of NextPES and GetPES from
src/input/input_ext-dec.c.
* modules/codec/a52.c: fixed uninitialized variable.
Sam Hocevar [Tue, 22 Oct 2002 21:10:28 +0000 (21:10 +0000)]
* ./mozilla/vlcshell.cpp: ported the Mozilla plugin to Windows.
For the moment it spawns a separate window and seems to behave nastily
(read: crashes) when the target has sound, but the javascript interface
works perfectly, for instance.
To build it, I installed Mozilla development files in my mingw32 dir
and hacked mozilla-config so that it uses these files. I also hacked
jri_md.h and jni_md.h to put "defined(_MSC_VER) || defined(__MINGW32__)"
where it read "defined(_MSC_VER)". No other changes were necessary.
* modules/demux/mpeg: Added DVB stream type for A/52 streams (0x6),
* include/vlc_threads.h: Avoid locking the interface,
* ALL: reworked all audio output plug-ins to correctly take into account
i_channels. At present this is known to break OSS, probably others.
Sam Hocevar [Thu, 17 Oct 2002 16:03:18 +0000 (16:03 +0000)]
* ./src/video_output/video_output.c: mouse coordinates are now variables.
* ./modules/access/dvdplay/intf.c: instead of probing the mouse on each
loop iteration, we set a callback on the corresponding variables.
Sam Hocevar [Thu, 17 Oct 2002 13:15:31 +0000 (13:15 +0000)]
* ./src/misc/variables.c: callback loops are now detected; this means you
can now use var_* functions from within your callback, they can even
trigger callback themselves, to any level. The main restriction is that
you shouldn't meddle with a variable that is already being triggered by
the current thread (other threads will just wait).
* ./src/misc/objects.c: fixed a deadlock in the "tree" command.
* ./modules/misc/testsuite/test4.c: added a "callback-test" command to the
rc interface to test callback loop detection and concurrent triggers.
Sam Hocevar [Thu, 17 Oct 2002 08:24:12 +0000 (08:24 +0000)]
* ./modules/codec/spudec/parse.c: fixed bad initialization of the alpha
palette, implemented the "force display" command as forever-living
subtitles, and reworked some code.
* ./src/video_output/video_output.c: we increment the image date even if
we are repeating the previous image, so that subtitles have a chance to
get displayed.
* ./src/video_output/vout_subpictures.c: ephemer subpictures don't timeout.
Use a KURLRequester widget for variables of type CONFIG_ITEM_FILE. This
crates a little button next to the textarea that pops up a file open dialog
where the user can point and click on the file to select. It also drops down
a list of possible completions as the user types.
Sam Hocevar [Wed, 16 Oct 2002 15:10:39 +0000 (15:10 +0000)]
* ./configure.ac.in, ./src/libvlc.c: attempt at activating gettext support
under platforms without libintl such as Win32. Use --with-included-gettext
to test. Might break compilation on systems I don't have access to.
Sam Hocevar [Wed, 16 Oct 2002 11:35:53 +0000 (11:35 +0000)]
* ./modules/access/vcd/vcd.c: changed an error to a warning in the probe
phase.
* ./modules/video_filter/deinterlace/deinterlace.c: the bob method now
flickers less thanks to a patch from Marian Durkovic <md@bts.sk>.
Sam Hocevar [Wed, 16 Oct 2002 10:31:58 +0000 (10:31 +0000)]
* ./src/misc/variables.c: fixed a deadlock in command variables handling;
we now release the variable lock before calling the command.
* ./src/misc/threads.c: removed deprecated code.
Gildas Bazin [Tue, 15 Oct 2002 19:56:59 +0000 (19:56 +0000)]
* modules/access/vcd/*, configure.ac.in:
- Major changes to allow reading vcd images directly from the hard drive
(you need a .cue and .bin file).
- Removed duplicated code by merging ioctl_GetTrackCount and ioctl_GetSectors.
- Implemented necessary ioctls for Win9x/NT/2K/XP.
Laurent Aimar [Tue, 15 Oct 2002 00:55:07 +0000 (00:55 +0000)]
* all : begin to rewrite some parts of avi demux, mainly to clean ugly code
and to prepare for OpenDML support.
Add new options :
--avi-index force index creation.
--avi-interleaved force method used for unseekable stream but need
interleaved stream and could lead to loss of audio/video synchro.
Laurent Aimar [Mon, 14 Oct 2002 21:59:44 +0000 (21:59 +0000)]
* araw.c : pseudo pcm decoder
* wav : demux for wav file( should work with raw pcm, mp3 or a52 stream ) but
untested under big endian machine(for pcm).
Sam Hocevar [Mon, 14 Oct 2002 19:04:51 +0000 (19:04 +0000)]
* ./modules/misc/testsuite/test4.c: made the 4th test less CPU intensive
by making the spawned threads wait a bit longer.
* ./src/misc/variables.c: added a usage count to the variables; trying to
create a variable with the same name only increments its refcount.
Sam Hocevar [Mon, 14 Oct 2002 16:46:56 +0000 (16:46 +0000)]
* ./include/vlc/vlc.h, ./src/libvlc.c: added VLC_Error() to the libvlc API.
* ./include/main.h: removed p_vlc->i_status because it was not sufficient
to represent all the possible states of p_vlc; each part should be tested
separately upon destruction.
* ./src/misc/objects.c: fixed a signed/unsigned bug that prevented creation
of VLC_OBJECT_GENERIC objects.
* ./src/misc/variables.c: added the VLC_VAR_COMMAND type which is simply a
variable that stores a function pointer, and calls it when var_Get is
called for it. The function argument is taken in val.psz_string.
* ./src/misc/objects.c: vlc_dumpstructure and vlc_liststructure are no longer
exported to the rest of the program; instead, they're VLC_VAR_COMMAND vars
("tree" and "list").
* ./modules/control/rc/rc.c: moved a few commands to VLC_VAR_COMMAND vars.
Sam Hocevar [Mon, 14 Oct 2002 16:34:17 +0000 (16:34 +0000)]
* ./modules/misc/testsuite/test4.c: added a stress test module; doesn't get
compiled yet because it uses the "command" variables I'm about to check
in. They need to be typed in the rc interface for instance (-I rc). This
module has two available commands: "signal <int>" which sends the given
signal to the vlc process, and "stress [<int>]" which performs a series of
object creation/lookup/destruction, variable creation/setting/destruction
and thread spawning/joining tests. The optional argument for stress is an
integer between 1 and 200 (the bigger, the heavier the tests; it may hang
your machine at around 150, be careful).
modules/demux/util/id3*: fixed up some dead comments
modules/gui/kde/*: only set variable the user actually have changed when
apply is pressed in the preferences window.
Gildas Bazin [Sat, 12 Oct 2002 21:31:56 +0000 (21:31 +0000)]
* configure.ac.in: fix for the mingw32 build. The gtk plugin may also need mingwex.
* modules/demux/mpeg/ts.c: added an #include <stdint.h> to make mingw32 happy when
compiled with libdvbpsi.
* Makefile.am: fixed dependency problem with share/vlc_win32_rc.rc.
Gildas Bazin [Sat, 12 Oct 2002 20:09:13 +0000 (20:09 +0000)]
* configure.ac.in: fix for the mingw32 build. We check if we need to explicitly
link with the mingwex library (needed for dirent support with new mingw32
runtimes).
Sam Hocevar [Fri, 11 Oct 2002 22:32:56 +0000 (22:32 +0000)]
Changes to the libvlc API:
* ./include/vlc/vlc.h: changed the naming conventions for libvlc. Now
exported functions start with VLC_ instead of vlc_ to avoid conflicts.
* ./include/vlc/vlc.h: removed the vlc_object_t, vlc_list_t, vlc_error_t
and vlc_t types; they are now internal types only.
* ./include/vlc/vlc.h: merged the reentrant and non-reentrant libvlc
calls. In non-reentrant mode, we just use 0 as the first argument. In
reentrant mode, we use an object's ID. (see below)
Internal changes:
* ./src/libvlc.c, ./src/misc/objects.c: instead of manipulating vlc_object_t
pointers, we manipulate their i_object_id. When needed, an object is
retrieved using vlc_object_get (I hope the lookup isn't too expensive,
that's why I designed the pp_objects layout to allow log2(n) seeks).
* ./src/misc/objects.c: activated the per-object variable storage. Unused
yet, unless you want to try "getfoo" and "setfoo blablah" in vlc -I rc.
* ./include/vlc_objects.h: moved the vlc_object_t and vlc_list_t definitions
here.
Misc:
* ./src/vlc.c, ./mozilla/vlcshell.cpp: removed inclusion of config.h in
code portions not part of libvlc; it was just required for the
COPYRIGHT_MESSAGE string which is now available from VLC_Version().
Gildas Bazin [Fri, 11 Oct 2002 10:08:06 +0000 (10:08 +0000)]
* src/misc/modules.c: fixed a memory leak with the "plugin-path" config option.
* modules/audio_output/directx.c, modules/audio_output/waveout.c: ported the directx
and waveout audio plugins to the new changes in the audio output layer.
* configure.ac.in: fixes for cygwin compilation, and the gtk plugin under mingw32.
messages.cpp: use append(...) and not setText( text() + ...), seems to
decrease cpu-usage considerably.
preferences.cpp: allow config strings to be 40 characters long instead of
10. Is that enough?
Sam Hocevar [Tue, 8 Oct 2002 18:10:10 +0000 (18:10 +0000)]
* ./src/libvlc.c, ./src/misc/messages.c: due to horrible user threats,
only two levels of -v are now possible: -v for warnings, -vv for debug
messages (-q for no output at all).
Gildas Bazin [Sun, 6 Oct 2002 19:28:28 +0000 (19:28 +0000)]
* configure.ac.in: vlc can now be built under cygwin with or without the
unix emulation layer (without if you use CC="gcc -mno-cygwin").
* INSTALL.win32: doc update for cygwin build.
* modules/video_output/directx/events.c, modules/video_output/directx/directx.c,
modules/audio_output/directx.c: compilation fixes for cygwin.
Sam Hocevar [Fri, 4 Oct 2002 18:07:22 +0000 (18:07 +0000)]
* ./configure.ac.in: removed now unnecessary --force-exe-suffix flag.
* ./src/misc/objects.c: structure_lock is now local.
* ./src/misc/threads.c: implemented named mutexes which provide a handy
way to protect data across plugins which might be sharing the same
resources. Thread-unsafe libraries come to mind, but we can imagine
using a named mutex for configuration files, or special devices.
* ./include/main.h: removed global_lock because of vlc_mutex_need, removed
p_global_data because it was never used, removed structure_lock because
it did not belong here.
Sam Hocevar [Fri, 4 Oct 2002 14:02:20 +0000 (14:02 +0000)]
* ./modules/gui/macosx/vout.m: if no MacOS X interface is available when
the video output is initialized, we wait for a while before giving up;
also changed the code so that it probes all interface objects rather than
the first one it finds.
Sam Hocevar [Fri, 4 Oct 2002 13:13:54 +0000 (13:13 +0000)]
* ./bootstrap: we use the proper linker for plugin compilation.
* ./modules/misc/testsuite/*: moved the null module into three test modules
that are only built when --enable-testsuite is activated. This directory
can be a good place for compilation tests or performance benchmarks.
Gildas Bazin [Fri, 4 Oct 2002 12:01:40 +0000 (12:01 +0000)]
* src/misc/threads.c, src/misc/win32_specific.c, include/interface.h: fixed typos.
* configure.ac.in, modules/gui/gtk/gtk.c: Added a NEED_GTK_MAIN macro to the compiler
flags for the gtk module. When this macro isn't defined, then the gtk module
doesn't make use of the gtk_main module. I had to do this change because the
gtk_main trick can't work on win32 and render the whole gtk interface unusable.
Sam Hocevar [Thu, 3 Oct 2002 18:56:10 +0000 (18:56 +0000)]
* ./configure.ac.in: duplicated arguments to AM_INIT_AUTOMAKE to fix
locales breakage.
* ./src/libvlc.c: libvlc understands the VLC_VERBOSE environment variable,
to be set between 0 and 4. Default value is 0 for a program using libvlc,
but vlc sets it to 1 by default.
* ./src/misc/configuration.c: -v now works the old way (-v, -vv, -vvv) as
well as the new way (-v0, -v1, -v4). -v1 is the same as -v, and -v0 is
the same as -q (quiet). Hope it's all understandable.
Gildas Bazin [Thu, 3 Oct 2002 17:01:59 +0000 (17:01 +0000)]
* FAQ: updated FAQ with config file issues.
* configure.ac.in: use -mms-bitfields instead of -fnative-struct for
mingw32 gcc-3.x.
* include/interface.h, modules/misc/dummy/interface.c, modules/misc/logger/logger.c,
modules/control/rc/rc.c: Display message on Win32 explaining how to get
back to the GUI mode.
* src/misc/threads.c, include/vlc_threads_funcs.h: ignore the
win9x-cv-method config option on WinNT when fast-mutex is not enabled.
Sam Hocevar [Thu, 3 Oct 2002 13:21:55 +0000 (13:21 +0000)]
* ./src/libvlc.c, ./include/main.h: the root of all objects is now
p_libvlc, and each p_vlc is a child of p_libvlc. Reasons for this are:
o the module bank and the message bank only need to be initialized once,
which gives faster loads when multiple instances of libvlc are used,
o we allow the possibility of different p_vlc sharing objects, for
instance the audio output,
o the CPU detection is only done once.
This patch is not polished yet, but I cannot do any intensive tests for
the moment because of a bug somewhere that leaves audio output objects
lying here and there which needs to be investigated first. The current
major issue is that the module bank is no longer freed.
kde.cpp: subscribe and unsubscribe messages
interface.cpp, interface.h: create a messages window, and add menu iten to
show it
Modules.as: build messages window
ui.rc: menuitem to show messages
preferences.cpp: fixed typo in comment
Sam Hocevar [Wed, 2 Oct 2002 16:02:43 +0000 (16:02 +0000)]
* ./bootstrap: added a check for automake bug #326. No easy workaround is
really possible other than patching/upgrading automake. This happens for
automake 1.6.0 and automake 1.6.1.