avcodec/g723_1dec: improve stereo support

This commit is contained in:
Paul B Mahol 2018-12-18 18:57:18 +01:00
parent 7a124138a7
commit d283ee085f
1 changed files with 9 additions and 6 deletions

View File

@ -43,7 +43,6 @@
static av_cold int g723_1_decode_init(AVCodecContext *avctx)
{
G723_1_Context *s = avctx->priv_data;
G723_1_ChannelContext *p = &s->ch[0];
avctx->sample_fmt = AV_SAMPLE_FMT_S16P;
if (avctx->channels < 1 || avctx->channels > 2) {
@ -51,13 +50,17 @@ static av_cold int g723_1_decode_init(AVCodecContext *avctx)
return AVERROR(EINVAL);
}
avctx->channel_layout = avctx->channels == 1 ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO;
p->pf_gain = 1 << 12;
for (int ch = 0; ch < avctx->channels; ch++) {
G723_1_ChannelContext *p = &s->ch[ch];
memcpy(p->prev_lsp, dc_lsp, LPC_ORDER * sizeof(*p->prev_lsp));
memcpy(p->sid_lsp, dc_lsp, LPC_ORDER * sizeof(*p->sid_lsp));
p->pf_gain = 1 << 12;
p->cng_random_seed = CNG_RANDOM_SEED;
p->past_frame_type = SID_FRAME;
memcpy(p->prev_lsp, dc_lsp, LPC_ORDER * sizeof(*p->prev_lsp));
memcpy(p->sid_lsp, dc_lsp, LPC_ORDER * sizeof(*p->sid_lsp));
p->cng_random_seed = CNG_RANDOM_SEED;
p->past_frame_type = SID_FRAME;
}
return 0;
}