diff options
author | Mike Melanson <mike@multimedia.cx> | 2003-11-16 14:26:50 +0000 |
---|---|---|
committer | Mike Melanson <mike@multimedia.cx> | 2003-11-16 14:26:50 +0000 |
commit | 11498da3349242747ab2b7680972a51e275cd06e (patch) | |
tree | 548e28ca314c357fdef47101a33bb7297df8e39b /libavformat/4xm.c | |
parent | d66dae57e8e978fe1f28b917d29f9df8f9af7449 (diff) | |
download | ffmpeg-11498da3349242747ab2b7680972a51e275cd06e.tar.gz |
set frame rate information, for good measure
Originally committed as revision 2521 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/4xm.c')
-rw-r--r-- | libavformat/4xm.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libavformat/4xm.c b/libavformat/4xm.c index 2caa08f4c7..2214e11747 100644 --- a/libavformat/4xm.c +++ b/libavformat/4xm.c @@ -86,6 +86,7 @@ typedef struct FourxmDemuxContext { int64_t audio_pts; int64_t video_pts; int video_pts_inc; + float fps; } FourxmDemuxContext; static float get_le_float(unsigned char *buffer) @@ -132,11 +133,11 @@ static int fourxm_read_header(AVFormatContext *s, int i; int current_track = -1; AVStream *st; - float fps; fourxm->track_count = 0; fourxm->tracks = NULL; fourxm->selected_track = 0; + fourxm->fps = 1.0; /* skip the first 3 32-bit numbers */ url_fseek(pb, 12, SEEK_CUR); @@ -160,8 +161,8 @@ static int fourxm_read_header(AVFormatContext *s, size = LE_32(&header[i + 4]); if (fourcc_tag == std__TAG) { - fps = get_le_float(&header[i + 12]); - fourxm->video_pts_inc = (int)(90000.0 / fps); + fourxm->fps = get_le_float(&header[i + 12]); + fourxm->video_pts_inc = (int)(90000.0 / fourxm->fps); } else if (fourcc_tag == vtrk_TAG) { /* check that there is enough data */ if (size != vtrk_SIZE) { @@ -179,6 +180,8 @@ static int fourxm_read_header(AVFormatContext *s, fourxm->video_stream_index = st->index; + st->codec.frame_rate = fourxm->fps; + st->codec.frame_rate_base = 1.0; st->codec.codec_type = CODEC_TYPE_VIDEO; st->codec.codec_id = CODEC_ID_4XM; st->codec.codec_tag = 0; /* no fourcc */ |