1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

avformat/4xm: Change fps to AVRational

This fixes the video timebase as well

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2015-05-23 22:08:13 +02:00
parent de0d3fe562
commit 3bf57acb9c
2 changed files with 5 additions and 5 deletions

View File

@ -77,7 +77,7 @@ typedef struct FourxmDemuxContext {
AudioTrack *tracks; AudioTrack *tracks;
int64_t video_pts; int64_t video_pts;
float fps; AVRational fps;
} FourxmDemuxContext; } FourxmDemuxContext;
static int fourxm_probe(AVProbeData *p) static int fourxm_probe(AVProbeData *p)
@ -104,7 +104,7 @@ static int parse_vtrk(AVFormatContext *s,
if (!st) if (!st)
return AVERROR(ENOMEM); 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; fourxm->video_stream_index = st->index;
@ -206,7 +206,7 @@ static int fourxm_read_header(AVFormatContext *s)
fourxm->track_count = 0; fourxm->track_count = 0;
fourxm->tracks = NULL; fourxm->tracks = NULL;
fourxm->fps = 1.0; fourxm->fps = (AVRational){1,1};
/* skip the first 3 32-bit numbers */ /* skip the first 3 32-bit numbers */
avio_skip(pb, 12); avio_skip(pb, 12);
@ -241,7 +241,7 @@ static int fourxm_read_header(AVFormatContext *s)
ret = AVERROR_INVALIDDATA; ret = AVERROR_INVALIDDATA;
goto fail; 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) { } else if (fourcc_tag == vtrk_TAG) {
if ((ret = parse_vtrk(s, fourxm, header + i, size, if ((ret = parse_vtrk(s, fourxm, header + i, size,
header_size - i)) < 0) header_size - i)) < 0)

View File

@ -1,4 +1,4 @@
#tb 0: 1/6 #tb 0: 4/25
0, 0, 0, 1, 80640, 0x00000000 0, 0, 0, 1, 80640, 0x00000000
0, 1, 1, 1, 80640, 0x3a942680 0, 1, 1, 1, 80640, 0x3a942680
0, 2, 2, 1, 80640, 0x3a942680 0, 2, 2, 1, 80640, 0x3a942680