ffmpeg | branch: master | John-Paul Stewart <jpstew...@personalprojects.net> | Sat Dec 18 15:46:27 2021 -0500| [3c9ffbd009243b3e83ba20956ff6401918376073] | committer: Peter Ross
avformat/mvdec: read frame rate from data stream Prior to this patch, for version 2 of the file format the frame rate was hard-coded at 15 fps. This uses the 64-bit floating-point value from the data stream, similar to what is already done for version 3 of the file format (around line 206). Signed-off-by: John-Paul Stewart <jpstew...@personalprojects.net> Reviewed-by: Peter Ross <pr...@xvid.org> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3c9ffbd009243b3e83ba20956ff6401918376073 --- libavformat/mvdec.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/mvdec.c b/libavformat/mvdec.c index 5d184f20a4..a5c5b205a6 100644 --- a/libavformat/mvdec.c +++ b/libavformat/mvdec.c @@ -26,6 +26,7 @@ #include "libavutil/channel_layout.h" #include "libavutil/eval.h" +#include "libavutil/intfloat.h" #include "libavutil/intreadwrite.h" #include "libavutil/rational.h" @@ -300,8 +301,9 @@ static int mv_read_header(AVFormatContext *avctx) uint64_t timestamp; int v; uint32_t bytes_per_sample; + AVRational fps; - avio_skip(pb, 22); + avio_skip(pb, 10); /* allocate audio track first to prevent unnecessary seeking * (audio packet always precede video packet for a given frame) */ @@ -312,9 +314,11 @@ static int mv_read_header(AVFormatContext *avctx) vst = avformat_new_stream(avctx, NULL); if (!vst) return AVERROR(ENOMEM); - avpriv_set_pts_info(vst, 64, 1, 15); + fps = av_d2q(av_int2double(avio_rb64(pb)), INT_MAX); + avpriv_set_pts_info(vst, 64, fps.den, fps.num); + avio_skip(pb, 4); vst->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; - vst->avg_frame_rate = av_inv_q(vst->time_base); + vst->avg_frame_rate = fps; vst->nb_frames = avio_rb32(pb); v = avio_rb32(pb); switch (v) { _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".