videoparsers: Disable PTS interpolation in the base parse class
authorJan Schmidt <thaytan@noraisin.net>
Thu, 13 Sep 2012 05:58:04 +0000 (22:58 -0700)
committerJan Schmidt <thaytan@noraisin.net>
Thu, 13 Sep 2012 06:05:47 +0000 (23:05 -0700)
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
gst/videoparsers/gsth264parse.c
gst/videoparsers/gstmpeg4videoparse.c
gst/videoparsers/gstmpegvideoparse.c

index 72402cb..8699381 100644 (file)
@@ -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
index bae0c94..4dca51c 100644 (file)
@@ -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);
 }
 
 
index 526edc7..fdbe628 100644 (file)
@@ -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
index a6be18e..7eee6a5 100644 (file)
@@ -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