[FFmpeg-cvslog] mvdec: use avpriv_set_pts_info() instead of directly setting tb.

Michael Niedermayer git at videolan.org
Tue Jan 22 22:51:16 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Jan 22 22:40:38 2013 +0100| [4c9f35bb7c94d20455d3fca3a184b892f1a0aa4e] | committer: Michael Niedermayer

mvdec: use avpriv_set_pts_info() instead of directly setting tb.

Fixes division by 0

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4c9f35bb7c94d20455d3fca3a184b892f1a0aa4e
---

 libavformat/mvdec.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/libavformat/mvdec.c b/libavformat/mvdec.c
index bb1c5d0..80fc466 100644
--- a/libavformat/mvdec.c
+++ b/libavformat/mvdec.c
@@ -165,7 +165,8 @@ static int parse_video_var(AVFormatContext *avctx, AVStream *st, const char *nam
         }
         av_free(str);
     } else if (!strcmp(name, "FPS")) {
-        st->time_base = av_inv_q(var_read_float(pb, size));
+        AVRational tb = av_inv_q(var_read_float(pb, size));
+        avpriv_set_pts_info(st, 64, tb.num, tb.den);
     } else if (!strcmp(name, "HEIGHT")) {
         st->codec->height = var_read_int(pb, size);
     } else if (!strcmp(name, "PIXEL_ASPECT")) {
@@ -250,7 +251,7 @@ static int mv_read_header(AVFormatContext *avctx)
         if (!vst)
             return AVERROR(ENOMEM);
         vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
-        vst->time_base = (AVRational){1, 15};
+        avpriv_set_pts_info(vst, 64, 1, 15);
         vst->nb_frames = avio_rb32(pb);
         v = avio_rb32(pb);
         switch (v) {



More information about the ffmpeg-cvslog mailing list