summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Schmidt <thaytan@noraisin.net>2012-09-12 22:58:04 -0700
committerJan Schmidt <thaytan@noraisin.net>2012-09-12 23:05:47 -0700
commitb7d63d3fb1f71d8ebf822df50c516dda5967af7b (patch)
tree6fc9b7befb4b4e4dfff9e553fa3dc46b4bca9ff6
parent8d5c1be31200c8f6380ee0116a9b2b31fb253b9f (diff)
downloadgstreamer-plugins-bad-b7d63d3fb1f71d8ebf822df50c516dda5967af7b.tar.gz
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)
-rw-r--r--gst/videoparsers/gstdiracparse.c1
-rw-r--r--gst/videoparsers/gsth264parse.c1
-rw-r--r--gst/videoparsers/gstmpeg4videoparse.c2
-rw-r--r--gst/videoparsers/gstmpegvideoparse.c2
4 files changed, 6 insertions, 0 deletions
diff --git a/gst/videoparsers/gstdiracparse.c b/gst/videoparsers/gstdiracparse.c
index 72402cbb1..8699381c8 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 bae0c94df..4dca51c91 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 526edc7cb..fdbe628a5 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 a6be18ef1..7eee6a5e7 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