When sending new-segment to a stream, ensure that there is either a valid
PCR, or else wait until there's a PTS on the stream (dropping packets if
needed) in order to avoid generating an invlaid new-segments event.
https://bugzilla.gnome.org/show_bug.cgi?id=595161
g_convert seems to add a single null terminating byte to
the end of the string, even when the output is UTF16, we
force the second 0 byte when copying to the output buffer.
This issue was causing random crashes because it was
assumed that the string resulting from g_convert had
2 extra bytes, but it has only one.
All the input pads for the resin stream selectors have the same source,
and receive/send the same segment info, so there's no need to send a
segment when switching and activating a different pad. Removing it makes
on-the-fly audio track switching work properly.
After switching audio track, mark the next buffer discont.
Avoid a potential deadlock that happens when a call to
gst_clock_id_wait_async() immediately calls the callback.
Improve previous chapter seeking slightly by avoiding 'segment
start != -1' assertions when there is no previous chapter and
the seek therefore fails.
Add the 'initial-identity' property, which inserts identity for
at startup for event passing, and replaces it with a new child
when the first buffer (and caps) actually arrives.
https://bugzilla.gnome.org/show_bug.cgi?id=599469
Keep track of the chunk durations to be able to add 3gr6
brand if it is a faststart file and the longest chunk is
smaller than a sec. Implemented according to 3gpp
TS 26.244 v6.4.0 (2005-09)
Fixes#584361
In faststart mode, there is no need to send the ftyp
right at the beginning of the stream. Waiting and sending it
only later (when the moov atom is ready to be sent) provides
us with more information about the stream and we can better
select the compatible brands.
Align element initialisation. This should be re-thought, g_object_new zeros things already.
Harmonize the element getters for the src/sinks to return what we actualy use.
This uses same approach like in playbin, namely checking for user defined
element, auto{audio,video}{sink,src} and finally DEFAULT_{AUDIO,VIDEO}{SRC,SINK}
defines from config.h.
YCbCr->RGB now has a 'bits' setting, which controls the number
of bits used for the matrix coefficients. Choices are 6 or 8.
6 is low quality, but faster.
RGB->YCbCr now works. Always works in 8 bit, since it's the same
speed as 6 bit.