diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index f3462aa17afd1e3a6246a08634c9e09e25150ace..1e1c2efb238faad80e20fa120297a76c5ea719ca 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -111,6 +111,7 @@ extern AVCodec msmpeg4_decoder; extern AVCodec mpeg_decoder; extern AVCodec h263i_decoder; extern AVCodec rv10_decoder; +extern AVCodec mjpeg_decoder; /* dummy raw codecs */ extern AVCodec pcm_codec; diff --git a/libavcodec/common.c b/libavcodec/common.c index 47a2125aa5c5aecd12d15ca658a048ba83122b3b..7d299a4d45f6083284a5835514272bf7172d7ec1 100644 --- a/libavcodec/common.c +++ b/libavcodec/common.c @@ -121,7 +121,7 @@ void flush_put_bits(PutBitContext *s) s->bit_buf=0; } -/* for jpeg : espace 0xff with 0x00 after it */ +/* for jpeg : escape 0xff with 0x00 after it */ void jput_bits(PutBitContext *s, int n, unsigned int value) { unsigned int bit_buf, b; @@ -401,7 +401,27 @@ static int build_table(VLC *vlc, int table_nb_bits, } -/* wrap and size allow to handle most types of storage. */ +/* Build VLC decoding tables suitable for use with get_vlc(). + + 'nb_bits' set thee decoding table size (2^nb_bits) entries. The + bigger it is, the faster is the decoding. But it should not be too + big to save memory and L1 cache. '9' is a good compromise. + + 'nb_codes' : number of vlcs codes + + 'bits' : table which gives the size (in bits) of each vlc code. + + 'codes' : table which gives the bit pattern of of each vlc code. + + 'xxx_wrap' : give the number of bytes between each entry of the + 'bits' or 'codes' tables. + + 'xxx_size' : gives the number of bytes of each entry of the 'bits' + or 'codes' tables. + + 'wrap' and 'size' allows to use any memory configuration and types + (byte/word/long) to store the 'bits' and 'codes' tables. +*/ int init_vlc(VLC *vlc, int nb_bits, int nb_codes, const void *bits, int bits_wrap, int bits_size, const void *codes, int codes_wrap, int codes_size) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 39801f42c227ea972d933602cecc0782a24428bc..958f6d32db198fd317eae6462ae850a34ae08a65 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -267,6 +267,7 @@ void avcodec_register_all(void) register_avcodec(&mpeg_decoder); register_avcodec(&h263i_decoder); register_avcodec(&rv10_decoder); + register_avcodec(&mjpeg_decoder); #ifdef CONFIG_MPGLIB register_avcodec(&mp3_decoder); #endif