objects: Send a vlc_object_kill from vlc_object_destroy() to make sure vlc_object_release() can properly free all the allocated resources when the refcount reach zero.
Previously you need to send a vlc_object_kill() prior to a vlc_object_release() to get your object actually destroyed, which rendered the refcounting unusuable in some cases.
Sam Hocevar [Fri, 21 Mar 2008 21:50:25 +0000 (22:50 +0100)]
Fix a potential corruption in release_input_thread().
If the media instance owns the input and libvlc_media_instance_release()
is called immediately after libvlc_media_instance_stop(), there is a
chance that we try to free the input resources before the thread is
effectively terminated. To avoid this, we call input_DestroyThread()
instead of vlc_object_release() at the end of release_input_thread() when
the media instance owns the input thread.
Sam Hocevar [Fri, 21 Mar 2008 21:17:57 +0000 (21:17 +0000)]
Add missing p_vout->pf_end in vmem.c and snapshot.c
The p_vout->pf_end method is mandatory for video output modules. It is
called from so many places in libvlc that it would be too tedious to
make it optional. I'm therefore adding empty methods to modules instead.
Sam Hocevar [Fri, 21 Mar 2008 14:26:30 +0000 (14:26 +0000)]
New video output driver: "vmem", for direct memory access.
Sometimes our list of video output modules is still not enough for an
external libvlc application with specific requirements. For instance, an
SDL application running in full screen cannot open a new window on Linux
(this is a known libSDL limitation). This vmem video output allows it to
asynchronously render the video into an SDL_Surface, with full locking.
Resolution or pitch changes are not supported yet. I'd advise against
them however, since they often require a full chroma unload/reload
operation, which is quite expensive.
I also believe this feature should be directly integrated into libvlc,
but I don't want to be too intrusive yet.
André Weber [Thu, 20 Mar 2008 20:17:48 +0000 (21:17 +0100)]
Fix the handling of string variable - store them as UTF-8 into the config variables, also convert the StringList values to an UTF8 string before putting them into a QVariant - which seems not to work if created from a "char *" - because later converterd QVariant->toString() isn't UTF8 like expected.
waveout.c forgott to convert string to UTF8 before storing in choice list
Sam Hocevar [Thu, 20 Mar 2008 18:25:02 +0000 (18:25 +0000)]
Ignore Qt generated files.
qt4-uic (the Qt user interface compiler) and rcc (the Qt resource compiler)
create .cpp and .h files that we don't want to track. Adding them to
.gitignore.
Sam Hocevar [Thu, 20 Mar 2008 18:11:53 +0000 (18:11 +0000)]
Minor Windows ME build fixes.
Add a --disable-wince option so that we can disable this (probably broken)
plugin's build when mingwce is detected. Also, add -lmmtimer to the libvlc
link flags because this is where timeGetTime() lies.
Sam Hocevar [Thu, 20 Mar 2008 17:43:48 +0000 (17:43 +0000)]
Documentation updates.
Made the Doxygen headers slightly clearer when directly read from the
header file, fixed grammar and spelling here and there, added some
missing \param and \return tags (though a lot remains to be done).
Sam Hocevar [Thu, 20 Mar 2008 16:59:11 +0000 (16:59 +0000)]
Put (void)val; here and there to tell gcc we used the variable.
The spin_lock wrappers do not use the return value of the functions they
wrap, resulting in dozens of compiler warnings because they are inline
functions. There is no elegant solution to this, I hope using (void)val;
is the least shocking alternative.
Sam Hocevar [Wed, 19 Mar 2008 13:53:57 +0000 (13:53 +0000)]
Use LoadLibrary instead of LoadLibraryA.
LoadLibrary can either point to LoadLibraryA or LoadLibraryW depending
on the system and build options, so let's use LoadLibrary everywhere
for consistency. Also, wrap static argument strings with _T() so that
they're automatically in the right format.
Sam Hocevar [Wed, 19 Mar 2008 13:18:09 +0000 (13:18 +0000)]
Add a --disable-vlc configure flag to not build VLC.
In some cases (eg. when building binary packages) one only needs libvlc
and libvlc-control and does not wish to build or install VLC binaries.
This --disable-vlc flag saves us from manually removing the unwanted
binaries after "make install".
auhal: Fix kAudioDevicePropertyDeviceIsAlive check (vlc_bool_t size has changed and doesn't match anymore the needed param size for kAudioDevicePropertyDeviceIsAlive).
In by far the overwhelming majority of cases, the user would not know
how to determine the correct answer to the security prompt (did you
ever compare SSL error handling in IE6 and IE7?). Since the trust value
is now determined programatically, this would seem to mostly help users
shoot themselves in the foot.
--security-policy is also broken when using --playlist-enqueue: imagine
you are running VLC with no security, and then your browser enqueues an
M3U from some nasty webserver... fireworks.
Wrappers around VLC really should NOT use M3U files if they need to
tweak certain options (e.g. --sout). Global options can simply be set
the normal way from the command line (e.g.: vlc --sout '#std{...}').
Per-item options can be set using the colon notation. Multiple items
should be expanded on the command line in the right order, rather than
written to a M3U file. Alternative, IPC interfaces could be used
(single instance + playlist enqueue, RC interface, DBus interface...)
or language bindings.
*** Important note ***
Web browser plugins are still in need of fixing. I suppose
libvlc-control should be extented to support playlist item trust.
Feel free to revert and do something else if you have a _better_ idea.