Commit 3bf57acb authored by Michael Niedermayer's avatar Michael Niedermayer

avformat/4xm: Change fps to AVRational

This fixes the video timebase as well
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent de0d3fe5
...@@ -77,7 +77,7 @@ typedef struct FourxmDemuxContext { ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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)
......
#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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment