It is behaving a little bit different from the libxml parser which has
caused weird bugs in the past. Anyway, everybody has libxml (I am
planning to write an Expat parser too but not there yet).
Jean-Paul Saman [Wed, 19 Jan 2011 15:53:13 +0000 (16:53 +0100)]
stream_filter/httplive.c: Do not crash when Prefetch() fails
If Prefetch() decides that playback cannot commence it returns VLC_EGENERIC. The
code path in Open() tries to cleanup by calling Close(). However at that point the
hls_Thread() is not started yet and this causes a crash in Close().
The resolution is to not call Close() but cleanup the parts that have been created
in the Open() function itself.
Jean-Paul Saman [Wed, 19 Jan 2011 15:11:49 +0000 (16:11 +0100)]
stream_filter/httplive.c: do not crash on strdup(NULL)
httplive crashed in parse_SegmentInformation on line 428. The cause is
that hls->url.psz_path can be NULL, when there is no meta playlist involved.
In that situation it results in a crash of vlc. (Issue reported by Felix Kuehne.)
In older VLC versions, we had to use the same X11 display for the
window provider (the UI) and the video outputs to avoid Xlib aborts.
We do not need this anymore. Morever, the XCB outputs can detect the
error and fail safe.
To change the UI display, the DISPLAY environment variable is used.
The only real use case for --x11-display is output to a different
display than that of the UI. This change restores this use case,
and simplifies the Qt4 interface.
Erwan Tulou [Sun, 16 Jan 2011 21:21:01 +0000 (22:21 +0100)]
skins2(Linux): fix some drag&drop issues
On Linux, drag&drop provides a null-terminated character string, consisting of
one or more filenames. When there are more than one filename, either CR LF
(e.g Nautilus) or just LF (e.g Konqueror) are used as the sub delimiter.
This patch ensures that drag&drop now works for both cases.
In addition, if more than one item are selected, only the first item is
launched instead of all of them.
Erwan Tulou [Sat, 15 Jan 2011 22:24:44 +0000 (23:24 +0100)]
skins2: some optimisation for playlist
limit rebuilding the playlist control only when the notified item is
expected to be visible. This improves responsiveness when playlists
are very large.
CrystalHD: support for opening the BCM dll under Win32
On a normal Win32 released build, we aren't going to ship the BCM dll
or ask our users to install the good version of the dll at the right
place and recompute the plugins cache...
Therefore, we need to open the dll and resolve the symbols.
Erwan Tulou [Wed, 12 Jan 2011 13:29:44 +0000 (14:29 +0100)]
skins2: rework skins2 as a vout_window provider
- remove the awkward global lock and serializer mechanism
- adapt to latest module API (fix compil errors)
- be more specific about hwnd or xid depending on port
- set display.x11 on Linux port
Support different prototype for plugin open/close callbacks
We can now pass any number and type of parameter to the callbacks.
This way, we do not need to clutter the object structure with
properties that only make sense during activation. In fact, we do
not need to use VLC objects at all anymore.
Dan Rosenberg [Fri, 7 Jan 2011 16:06:08 +0000 (11:06 -0500)]
Fix heap overflows in CDG decoder
This patch resolves two heap corruption vulnerabilities in the CDG
decoder for VLC media player. In both cases, a failure to properly
validate indexes into statically-sized arrays on the heap could allow a
maliciously crafted CDG video to corrupt the heap in a controlled
manner, potentially leading to code execution.
The patch is against v1.1.5 from vlc git, but this decoder hasn't been
touched in awhile, so I'd expect it to cleanly apply to older versions.
I've tested it and confirmed it resolves the heap corruption issues and
does not break functionality.
Laurent Aimar [Tue, 14 Dec 2010 19:57:32 +0000 (20:57 +0100)]
Reworked the code doing the blending in vout.
It is a bit cleaner and properly check for slow write pictures. It also
prepare for letting the vout display to do the blending, and when not
available to blend after the resize (not activated).