Frame duration might vary for 1 usecond, in this case matroskamux
decides to create BLOCKGROUP instead of SIMPLEBLOCK.
Convert duration to timecodescale which is (typically) less precise, and
then also allow the difference of 1/-1 to arrange for less sensitive check.
Based on patch by Alexey Fisher <bug-track@fisher-privat.net>
Fixes#653080.
Some encoders (Arecont) do not like the long OPTIONS sent at startup as sent by
GStreamer, but do accept the short header as sent by Live555.
This patch makes the extending the request optional by adding a property
(short-header).
Fixes#655805.
API: GstRTSPSrc:short-header
This likely breaks stuff. The good: all of the methods now create
field images aligned with input frames, without timestamp mangling.
The bad: this touches a lot of code, much of which is hairy and in
need of cleanup. However, at this point we can reasonably create a
PSNR-based test.
In particular, do so even if failing to read while prerolling,
such as when reading from a partial file (eg, while it is being
downloaded).
This fixes a wedge in playbin2.
https://bugzilla.gnome.org/show_bug.cgi?id=651965
Yes, I was tracking another bug and the small test file I generated
to test with improbably just happened to trigger this, with a second
and last frame of 1615 bytes.
https://bugzilla.gnome.org/show_bug.cgi?id=656649
We need to keep the lock held because we don't want a push before the "new-ssrc-pad"
handler has completed. But we may want to push an event from inside that handler, hence
the recursive mutex.
https://bugzilla.gnome.org/show_bug.cgi?id=650916
Some h264 payloaders are unfortunately buggy and don't correctly set the
E bit in FU-A NAL when they have ended. Work around this by assuming
such a fragmentation unit has ended when there was no packet loss and a
new NAL is started
When pushing out buffers over S/PDIF or HDMI, IEC 61937 payloading
requires each buffer to contain 6 blocks from each substream. This adds
code to collect all the frames needed to meet this requirement before
pushing out a buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=650313
Using the current RTCP interval to timeout SSRC collision can lead to
collisions being timed out immediately if a BYE packet is sent because
it is sent immediately, so the interval is 0. This is not what we
want. So just set a static 10 times the default RTCP interval, it
should be enough
https://bugzilla.gnome.org/show_bug.cgi?id=648642
... which is particularly needed when merging NAL units, where not resetting
would lead to output of an older (pre-flush) AU (with unintended timestamp).
Current matroska demux calculates the pixel aspect ratio only if both
DisplayHeight and DisplayWidth are set, but it is legal to use only
one variable if the other is equal to PixelWidth or PixelHeight, at
least the mkclean utility is doing that. So this makse mkcleaned
files play correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=654744
A missing sys/param.h include results in:
/usr/include/sys/proc.h:64: error: 'MAXLOGNAME' undeclared here (not in a
function)
/usr/include/sys/proc.h:285: error: 'MAXCOMLEN' undeclared here (not in a
function)
when compiling goom on openbsd/ppc. We can just remove the two sys/ includes
here, they are not needed for anything.
https://bugzilla.gnome.org/show_bug.cgi?id=654749
... introduced when shuffling around code for the async implementation
by setting state of source (and udp sources) in _play before downstream
flushing is undone.
The gst_base_parse_set_frame_rate call was predicated on a change to
sample rate, duration or profile. However, the block count per frame can
also change between packets, which would result in incorrect buffer
durations.
Some video frames, for example alt-ref frame in VP8, will be
never displayed. This is why it has duration=0.
This patch allow to use this duration.
Bug: 654175
Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
Fixes: #652144.
gstudpnetutils.h:32:0: error: "WINVER" redefined
/usr/i686-w64-mingw32/sys-root/mingw/include/_mingw.h:231:0: note: this is the
location of the previous definition
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_attachments
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_attached_file
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_metadata_id_tag
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_parse_metadata_id_simple_tag
https://bugzilla.gnome.org/show_bug.cgi?id=650877
AUTHOR only existed in an old version of the spec and ARTIST is
the new replacement for this. We are still reading both to still
be compatible with old files.
Fixes bug #644875.
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_get_seek_track
- gst_matroska_{demux,parse}_reset_streams
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following functions to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_index_seek_find
- gst_matroska{demux,parse}_do_index_seek
https://bugzilla.gnome.org/show_bug.cgi?id=650877
Move the following function to matroska-read-common.[ch] from
matroska-demux.c and matroska-parse.c:
- gst_matroska_{demux,parse}_tracknumber_unique
https://bugzilla.gnome.org/show_bug.cgi?id=650877