[FFmpeg-cvslog] lavc/encode: improve input sample rate validation

Anton Khirnov git at videolan.org
Tue Jul 11 20:28:55 EEST 2023


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Thu Jul  6 18:16:49 2023 +0200| [39206c5e581f5020fe47adf463a759b0f39186d8] | committer: Anton Khirnov

lavc/encode: improve input sample rate validation

Reject zero sample rates in addition to negative ones and describe them
as 'invalid' rather than 'unsupported'.

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

 libavcodec/encode.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/libavcodec/encode.c b/libavcodec/encode.c
index f443f07e15..0d009a26cc 100644
--- a/libavcodec/encode.c
+++ b/libavcodec/encode.c
@@ -658,6 +658,11 @@ static int encode_preinit_audio(AVCodecContext *avctx)
                avctx->sample_fmt);
         return AVERROR(EINVAL);
     }
+    if (avctx->sample_rate <= 0) {
+        av_log(avctx, AV_LOG_ERROR, "Invalid audio sample rate: %d\n",
+               avctx->sample_rate);
+        return AVERROR(EINVAL);
+    }
 
     if (c->sample_fmts) {
         for (i = 0; c->sample_fmts[i] != AV_SAMPLE_FMT_NONE; i++) {
@@ -686,11 +691,6 @@ static int encode_preinit_audio(AVCodecContext *avctx)
             return AVERROR(EINVAL);
         }
     }
-    if (avctx->sample_rate < 0) {
-        av_log(avctx, AV_LOG_ERROR, "Specified sample rate %d is not supported\n",
-                avctx->sample_rate);
-        return AVERROR(EINVAL);
-    }
     if (c->ch_layouts) {
         for (i = 0; c->ch_layouts[i].nb_channels; i++) {
             if (!av_channel_layout_compare(&avctx->ch_layout, &c->ch_layouts[i]))



More information about the ffmpeg-cvslog mailing list