diff mpegvideo.c @ 1411:c2e63cb94d06 libavcodec

custom quant matrix encoding support
author michaelni
date Fri, 22 Aug 2003 22:18:08 +0000
parents f662e9c86cf2
children 8edad1e372d1
line wrap: on
line diff
--- a/mpegvideo.c	Fri Aug 22 14:59:04 2003 +0000
+++ b/mpegvideo.c	Fri Aug 22 22:18:08 2003 +0000
@@ -167,6 +167,18 @@
     }
 }
 
+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 @@
             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 */