From b7d63d3fb1f71d8ebf822df50c516dda5967af7b Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Wed, 12 Sep 2012 22:58:04 -0700 Subject: [PATCH] videoparsers: Disable PTS interpolation in the base parse class All these formats have re-ordered PTS which the base class gets wrong. It's better to leave them blank and let the decoder sort it out. Better yet would be to track and interpolate the timestamps in the subclasses (FIXME) --- gst/videoparsers/gstdiracparse.c | 1 + gst/videoparsers/gsth264parse.c | 1 + gst/videoparsers/gstmpeg4videoparse.c | 2 ++ gst/videoparsers/gstmpegvideoparse.c | 2 ++ 4 files changed, 6 insertions(+) diff --git a/gst/videoparsers/gstdiracparse.c b/gst/videoparsers/gstdiracparse.c index 72402cbb1d..8699381c8d 100644 --- a/gst/videoparsers/gstdiracparse.c +++ b/gst/videoparsers/gstdiracparse.c @@ -135,6 +135,7 @@ static void gst_dirac_parse_init (GstDiracParse * diracparse) { gst_base_parse_set_min_frame_size (GST_BASE_PARSE (diracparse), 13); + gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (diracparse), FALSE); } void diff --git a/gst/videoparsers/gsth264parse.c b/gst/videoparsers/gsth264parse.c index bae0c94dff..4dca51c917 100644 --- a/gst/videoparsers/gsth264parse.c +++ b/gst/videoparsers/gsth264parse.c @@ -145,6 +145,7 @@ static void gst_h264_parse_init (GstH264Parse * h264parse) { h264parse->frame_out = gst_adapter_new (); + gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (h264parse), FALSE); } diff --git a/gst/videoparsers/gstmpeg4videoparse.c b/gst/videoparsers/gstmpeg4videoparse.c index 526edc7cb0..fdbe628a51 100644 --- a/gst/videoparsers/gstmpeg4videoparse.c +++ b/gst/videoparsers/gstmpeg4videoparse.c @@ -180,6 +180,8 @@ gst_mpeg4vparse_init (GstMpeg4VParse * parse) { parse->interval = DEFAULT_CONFIG_INTERVAL; parse->last_report = GST_CLOCK_TIME_NONE; + + gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (parse), FALSE); } static void diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c index a6be18ef10..7eee6a5e79 100644 --- a/gst/videoparsers/gstmpegvideoparse.c +++ b/gst/videoparsers/gstmpegvideoparse.c @@ -170,6 +170,8 @@ static void gst_mpegv_parse_init (GstMpegvParse * parse) { parse->config_flags = FLAG_NONE; + + gst_base_parse_set_pts_interpolation (GST_BASE_PARSE (parse), FALSE); } static void