Commit 11498da3 authored by Mike Melanson's avatar Mike Melanson

set frame rate information, for good measure

Originally committed as revision 2521 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d66dae57
...@@ -86,6 +86,7 @@ typedef struct FourxmDemuxContext { ...@@ -86,6 +86,7 @@ typedef struct FourxmDemuxContext {
int64_t audio_pts; int64_t audio_pts;
int64_t video_pts; int64_t video_pts;
int video_pts_inc; int video_pts_inc;
float fps;
} FourxmDemuxContext; } FourxmDemuxContext;
static float get_le_float(unsigned char *buffer) static float get_le_float(unsigned char *buffer)
...@@ -132,11 +133,11 @@ static int fourxm_read_header(AVFormatContext *s, ...@@ -132,11 +133,11 @@ static int fourxm_read_header(AVFormatContext *s,
int i; int i;
int current_track = -1; int current_track = -1;
AVStream *st; AVStream *st;
float fps;
fourxm->track_count = 0; fourxm->track_count = 0;
fourxm->tracks = NULL; fourxm->tracks = NULL;
fourxm->selected_track = 0; fourxm->selected_track = 0;
fourxm->fps = 1.0;
/* skip the first 3 32-bit numbers */ /* skip the first 3 32-bit numbers */
url_fseek(pb, 12, SEEK_CUR); url_fseek(pb, 12, SEEK_CUR);
...@@ -160,8 +161,8 @@ static int fourxm_read_header(AVFormatContext *s, ...@@ -160,8 +161,8 @@ static int fourxm_read_header(AVFormatContext *s,
size = LE_32(&header[i + 4]); size = LE_32(&header[i + 4]);
if (fourcc_tag == std__TAG) { if (fourcc_tag == std__TAG) {
fps = get_le_float(&header[i + 12]); fourxm->fps = get_le_float(&header[i + 12]);
fourxm->video_pts_inc = (int)(90000.0 / fps); fourxm->video_pts_inc = (int)(90000.0 / fourxm->fps);
} else if (fourcc_tag == vtrk_TAG) { } else if (fourcc_tag == vtrk_TAG) {
/* check that there is enough data */ /* check that there is enough data */
if (size != vtrk_SIZE) { if (size != vtrk_SIZE) {
...@@ -179,6 +180,8 @@ static int fourxm_read_header(AVFormatContext *s, ...@@ -179,6 +180,8 @@ static int fourxm_read_header(AVFormatContext *s,
fourxm->video_stream_index = st->index; 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_type = CODEC_TYPE_VIDEO;
st->codec.codec_id = CODEC_ID_4XM; st->codec.codec_id = CODEC_ID_4XM;
st->codec.codec_tag = 0; /* no fourcc */ st->codec.codec_tag = 0; /* no fourcc */
......
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