diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-08-22 22:18:08 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-08-22 22:18:08 +0000 |
commit | d6eb3c500aeab8ae9f138f8eb70d045ac47100ee (patch) | |
tree | 1c3e18cdbf6b7b644fd64ac29bac67cf6c25d84d /libavcodec/mpegvideo.c | |
parent | c3bf0288c9bc119e41818fc4b94290d54c4bc5cb (diff) | |
download | ffmpeg-d6eb3c500aeab8ae9f138f8eb70d045ac47100ee.tar.gz |
custom quant matrix encoding support
Originally committed as revision 2135 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/mpegvideo.c')
-rw-r--r-- | libavcodec/mpegvideo.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index b84875f43e..f9d994509a 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -167,6 +167,18 @@ void ff_init_scantable(uint8_t *permutation, ScanTable *st, const uint8_t *src_s } } +void ff_write_quant_matrix(PutBitContext *pb, int16_t *matrix){ + int i; + + if(matrix){ + put_bits(pb, 1, 1); + for(i=0;i<64;i++) { + put_bits(pb, 8, matrix[ ff_zigzag_direct[i] ]); + } + }else + put_bits(pb, 1, 0); +} + /* init common dct for both encoder and decoder */ int DCT_common_init(MpegEncContext *s) { @@ -812,6 +824,10 @@ int MPV_encode_init(AVCodecContext *avctx) s->intra_matrix[j] = ff_mpeg1_default_intra_matrix[i]; s->inter_matrix[j] = ff_mpeg1_default_non_intra_matrix[i]; } + if(s->avctx->intra_matrix) + s->intra_matrix[j] = s->avctx->intra_matrix[i]; + if(s->avctx->inter_matrix) + s->inter_matrix[j] = s->avctx->inter_matrix[i]; } /* precompute matrix */ |