[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