From 4c9f35bb7c94d20455d3fca3a184b892f1a0aa4e Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 22 Jan 2013 22:40:38 +0100 Subject: 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 --- libavformat/mvdec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libavformat/mvdec.c') diff --git a/libavformat/mvdec.c b/libavformat/mvdec.c index bb1c5d0dd8..80fc466889 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) { -- cgit v1.2.3