matroskamux: don't drop JPEG frames that only have PTS but no DTS set

For the MS/VfW codec ids, we want to write DTS timestamps instead
of PTS because that's what everyone else seems to do (and it's also
how it is in AVI). So for those input formats we use the buffer DTS
instead of the PTS. However, if there's no DTS set but only the PTS
then just take the PTS instead of dropping the input buffer. This
is useful especially for I-frame only codecs like JPEG and huffyuv,
but should also be fine as fallback in general.

Fixes regression with input JPEG frames that only have PTS set on them.

https://bugzilla.gnome.org/show_bug.cgi?id=756967
This commit is contained in:
Nicola Murino 2015-10-27 10:48:00 +01:00 committed by Tim-Philipp Müller
parent a4c8bdfb3c
commit 65d08e2154

View file

@ -305,7 +305,7 @@ gst_matroska_track_get_buffer_timestamp (GstMatroskaTrackContext * track,
GstBuffer * buf) GstBuffer * buf)
{ {
if (track->dts_only) { if (track->dts_only) {
return GST_BUFFER_DTS (buf); return GST_BUFFER_DTS_OR_PTS (buf);
} else { } else {
return GST_BUFFER_PTS (buf); return GST_BUFFER_PTS (buf);
} }