diff flacenc.c @ 12307:a2de400ccd30 libavcodec

Combine and simplify output_subframe_constant() and output_subframe_verbatim().
author jbr
date Fri, 30 Jul 2010 20:24:15 +0000
parents 94e9dcf99f21
children 7bb34d5cb22f
line wrap: on
line diff
--- a/flacenc.c	Fri Jul 30 20:09:14 2010 +0000
+++ b/flacenc.c	Fri Jul 30 20:24:15 2010 +0000
@@ -1101,26 +1101,14 @@
 }
 
 
-static void output_subframe_constant(FlacEncodeContext *s, FlacSubframe *sub)
-{
-    int32_t res;
-
-    res = sub->residual[0];
-    put_sbits(&s->pb, sub->obits, res);
-}
-
-
 static void output_subframe_verbatim(FlacEncodeContext *s, FlacSubframe *sub)
 {
-    int i;
-    FlacFrame *frame;
-    int32_t res;
+    put_sbits(&s->pb, sub->obits, sub->residual[0]);
 
-    frame = &s->frame;
-
-    for (i = 0; i < frame->blocksize; i++) {
-        res = sub->residual[i];
-        put_sbits(&s->pb, sub->obits, res);
+    if (sub->type == FLAC_SUBFRAME_VERBATIM) {
+        int i;
+        for (i = 0; i < s->frame.blocksize; i++)
+            put_sbits(&s->pb, sub->obits, sub->residual[i]);
     }
 }
 
@@ -1212,14 +1200,12 @@
         put_bits(&s->pb, 1, 0); /* no wasted bits */
 
         /* subframe */
-        if(sub->type == FLAC_SUBFRAME_CONSTANT)
-            output_subframe_constant(s, sub);
-        else if(sub->type == FLAC_SUBFRAME_VERBATIM)
-            output_subframe_verbatim(s, sub);
-        else if(sub->type == FLAC_SUBFRAME_FIXED)
-            output_subframe_fixed(s, sub);
-        else if(sub->type == FLAC_SUBFRAME_LPC)
-            output_subframe_lpc(s, sub);
+        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_LPC:      output_subframe_lpc(     s, sub); break;
+        }
     }
 }