diff options
author | Roberto Togni <r_togni@tiscali.it> | 2007-08-27 21:58:39 +0000 |
---|---|---|
committer | Roberto Togni <r_togni@tiscali.it> | 2007-08-27 21:58:39 +0000 |
commit | b6f508bbcc60b942b85e94997b39df4599d93866 (patch) | |
tree | 123dd51d74199a0174590226646603595d1b0bd1 | |
parent | e89d9fd89cd81099c9b6bd99b2209a7d5f966d67 (diff) | |
download | ffmpeg-b6f508bbcc60b942b85e94997b39df4599d93866.tar.gz |
Change 4xm demuxer and video decoder to pass the video format version in
extradata instead of codec_tag.
Originally committed as revision 10253 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/4xm.c | 7 | ||||
-rw-r--r-- | libavformat/4xm.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/libavcodec/4xm.c b/libavcodec/4xm.c index 7af22c7963..83e1b92ec4 100644 --- a/libavcodec/4xm.c +++ b/libavcodec/4xm.c @@ -789,7 +789,12 @@ static void common_init(AVCodecContext *avctx){ static int decode_init(AVCodecContext *avctx){ FourXContext * const f = avctx->priv_data; - f->version= avctx->codec_tag == 0x40000; + if(avctx->extradata_size != 4 || !avctx->extradata) { + av_log(avctx, AV_LOG_ERROR, "extradata wrong or missing\n"); + return 1; + } + + f->version= AV_RL32(avctx->extradata) == 0x40000; common_init(avctx); init_vlcs(f); diff --git a/libavformat/4xm.c b/libavformat/4xm.c index 94bd025c08..5f982e3c88 100644 --- a/libavformat/4xm.c +++ b/libavformat/4xm.c @@ -149,7 +149,9 @@ static int fourxm_read_header(AVFormatContext *s, st->codec->codec_type = CODEC_TYPE_VIDEO; st->codec->codec_id = CODEC_ID_4XM; - st->codec->codec_tag = AV_RL32(&header[i + 16]); + st->codec->extradata_size = 4; + st->codec->extradata = av_malloc(4); + AV_WL32(st->codec->extradata, AV_RL32(&header[i + 16])); st->codec->width = fourxm->width; st->codec->height = fourxm->height; |