mpegvideoparse: set timestamp based on pic offset

Timestamps in MPEG-TS streams are based on the last timestamp
before the start code of the picture.  GstBaseParse sets the
timestamp based on the beginning of the sequence header, if
one exists before the picture.  This fixes the case where the
timestamp occurs in the MPEG-TS stream between the seq header
and picture start code.
This commit is contained in:
David Schleef 2013-02-11 16:35:48 -08:00
parent b738115ebd
commit 63718da919
2 changed files with 5 additions and 1 deletions

View file

@ -51,7 +51,7 @@ dnl sets GST_LT_LDFLAGS
AS_LIBTOOL(GST, 2, 0, 2)
dnl *** required versions of GStreamer stuff ***
GST_REQ=1.1.0
GST_REQ=1.1.0.1
GSTPB_REQ=1.1.0
dnl *** autotools stuff ****

View file

@ -783,6 +783,10 @@ gst_mpegv_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
GST_BUFFER_DURATION (buffer) = 0;
}
if (mpvparse->pic_offset > 4) {
gst_base_parse_set_ts_at_offset (parse, mpvparse->pic_offset - 4);
}
if (mpvparse->frame_repeat_count
&& GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buffer))) {
GST_BUFFER_DURATION (buffer) =