Mercurial > libavcodec.hg
changeset 5532:f0bee2532ecf libavcodec
replace vlc_type by version and set that from codec_tag which contains the
4xm video version from the demuxer
author | michael |
---|---|
date | Mon, 13 Aug 2007 00:53:55 +0000 |
parents | 80ee0d3dd53e |
children | 8708867078ba |
files | 4xm.c |
diffstat | 1 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/4xm.c Sun Aug 12 15:47:27 2007 +0000 +++ b/4xm.c Mon Aug 13 00:53:55 2007 +0000 @@ -138,7 +138,7 @@ 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 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 @@ 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 int decode_init(AVCodecContext *avctx){ FourXContext * const f = avctx->priv_data; + f->version= avctx->codec_tag == 0x40000; common_init(avctx); init_vlcs(f);