aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto Togni <r_togni@tiscali.it>2007-08-27 21:58:39 +0000
committerRoberto Togni <r_togni@tiscali.it>2007-08-27 21:58:39 +0000
commitb6f508bbcc60b942b85e94997b39df4599d93866 (patch)
tree123dd51d74199a0174590226646603595d1b0bd1
parente89d9fd89cd81099c9b6bd99b2209a7d5f966d67 (diff)
downloadffmpeg-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.c7
-rw-r--r--libavformat/4xm.c4
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;