[FFmpeg-devel] [PATCH v6 7/7] avcodec/adpcmenc: cleanup trellis checks

Zane van Iperen zane at zanevaniperen.com
Wed Jul 8 15:55:37 EEST 2020


Signed-off-by: Zane van Iperen <zane at zanevaniperen.com>
---
 libavcodec/adpcmenc.c | 35 ++++++++++++++++++-----------------
 1 file changed, 18 insertions(+), 17 deletions(-)

diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c
index 4985abb163..adb7bf0bbf 100644
--- a/libavcodec/adpcmenc.c
+++ b/libavcodec/adpcmenc.c
@@ -69,25 +69,26 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx)
         return AVERROR(EINVAL);
     }
 
-    if (avctx->trellis && (unsigned)avctx->trellis > 16U) {
-        av_log(avctx, AV_LOG_ERROR, "invalid trellis size\n");
-        return AVERROR(EINVAL);
-    }
+    if (avctx->trellis) {
+        int frontier, max_paths;
 
-    if (avctx->trellis &&
-       (avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_SSI ||
-        avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_APM)) {
-        /*
-         * The current trellis implementation doesn't work for extended
-         * runs of samples without periodic resets. Disallow it.
-         */
-        av_log(avctx, AV_LOG_ERROR, "trellis not supported\n");
-        return AVERROR_PATCHWELCOME;
-    }
+        if ((unsigned)avctx->trellis > 16U) {
+            av_log(avctx, AV_LOG_ERROR, "invalid trellis size\n");
+            return AVERROR(EINVAL);
+        }
 
-    if (avctx->trellis) {
-        int frontier  = 1 << avctx->trellis;
-        int max_paths =  frontier * FREEZE_INTERVAL;
+        if (avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_SSI ||
+            avctx->codec->id == AV_CODEC_ID_ADPCM_IMA_APM) {
+            /*
+             * The current trellis implementation doesn't work for extended
+             * runs of samples without periodic resets. Disallow it.
+             */
+            av_log(avctx, AV_LOG_ERROR, "trellis not supported\n");
+            return AVERROR_PATCHWELCOME;
+        }
+
+        frontier  = 1 << avctx->trellis;
+        max_paths =  frontier * FREEZE_INTERVAL;
         if (!FF_ALLOC_TYPED_ARRAY(s->paths,        max_paths)    ||
             !FF_ALLOC_TYPED_ARRAY(s->node_buf,     2 * frontier) ||
             !FF_ALLOC_TYPED_ARRAY(s->nodep_buf,    2 * frontier) ||
-- 
2.25.1




More information about the ffmpeg-devel mailing list