[FFmpeg-cvslog] lavc/amrwbdec: Output silence for frames marked as corrupt.

Carl Eugen Hoyos git at videolan.org
Sat Apr 11 15:11:56 EEST 2020


ffmpeg | branch: master | Carl Eugen Hoyos <ceffmpeg at gmail.com> | Sun Apr  5 17:35:38 2020 +0200| [e426f71c96e9fac3ff87f51cfe7df603220fbd5d] | committer: Carl Eugen Hoyos

lavc/amrwbdec: Output silence for frames marked as corrupt.

Fixes ticket #7113.

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

 libavcodec/amrwbdec.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libavcodec/amrwbdec.c b/libavcodec/amrwbdec.c
index 3d82b6ba71..7d357a2685 100644
--- a/libavcodec/amrwbdec.c
+++ b/libavcodec/amrwbdec.c
@@ -1121,7 +1121,10 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data,
     header_size      = decode_mime_header(ctx, buf);
     expected_fr_size = ((cf_sizes_wb[ctx->fr_cur_mode] + 7) >> 3) + 1;
 
-    if (ctx->fr_cur_mode == NO_DATA) {
+    if (!ctx->fr_quality)
+        av_log(avctx, AV_LOG_ERROR, "Encountered a bad or corrupted frame\n");
+
+    if (ctx->fr_cur_mode == NO_DATA || !ctx->fr_quality) {
         av_samples_set_silence(&frame->data[0], 0, frame->nb_samples, 1, AV_SAMPLE_FMT_FLT);
         *got_frame_ptr = 1;
         return expected_fr_size;
@@ -1139,9 +1142,6 @@ static int amrwb_decode_frame(AVCodecContext *avctx, void *data,
         return AVERROR_INVALIDDATA;
     }
 
-    if (!ctx->fr_quality)
-        av_log(avctx, AV_LOG_ERROR, "Encountered a bad or corrupted frame\n");
-
     if (ctx->fr_cur_mode == MODE_SID) { /* Comfort noise frame */
         avpriv_request_sample(avctx, "SID mode");
         return AVERROR_PATCHWELCOME;



More information about the ffmpeg-cvslog mailing list