Martin Storsjö [Tue, 29 Jan 2013 15:55:09 +0000 (17:55 +0200)]
omxil: Wait for the right event when deinitializing
Previously, we checked that the event queue had an OMX_EventCmdComplete
item, but we didn't make sure that it was for the previously issued
OMX_CommandStateSet. In many cases, it was from a OMX_CommandFlush,
which made the code proceed with other deinitialization. If the decoder
hadn't actually transitioned to idle state yet, the buffers weren't
actually ever freed (in the state == OMX_StateIdle block), which lead
to crashes when the handle was freed at the end.
This fixes crashes when finishing playback of wmv3 videos on Galaxy S3.
Martin Storsjö [Tue, 29 Jan 2013 15:55:07 +0000 (17:55 +0200)]
omxil: Pass extradata for WMV3 according to OMX specs
Some OMX decoders that can handle WMV3 (such as the broadcom one
in raspberry pi) can handle the WMV3 extradata both in the original
form as in ASF, and in this format, while the one in Samsung Galaxy
S3 requires it to be in this format (as the OMX IL 1.2 specs specify).
This makes HW-accelerated WMV3 decoding work on Galaxy S3.
The code can be split out to a reusable function if/when the same
needs to be done elsewhere.
Alex Merry [Tue, 29 Jan 2013 00:55:21 +0000 (00:55 +0000)]
dbus: Standardise property getters
There was a lot of repeated code, some of which properly checked return
values and some of which didn't. This is all replaced and folded into
the GetProperty function of each interface.
A side-effect is that it should be more efficient (we only check the
interface argument once instead of once for each property, and there
should be a smaller overall code size).
Alex Merry [Tue, 29 Jan 2013 00:55:20 +0000 (00:55 +0000)]
dbus: Separate out property marshalling code in D-Bus interfaces
Pull out code to marshal the various properties into separate functions
(and make sure the return type of those functions is int). This is in
preparation for adding org.freedesktop.DBus.Properties.GetAll support.
Alex Merry [Tue, 29 Jan 2013 00:55:18 +0000 (00:55 +0000)]
Fix Metadata marshalling when sending the PropertiesChanged signal
VLC was getting kicked from the D-Bus when a track was stopped, because
it was generating invalid data on the wire when sending the
PropertiesChanged signal for the Metadata property.
The issue was that if there was now no current track, GetInputMeta would
never be called and the the variant would never be populated with the
"a{sv}" structure that the call to dbus_message_iter_open_container
claimed it would be.
We now share the code that GetProperties used, which dealt with this
correctly, although now both use CurrentInput (which is what the signal
previously used) instead of CurrentPlayingItem (which is what
GetProperties previously used).
Alex Merry [Mon, 28 Jan 2013 11:54:12 +0000 (11:54 +0000)]
Add Fullscreen property to GetAllProperties on DBus root interface
Previously, Fullscreen could be requested via
org.freedesktop.DBus.Properties.Get, but would not be returned by
org.freedesktop.DBus.Properties.GetAll.
Erwan Tulou [Mon, 28 Jan 2013 11:54:47 +0000 (12:54 +0100)]
skins2: update current input if its associated item changes.
This is the right place to make sure an art file that was not available at
input launch time gets a chance to be displayed as soon as it becomes available.
Frédéric Yhuel [Sun, 27 Jan 2013 22:02:57 +0000 (23:02 +0100)]
libmp4: small bug fix
When MP4_ReadBoxContainerChildren() returns, one expects the position in
the stream to be that of the next box after the last parsed box.
Without this very patch, if the last parsed box is an "unknown" one,
the position in the stream would be at the begining of that box,
preventing playback of latest Anevia's MS Smooth Streaming live streams,
for example.
Since non-ASCII or non-printable characters are not supposed to occur
in URL, it does not matter much how they are dealt with.
The caller of decode_URI() can anyway not assume anything about the
decoded string. In particular, decode_URI() does not validate UTF-8
sequences in any case.
Erwan Tulou [Sun, 27 Jan 2013 16:23:15 +0000 (17:23 +0100)]
skins2: fix art display misfunctioning in latest git vlc
Art display used to rely on an event issued by vlc core which has been renamed into "activity" lately. The issue was that it seems no longer fired when a new
input is launched.
That future version is expected to remove a number of already
deprecated interfaces, such as CODEC_ID_* or the Snow codec.
VLC still uses these interfaces as of today.
Ilkka Ollakka [Thu, 24 Jan 2013 15:06:36 +0000 (17:06 +0200)]
livehttp: follow draf on segment duration
Currently Draft on HTTP live streaming says that segment should be upto
TAGETDURATION length. This change makes sure segments are upto
seglen+10% length, it doesn't mind if they are left quite a lot shorter
(like 10s keyint and 10s seglen can create segment with 2 sec long if
next segment is 10s).
Livehttp-module buffers blocks until header-block turns up. Then it
will check if current buffer would fit on current segment without making
it overflow, or starts new segment if it goes over.