[FFmpeg-soc] [soc]: r2595 - alacenc/alacenc.c

jai_menon subversion at mplayerhq.hu
Mon Jun 30 12:00:40 CEST 2008


Author: jai_menon
Date: Mon Jun 30 12:00:40 2008
New Revision: 2595

Log:
lpc parameters should be on a per-channel basis

Modified:
   alacenc/alacenc.c

Modified: alacenc/alacenc.c
==============================================================================
--- alacenc/alacenc.c	(original)
+++ alacenc/alacenc.c	Mon Jun 30 12:00:40 2008
@@ -55,7 +55,7 @@ typedef struct AlacEncodeContext {
     int32_t *predictor_buf;
     PutBitContext pbctx;
     RiceContext rc;
-    LPCContext lpc;
+    LPCContext lpc[MAX_CHANNELS];
     AVCodecContext *avctx;
 } AlacEncodeContext;
 
@@ -145,14 +145,15 @@ static void write_frame_header(AlacEncod
 static void calc_predictor_params(AlacEncodeContext *s, int ch)
 {
     // Set default predictor order
-    s->lpc.lpc_order = 31;
+    s->lpc[ch].lpc_order = 31;
 }
 
 static void alac_linear_predictor(AlacEncodeContext *s, int ch)
 {
     int i;
+    LPCContext lpc = s->lpc[ch];
 
-    if(s->lpc.lpc_order == 31) {
+    if(lpc.lpc_order == 31) {
         i = s->avctx->frame_size - 1;
         while(i > 0) {
             s->predictor_buf[i] = s->sample_buf[ch][i] - s->sample_buf[ch][i-1];
@@ -224,10 +225,10 @@ static void write_compressed_frame(AlacE
         put_bits(&s->pbctx, 4, 0);  // FIXME: prediction quantization
 
         put_bits(&s->pbctx, 3, s->rc.rice_modifier);
-        put_bits(&s->pbctx, 5, s->lpc.lpc_order);
+        put_bits(&s->pbctx, 5, s->lpc[i].lpc_order);
         // predictor coeff. table
-        for(j=0;j<s->lpc.lpc_order;j++) {
-            put_bits(&s->pbctx, 16, s->lpc.lpc_coeff[j]);
+        for(j=0;j<s->lpc[i].lpc_order;j++) {
+            put_bits(&s->pbctx, 16, s->lpc[i].lpc_coeff[j]);
         }
     }
 



More information about the FFmpeg-soc mailing list