[FFmpeg-cvslog] avcodec/g723_1dec: improve stereo support

Paul B Mahol git at videolan.org
Tue Dec 18 20:02:31 EET 2018


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Tue Dec 18 18:57:18 2018 +0100| [d283ee085f9aac44b5de1b09e3cab62920fa4a9a] | committer: Paul B Mahol

avcodec/g723_1dec: improve stereo support

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d283ee085f9aac44b5de1b09e3cab62920fa4a9a
---

 libavcodec/g723_1dec.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/libavcodec/g723_1dec.c b/libavcodec/g723_1dec.c
index bc8629fbec..028cde0f37 100644
--- a/libavcodec/g723_1dec.c
+++ b/libavcodec/g723_1dec.c
@@ -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;
 }



More information about the ffmpeg-cvslog mailing list