summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2013-02-11 16:35:48 -0800
committerDavid Schleef <ds@schleef.org>2013-02-12 12:23:03 -0800
commit168c8406b545037cc54c1c9346935e0057138a36 (patch)
treea227654dfda6c8330bb161e32c4a90d18d4682f8
parente614bd037e829cd10bed516516e7810cd373fb91 (diff)
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.
-rw-r--r--configure.ac2
-rw-r--r--gst/videoparsers/gstmpegvideoparse.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 1e8da9cb3..5b64eab70 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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 ****
diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c
index a12e72dd0..2c2cfb29b 100644
--- a/gst/videoparsers/gstmpegvideoparse.c
+++ b/gst/videoparsers/gstmpegvideoparse.c
@@ -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) =