Mercurial > libavcodec.hg
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; + } } }