From 3bf57acb9cb2a337903ad03dfef445a337d5a676 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 23 May 2015 22:08:13 +0200 Subject: [PATCH] avformat/4xm: Change fps to AVRational This fixes the video timebase as well Signed-off-by: Michael Niedermayer --- libavformat/4xm.c | 8 ++++---- tests/ref/fate/4xm-2 | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libavformat/4xm.c b/libavformat/4xm.c index 240e5a40ea6..8fdad185f47 100644 --- a/libavformat/4xm.c +++ b/libavformat/4xm.c @@ -77,7 +77,7 @@ typedef struct FourxmDemuxContext { AudioTrack *tracks; int64_t video_pts; - float fps; + AVRational fps; } FourxmDemuxContext; static int fourxm_probe(AVProbeData *p) @@ -104,7 +104,7 @@ static int parse_vtrk(AVFormatContext *s, if (!st) return AVERROR(ENOMEM); - avpriv_set_pts_info(st, 60, 1, fourxm->fps); + avpriv_set_pts_info(st, 60, fourxm->fps.den, fourxm->fps.num); fourxm->video_stream_index = st->index; @@ -206,7 +206,7 @@ static int fourxm_read_header(AVFormatContext *s) fourxm->track_count = 0; fourxm->tracks = NULL; - fourxm->fps = 1.0; + fourxm->fps = (AVRational){1,1}; /* skip the first 3 32-bit numbers */ avio_skip(pb, 12); @@ -241,7 +241,7 @@ static int fourxm_read_header(AVFormatContext *s) ret = AVERROR_INVALIDDATA; goto fail; } - fourxm->fps = av_int2float(AV_RL32(&header[i + 12])); + fourxm->fps = av_d2q(av_int2float(AV_RL32(&header[i + 12])), 10000); } else if (fourcc_tag == vtrk_TAG) { if ((ret = parse_vtrk(s, fourxm, header + i, size, header_size - i)) < 0) diff --git a/tests/ref/fate/4xm-2 b/tests/ref/fate/4xm-2 index cf713578107..6895d124d91 100644 --- a/tests/ref/fate/4xm-2 +++ b/tests/ref/fate/4xm-2 @@ -1,4 +1,4 @@ -#tb 0: 1/6 +#tb 0: 4/25 0, 0, 0, 1, 80640, 0x00000000 0, 1, 1, 1, 80640, 0x3a942680 0, 2, 2, 1, 80640, 0x3a942680 -- 2.39.2