[FFmpeg-cvslog] opusenc_psy: disable stereo searches for mono streams

Rostislav Pehlivanov git at videolan.org
Thu Jan 4 04:54:32 EET 2018


ffmpeg | branch: master | Rostislav Pehlivanov <atomnuker at gmail.com> | Thu Jan  4 02:52:40 2018 +0000| [f141b353e60f1081185927a1e74a9ab46cae8bef] | committer: Rostislav Pehlivanov

opusenc_psy: disable stereo searches for mono streams

Fixes a crash which happened when someone tried to encode mono.

Signed-off-by: Rostislav Pehlivanov <atomnuker at gmail.com>

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

 libavcodec/opusenc_psy.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/libavcodec/opusenc_psy.c b/libavcodec/opusenc_psy.c
index 50890c65d6..b712603344 100644
--- a/libavcodec/opusenc_psy.c
+++ b/libavcodec/opusenc_psy.c
@@ -383,6 +383,10 @@ static void celt_search_for_dual_stereo(OpusPsyContext *s, CeltFrame *f)
 {
     float td1, td2;
     f->dual_stereo = 0;
+
+    if (s->avctx->channels < 2)
+        return;
+
     bands_dist(s, f, &td1);
     f->dual_stereo = 1;
     bands_dist(s, f, &td2);
@@ -396,6 +400,9 @@ static void celt_search_for_intensity(OpusPsyContext *s, CeltFrame *f)
     int i, best_band = CELT_MAX_BANDS - 1;
     float dist, best_dist = FLT_MAX;
 
+    if (s->avctx->channels < 2)
+        return;
+
     /* TODO: fix, make some heuristic up here using the lambda value */
     float end_band = 0;
 



More information about the ffmpeg-cvslog mailing list