Unrevert: mpegvideoparse: set timestamp based on pic offset

API is now in baseparse in gstreamer.

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 e614bd037e
commit 168c8406b5
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) AS_LIBTOOL(GST, 2, 0, 2)
dnl *** required versions of GStreamer stuff *** dnl *** required versions of GStreamer stuff ***
GST_REQ=1.1.0 GST_REQ=1.1.0.1
GSTPB_REQ=1.1.0 GSTPB_REQ=1.1.0
dnl *** autotools stuff **** dnl *** autotools stuff ****

View file

@ -783,6 +783,10 @@ gst_mpegv_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
GST_BUFFER_DURATION (buffer) = 0; 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 if (mpvparse->frame_repeat_count
&& GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buffer))) { && GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buffer))) {
GST_BUFFER_DURATION (buffer) = GST_BUFFER_DURATION (buffer) =