OSDN Git Service

Combine and simplify output_subframe_fixed() and output_subframe_lpc().
authorJustin Ruggles <justin.ruggles@gmail.com>
Fri, 30 Jul 2010 20:28:46 +0000 (20:28 +0000)
committerJustin Ruggles <justin.ruggles@gmail.com>
Fri, 30 Jul 2010 20:28:46 +0000 (20:28 +0000)
Originally committed as revision 24605 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/flacenc.c

index ef29548..e7d1921 100644 (file)
@@ -1147,36 +1147,22 @@ static void output_residual(FlacEncodeContext *s, FlacSubframe *sub)
 }
 
 
-static void output_subframe_fixed(FlacEncodeContext *s, FlacSubframe *sub)
-{
-    int i;
-
-    /* warm-up samples */
-    for (i = 0; i < sub->order; i++)
-        put_sbits(&s->pb, sub->obits, sub->residual[i]);
-
-    /* residual */
-    output_residual(s, sub);
-}
-
-
 static void output_subframe_lpc(FlacEncodeContext *s, FlacSubframe *sub)
 {
-    int i, cbits;
-    FlacFrame *frame;
-
-    frame = &s->frame;
+    int i;
 
     /* warm-up samples */
     for (i = 0; i < sub->order; i++)
         put_sbits(&s->pb, sub->obits, sub->residual[i]);
 
     /* LPC coefficients */
-    cbits = s->options.lpc_coeff_precision;
+    if (sub->type == FLAC_SUBFRAME_LPC) {
+    int cbits = s->options.lpc_coeff_precision;
     put_bits( &s->pb, 4, cbits-1);
     put_sbits(&s->pb, 5, sub->shift);
     for (i = 0; i < sub->order; i++)
         put_sbits(&s->pb, cbits, sub->coefs[i]);
+    }
 
     /* residual */
     output_residual(s, sub);
@@ -1203,7 +1189,7 @@ static void output_subframes(FlacEncodeContext *s)
         switch (sub->type) {
         case FLAC_SUBFRAME_CONSTANT:
         case FLAC_SUBFRAME_VERBATIM: output_subframe_verbatim(s, sub); break;
-        case FLAC_SUBFRAME_FIXED:    output_subframe_fixed(   s, sub); break;
+        case FLAC_SUBFRAME_FIXED:
         case FLAC_SUBFRAME_LPC:      output_subframe_lpc(     s, sub); break;
         }
     }