Browse Source

Pass FlacSubframe to output_subframe_* instead of channel number.

Originally committed as revision 24603 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Justin Ruggles 15 years ago
parent
commit
1f1c05b09f
1 changed files with 11 additions and 24 deletions
  1. +11
    -24
      libavcodec/flacenc.c

+ 11
- 24
libavcodec/flacenc.c View File

@@ -1101,26 +1101,22 @@ static void output_frame_header(FlacEncodeContext *s)
} }




static void output_subframe_constant(FlacEncodeContext *s, int ch)
static void output_subframe_constant(FlacEncodeContext *s, FlacSubframe *sub)
{ {
FlacSubframe *sub;
int32_t res; int32_t res;


sub = &s->frame.subframes[ch];
res = sub->residual[0]; res = sub->residual[0];
put_sbits(&s->pb, sub->obits, res); put_sbits(&s->pb, sub->obits, res);
} }




static void output_subframe_verbatim(FlacEncodeContext *s, int ch)
static void output_subframe_verbatim(FlacEncodeContext *s, FlacSubframe *sub)
{ {
int i; int i;
FlacFrame *frame; FlacFrame *frame;
FlacSubframe *sub;
int32_t res; int32_t res;


frame = &s->frame; frame = &s->frame;
sub = &frame->subframes[ch];


for (i = 0; i < frame->blocksize; i++) { for (i = 0; i < frame->blocksize; i++) {
res = sub->residual[i]; res = sub->residual[i];
@@ -1129,16 +1125,14 @@ static void output_subframe_verbatim(FlacEncodeContext *s, int ch)
} }




static void output_residual(FlacEncodeContext *s, int ch)
static void output_residual(FlacEncodeContext *s, FlacSubframe *sub)
{ {
int i, j, p, n, parts; int i, j, p, n, parts;
int k, porder, psize, res_cnt; int k, porder, psize, res_cnt;
FlacFrame *frame; FlacFrame *frame;
FlacSubframe *sub;
int32_t *res; int32_t *res;


frame = &s->frame; frame = &s->frame;
sub = &frame->subframes[ch];
res = sub->residual; res = sub->residual;
n = frame->blocksize; n = frame->blocksize;


@@ -1165,32 +1159,25 @@ static void output_residual(FlacEncodeContext *s, int ch)
} }




static void output_subframe_fixed(FlacEncodeContext *s, int ch)
static void output_subframe_fixed(FlacEncodeContext *s, FlacSubframe *sub)
{ {
int i; int i;
FlacFrame *frame;
FlacSubframe *sub;

frame = &s->frame;
sub = &frame->subframes[ch];


/* warm-up samples */ /* warm-up samples */
for (i = 0; i < sub->order; i++) for (i = 0; i < sub->order; i++)
put_sbits(&s->pb, sub->obits, sub->residual[i]); put_sbits(&s->pb, sub->obits, sub->residual[i]);


/* residual */ /* residual */
output_residual(s, ch);
output_residual(s, sub);
} }




static void output_subframe_lpc(FlacEncodeContext *s, int ch)
static void output_subframe_lpc(FlacEncodeContext *s, FlacSubframe *sub)
{ {
int i, cbits; int i, cbits;
FlacFrame *frame; FlacFrame *frame;
FlacSubframe *sub;


frame = &s->frame; frame = &s->frame;
sub = &frame->subframes[ch];


/* warm-up samples */ /* warm-up samples */
for (i = 0; i < sub->order; i++) for (i = 0; i < sub->order; i++)
@@ -1204,7 +1191,7 @@ static void output_subframe_lpc(FlacEncodeContext *s, int ch)
put_sbits(&s->pb, cbits, sub->coefs[i]); put_sbits(&s->pb, cbits, sub->coefs[i]);


/* residual */ /* residual */
output_residual(s, ch);
output_residual(s, sub);
} }




@@ -1226,13 +1213,13 @@ static void output_subframes(FlacEncodeContext *s)


/* subframe */ /* subframe */
if(sub->type == FLAC_SUBFRAME_CONSTANT) if(sub->type == FLAC_SUBFRAME_CONSTANT)
output_subframe_constant(s, ch);
output_subframe_constant(s, sub);
else if(sub->type == FLAC_SUBFRAME_VERBATIM) else if(sub->type == FLAC_SUBFRAME_VERBATIM)
output_subframe_verbatim(s, ch);
output_subframe_verbatim(s, sub);
else if(sub->type == FLAC_SUBFRAME_FIXED) else if(sub->type == FLAC_SUBFRAME_FIXED)
output_subframe_fixed(s, ch);
output_subframe_fixed(s, sub);
else if(sub->type == FLAC_SUBFRAME_LPC) else if(sub->type == FLAC_SUBFRAME_LPC)
output_subframe_lpc(s, ch);
output_subframe_lpc(s, sub);
} }
} }




Loading…
Cancel
Save