[0.10] gst-plugins-bad: mpegvideoparse: Fix FPS and frame duration for telecine files

Sebastian Dröge slomo at kemper.freedesktop.org
Sun Apr 15 23:49:36 PDT 2012


Module: gst-plugins-bad
Branch: 0.10
Commit: 547a487e9344dca2cb82e62ecf97d87f963375fc
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=547a487e9344dca2cb82e62ecf97d87f963375fc

Author: Matej Knopp <matej.knopp at gmail.com>
Date:   Sat Apr 14 20:53:47 2012 +0200

mpegvideoparse: Fix FPS and frame duration for telecine files

---

 gst/videoparsers/gstmpegvideoparse.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c
index 33bd528..6f23777 100644
--- a/gst/videoparsers/gstmpegvideoparse.c
+++ b/gst/videoparsers/gstmpegvideoparse.c
@@ -285,7 +285,7 @@ gst_mpegv_parse_process_config (GstMpegvParse * mpvparse, GstBuffer * buf,
                 tpoffsz->offset)) {
           mpvparse->fps_num =
               mpvparse->sequencehdr.fps_n * (mpvparse->sequenceext.fps_n_ext +
-              1) * 2;
+              1);
           mpvparse->fps_den =
               mpvparse->sequencehdr.fps_d * (mpvparse->sequenceext.fps_d_ext +
               1);
@@ -720,8 +720,10 @@ gst_mpegv_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
     GST_BUFFER_DURATION (buffer) = 0;
   }
 
-  GST_BUFFER_DURATION (buffer) =
-      (1 + mpvparse->frame_repeat_count) * GST_BUFFER_DURATION (buffer);
+  if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buffer))) {
+    GST_BUFFER_DURATION (buffer) =
+        (1 + mpvparse->frame_repeat_count) * GST_BUFFER_DURATION (buffer) / 2;
+  }
 
   if (G_UNLIKELY (mpvparse->drop && !mpvparse->config)) {
     GST_DEBUG_OBJECT (mpvparse, "dropping frame as no config yet");



More information about the gstreamer-commits mailing list