diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2007-08-13 00:53:55 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2007-08-13 00:53:55 +0000 |
commit | a0d30cbcbf5f8917c42644d521844145e82b129d (patch) | |
tree | a9da1f0511f43dce55922471ef46a111734c3d59 | |
parent | a985a940c034fd6dbe61c058c853cbe7d2c6c7a3 (diff) | |
download | ffmpeg-a0d30cbcbf5f8917c42644d521844145e82b129d.tar.gz |
replace vlc_type by version and set that from codec_tag which contains the
4xm video version from the demuxer
Originally committed as revision 10093 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/4xm.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/libavcodec/4xm.c b/libavcodec/4xm.c index 2db167f699..e2798587af 100644 --- a/libavcodec/4xm.c +++ b/libavcodec/4xm.c @@ -138,7 +138,7 @@ typedef struct FourXContext{ DECLARE_ALIGNED_8(DCTELEM, block[6][64]); uint8_t *bitstream_buffer; unsigned int bitstream_buffer_size; - int vlc_type; + int version; CFrameBuffer cfrm[CFRAME_BUFFER_COUNT]; } FourXContext; @@ -296,7 +296,7 @@ static inline void mcdc(uint16_t *dst, uint16_t *src, int log2w, int h, int stri static void decode_p_block(FourXContext *f, uint16_t *dst, uint16_t *src, int log2w, int log2h, int stride){ const int index= size2index[log2h][log2w]; const int h= 1<<log2h; - int code= get_vlc2(&f->gb, block_type_vlc[f->vlc_type][index].table, BLOCK_TYPE_VLC_BITS, 1); + int code= get_vlc2(&f->gb, block_type_vlc[1-f->version][index].table, BLOCK_TYPE_VLC_BITS, 1); assert(code>=0 && code<=6); @@ -345,13 +345,11 @@ static int decode_p_frame(FourXContext *f, uint8_t *buf, int length){ bitstream_size= get32(buf+8); wordstream_size= get32(buf+12); bytestream_size= get32(buf+16); - f->vlc_type= 0; }else{ extra=0; bitstream_size = AV_RL16(buf-4); wordstream_size= AV_RL16(buf-2); bytestream_size= FFMAX(length - bitstream_size - wordstream_size, 0); - f->vlc_type= 1; } if(bitstream_size+ bytestream_size+ wordstream_size + extra != length @@ -785,6 +783,7 @@ static void common_init(AVCodecContext *avctx){ static int decode_init(AVCodecContext *avctx){ FourXContext * const f = avctx->priv_data; + f->version= avctx->codec_tag == 0x40000; common_init(avctx); init_vlcs(f); |