From patchwork Tue Sep 15 07:39:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 22406 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id BD72144937C for ; Tue, 15 Sep 2020 10:43:50 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A18A568BC72; Tue, 15 Sep 2020 10:41:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 520DD68BC6E for ; Tue, 15 Sep 2020 10:40:52 +0300 (EEST) Received: by mail-wr1-f67.google.com with SMTP id k15so2133844wrn.10 for ; Tue, 15 Sep 2020 00:40:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nNwkSkuiWEV/NK8eg58gZnJpE2fd0lLejLCHNTI/Z3c=; b=H3td+MxuS/+lJRELsMm2d+ZhptC9zo7LppH/gKRiw79up4232oMC514qLodMTfRhkV 7lvNiQiruRUEqrEOIPvsnKHdBfkSKYzKESvQXEbmyHI5S8CXtQoIf6WbpU6+ViI+WdFq 78V5b7q2sxTzei1gSZf3BUyuLonMOOv91yob/ppsYDDfK6LSEXQ3JuyHabuBtVyevI29 wm6tG/vs/p3j9V3hYksXLVe5iF0Nm6XZWBJo7A6tYVJN9fPpjvppHJIwSojjAgV2l1EH OhHW10D6wTV5p8Fc3UQnNKdyZMLyQ514GfmWskyrSZZbXtXlBzAPH0zaY3MPWvyTcb49 g21g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nNwkSkuiWEV/NK8eg58gZnJpE2fd0lLejLCHNTI/Z3c=; b=qBWjU+gPgH7sKQgpiumjmbrHFo9YsKSkufyi4N0up4+xBlilUfIeHahrH0tf4WFvRV j2RvEY8mSxzvCH3FUkeWiCEMeXtHD09/Hk2ueV2lL2LLVnQPwDSgSvDRiFfR40knkBR/ BkHaMpANocgt3HUiPggqg/aPU05y1yzJ/Pxicc4BvedTCBu+7MWrBS+rVQXVL4EfgjzB q8NrK4+Nk5vR9zOyS/19IUEEV3LtaXMBsAPSSu/PaVNjHkNppzUa2kz/2mo1Pud2Xwsm 5pootdqKQk+23Qsx/0UqFGtDBJAJCjQjl1xWa+Q7nMxJR0JOJRQm5tQu/9IFt7eoDyVh Lb5A== X-Gm-Message-State: AOAM531NiCz4Gej0OaCIExoHsiIrEGJqGDWpyAJrLQTTHoqO/chRqY6p WIMdZRQRkxxDyKvM5+NLD4tHKYSbyqQ= X-Google-Smtp-Source: ABdhPJy87lIQM0HiTocFyeECExcnD3eciGDS9NnVZecyBic4IsKJaahpS7K6uOlqBbfWy3sYUrvGew== X-Received: by 2002:a5d:4a48:: with SMTP id v8mr19876006wrs.304.1600155651473; Tue, 15 Sep 2020 00:40:51 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1fb0f.dynamic.kabel-deutschland.de. [188.193.251.15]) by smtp.gmail.com with ESMTPSA id d23sm6112125wmb.6.2020.09.15.00.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Sep 2020 00:40:50 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 15 Sep 2020 09:39:55 +0200 Message-Id: <20200915074000.102622-25-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> References: <20200915074000.102622-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 25/30] avcodec/mpc7: Don't pretend initializing static VLC tables can fail X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" It can't if one hasn't made a mistake at calculating the sizes; and this is checked by asserts/aborts. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpc7.c | 45 ++++++++++++--------------------------------- 1 file changed, 12 insertions(+), 33 deletions(-) diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c index e09f1b604f..8518bc2f8a 100644 --- a/libavcodec/mpc7.c +++ b/libavcodec/mpc7.c @@ -47,15 +47,12 @@ static const uint16_t quant_offsets[MPC7_QUANT_VLC_TABLES*2 + 1] = static av_cold int mpc7_decode_init(AVCodecContext * avctx) { - int i, j, ret; + int i, j; MPCContext *c = avctx->priv_data; GetBitContext gb; LOCAL_ALIGNED_16(uint8_t, buf, [16]); static int vlc_initialized = 0; - static VLC_TYPE scfi_table[1 << MPC7_SCFI_BITS][2]; - static VLC_TYPE dscf_table[1 << MPC7_DSCF_BITS][2]; - static VLC_TYPE hdr_table[1 << MPC7_HDR_BITS][2]; static VLC_TYPE quant_tables[7224][2]; /* Musepack SV7 is always stereo */ @@ -95,40 +92,22 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) if(vlc_initialized) return 0; av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n"); - scfi_vlc.table = scfi_table; - scfi_vlc.table_allocated = 1 << MPC7_SCFI_BITS; - if ((ret = init_vlc(&scfi_vlc, MPC7_SCFI_BITS, MPC7_SCFI_SIZE, - &mpc7_scfi[1], 2, 1, - &mpc7_scfi[0], 2, 1, INIT_VLC_USE_NEW_STATIC))) { - av_log(avctx, AV_LOG_ERROR, "Cannot init SCFI VLC\n"); - return ret; - } - dscf_vlc.table = dscf_table; - dscf_vlc.table_allocated = 1 << MPC7_DSCF_BITS; - if ((ret = init_vlc(&dscf_vlc, MPC7_DSCF_BITS, MPC7_DSCF_SIZE, - &mpc7_dscf[1], 2, 1, - &mpc7_dscf[0], 2, 1, INIT_VLC_USE_NEW_STATIC))) { - av_log(avctx, AV_LOG_ERROR, "Cannot init DSCF VLC\n"); - return ret; - } - hdr_vlc.table = hdr_table; - hdr_vlc.table_allocated = 1 << MPC7_HDR_BITS; - if ((ret = init_vlc(&hdr_vlc, MPC7_HDR_BITS, MPC7_HDR_SIZE, - &mpc7_hdr[1], 2, 1, - &mpc7_hdr[0], 2, 1, INIT_VLC_USE_NEW_STATIC))) { - av_log(avctx, AV_LOG_ERROR, "Cannot init HDR VLC\n"); - return ret; - } + INIT_VLC_STATIC(&scfi_vlc, MPC7_SCFI_BITS, MPC7_SCFI_SIZE, + &mpc7_scfi[1], 2, 1, + &mpc7_scfi[0], 2, 1, 1 << MPC7_SCFI_BITS); + INIT_VLC_STATIC(&dscf_vlc, MPC7_DSCF_BITS, MPC7_DSCF_SIZE, + &mpc7_dscf[1], 2, 1, + &mpc7_dscf[0], 2, 1, 1 << MPC7_DSCF_SIZE); + INIT_VLC_STATIC(&hdr_vlc, MPC7_HDR_BITS, MPC7_HDR_SIZE, + &mpc7_hdr[1], 2, 1, + &mpc7_hdr[0], 2, 1, 1 << MPC7_HDR_SIZE); for(i = 0; i < MPC7_QUANT_VLC_TABLES; i++){ for(j = 0; j < 2; j++){ quant_vlc[i][j].table = &quant_tables[quant_offsets[i*2 + j]]; quant_vlc[i][j].table_allocated = quant_offsets[i*2 + j + 1] - quant_offsets[i*2 + j]; - if ((ret = init_vlc(&quant_vlc[i][j], 9, mpc7_quant_vlc_sizes[i], + init_vlc(&quant_vlc[i][j], 9, mpc7_quant_vlc_sizes[i], &mpc7_quant_vlc[i][j][1], 4, 2, - &mpc7_quant_vlc[i][j][0], 4, 2, INIT_VLC_USE_NEW_STATIC))) { - av_log(avctx, AV_LOG_ERROR, "Cannot init QUANT VLC %i,%i\n",i,j); - return ret; - } + &mpc7_quant_vlc[i][j][0], 4, 2, INIT_VLC_USE_NEW_STATIC); } } vlc_initialized = 1;