From patchwork Tue Jun 2 15:26:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 20117 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 35BA5449383 for ; Tue, 2 Jun 2020 18:28:44 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1CD1A68B260; Tue, 2 Jun 2020 18:28:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f67.google.com (mail-pj1-f67.google.com [209.85.216.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4B4F768B27D for ; Tue, 2 Jun 2020 18:28:42 +0300 (EEST) Received: by mail-pj1-f67.google.com with SMTP id h95so1627226pje.4 for ; Tue, 02 Jun 2020 08:28:42 -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; bh=w0j0BIVl/EEwAUiqk+r5egZMPQg7UGerjSC8OXMeIY8=; b=OXcy3wlK/VtQ8n6W2VTZyLqCBhBVav2lFuPpmaHV+XVsmr8A1CYpXTHvjl5xR7O32S GCWVE1Ez/uzhUIXSa4UhbnwJcDuuAy7rPS9aPoRRYXZbGV0ZMy3oIqWIXgj0EdFdKoSv LZDe/8e0i0UmQhYcZVf3NaenMBKSxHAcDLXT4dk4goxj98gNuX8zp7kQvlHLOq/KnYtU djVyZqwUypZWUG144aIlUfuIJ2m//i9RaBRLP8UeKLi0k3RQJhJvV3nSrVzOxAndKUnI kY3DDiBQNXmzfkeMOv05PpO6FJf9UF8O31SwjhGAaZ6SexSld9LQyuZ0pFue8I7NG4QK dcgw== 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; bh=w0j0BIVl/EEwAUiqk+r5egZMPQg7UGerjSC8OXMeIY8=; b=S04afeMdsnGCUBhJsFQ2+RCFvXcPo/XhujHXjxCm5MI5KgP4e5XkFIVNZX764z5lTc lmv55mRv1+2tNPnhmiiTp/U8grmeyOZQ1aB/lFy+t2hvsO8YvjWvAqEm1pa7B4bQbN9w Ngkjo0BLEeJY4E+UFH/5PjVa7XGUL8PWmQ0COWcMoNp4bP3rJ1+XoGOI2YSHWk3fqKjV N1/E6tY92DHtgajWnrE2WU9KcOdShV+B7dbJ6oClKPkQlBCmCNUu/uz9TwcQTIyuMnaT 8rUiam/FOseM3aem+QySAbKWZD0CburvysH8GpsMICynJroR6VrABd3MHYjSLK8I7fis O/7g== X-Gm-Message-State: AOAM533qvqv6hX5cyFiHFoqBm3RwCm8Dwnh+Auz1Rj1rb98pqfNhCmoS 3wX1+QrZyJ/kttnQIgorMsr0vwYS X-Google-Smtp-Source: ABdhPJy3Z9qd1Mswv6fzv60//6isbYRkRbwnrgBBvj9Vj5dgJRYKMyrHbDkWlcFG/tlLsjsXpfZ9IA== X-Received: by 2002:a17:90a:e509:: with SMTP id t9mr3052837pjy.189.1591111720293; Tue, 02 Jun 2020 08:28:40 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id j7sm2626736pfh.154.2020.06.02.08.28.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Jun 2020 08:28:39 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Jun 2020 23:26:48 +0800 Message-Id: <1591111618-15778-14-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1591111618-15778-1-git-send-email-lance.lmwang@gmail.com> References: <1590674250-32571-1-git-send-email-lance.lmwang@gmail.com> <1591111618-15778-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v4 14/24] avcodec/ac3enc: remove FF_ALLOCZ_ARRAY_OR_GOTO and gotos label 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Limin Wang Signed-off-by: Limin Wang --- libavcodec/ac3enc.c | 94 ++++++++++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 56 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 4fb2dd9..37dc0fb 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2322,60 +2322,46 @@ static av_cold void set_bandwidth(AC3EncodeContext *s) static av_cold int allocate_buffers(AC3EncodeContext *s) { - AVCodecContext *avctx = s->avctx; int blk, ch; int channels = s->channels + 1; /* includes coupling channel */ int channel_blocks = channels * s->num_blocks; int total_coefs = AC3_MAX_COEFS * channel_blocks; if (s->allocate_sample_buffers(s)) - goto alloc_fail; - - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->bap_buffer, total_coefs, - sizeof(*s->bap_buffer), alloc_fail); - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->bap1_buffer, total_coefs, - sizeof(*s->bap1_buffer), alloc_fail); - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->mdct_coef_buffer, total_coefs, - sizeof(*s->mdct_coef_buffer), alloc_fail); - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->exp_buffer, total_coefs, - sizeof(*s->exp_buffer), alloc_fail); - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->grouped_exp_buffer, channel_blocks, 128 * - sizeof(*s->grouped_exp_buffer), alloc_fail); - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->psd_buffer, total_coefs, - sizeof(*s->psd_buffer), alloc_fail); - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->band_psd_buffer, channel_blocks, 64 * - sizeof(*s->band_psd_buffer), alloc_fail); - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->mask_buffer, channel_blocks, 64 * - sizeof(*s->mask_buffer), alloc_fail); - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->qmant_buffer, total_coefs, - sizeof(*s->qmant_buffer), alloc_fail); + return AVERROR(ENOMEM); + + if (!FF_ALLOC_TYPED_ARRAY(s->bap_buffer, total_coefs) || + !FF_ALLOC_TYPED_ARRAY(s->bap1_buffer, total_coefs) || + !FF_ALLOCZ_TYPED_ARRAY(s->mdct_coef_buffer, total_coefs) || + !FF_ALLOC_TYPED_ARRAY(s->exp_buffer, total_coefs) || + !FF_ALLOC_TYPED_ARRAY(s->grouped_exp_buffer, channel_blocks * 128) || + !FF_ALLOC_TYPED_ARRAY(s->psd_buffer, total_coefs) || + !FF_ALLOC_TYPED_ARRAY(s->band_psd_buffer, channel_blocks * 64) || + !FF_ALLOC_TYPED_ARRAY(s->mask_buffer, channel_blocks * 64) || + !FF_ALLOC_TYPED_ARRAY(s->qmant_buffer, total_coefs)) + return AVERROR(ENOMEM); + if (s->cpl_enabled) { - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->cpl_coord_exp_buffer, channel_blocks, 16 * - sizeof(*s->cpl_coord_exp_buffer), alloc_fail); - FF_ALLOC_ARRAY_OR_GOTO(avctx, s->cpl_coord_mant_buffer, channel_blocks, 16 * - sizeof(*s->cpl_coord_mant_buffer), alloc_fail); + if (!FF_ALLOC_TYPED_ARRAY(s->cpl_coord_exp_buffer, channel_blocks * 16) || + !FF_ALLOC_TYPED_ARRAY(s->cpl_coord_mant_buffer, channel_blocks * 16)) + return AVERROR(ENOMEM); } for (blk = 0; blk < s->num_blocks; blk++) { AC3Block *block = &s->blocks[blk]; - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->mdct_coef, channels, sizeof(*block->mdct_coef), - alloc_fail); - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->exp, channels, sizeof(*block->exp), - alloc_fail); - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->grouped_exp, channels, sizeof(*block->grouped_exp), - alloc_fail); - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->psd, channels, sizeof(*block->psd), - alloc_fail); - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->band_psd, channels, sizeof(*block->band_psd), - alloc_fail); - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->mask, channels, sizeof(*block->mask), - alloc_fail); - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->qmant, channels, sizeof(*block->qmant), - alloc_fail); + + if (!FF_ALLOCZ_TYPED_ARRAY(block->mdct_coef, channels) || + !FF_ALLOCZ_TYPED_ARRAY(block->exp, channels) || + !FF_ALLOCZ_TYPED_ARRAY(block->grouped_exp, channels) || + !FF_ALLOCZ_TYPED_ARRAY(block->psd, channels) || + !FF_ALLOCZ_TYPED_ARRAY(block->band_psd, channels) || + !FF_ALLOCZ_TYPED_ARRAY(block->mask, channels) || + !FF_ALLOCZ_TYPED_ARRAY(block->qmant, channels)) + return AVERROR(ENOMEM); + if (s->cpl_enabled) { - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->cpl_coord_exp, channels, sizeof(*block->cpl_coord_exp), - alloc_fail); - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->cpl_coord_mant, channels, sizeof(*block->cpl_coord_mant), - alloc_fail); + if (!FF_ALLOCZ_TYPED_ARRAY(block->cpl_coord_exp, channels) || + !FF_ALLOCZ_TYPED_ARRAY(block->cpl_coord_mant, channels)) + return AVERROR(ENOMEM); } for (ch = 0; ch < channels; ch++) { @@ -2397,28 +2383,26 @@ static av_cold int allocate_buffers(AC3EncodeContext *s) } if (!s->fixed_point) { - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, s->fixed_coef_buffer, total_coefs, - sizeof(*s->fixed_coef_buffer), alloc_fail); + if (!FF_ALLOCZ_TYPED_ARRAY(s->fixed_coef_buffer, total_coefs)) + return AVERROR(ENOMEM); for (blk = 0; blk < s->num_blocks; blk++) { AC3Block *block = &s->blocks[blk]; - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->fixed_coef, channels, - sizeof(*block->fixed_coef), alloc_fail); + if (!FF_ALLOCZ_TYPED_ARRAY(block->fixed_coef, channels)) + return AVERROR(ENOMEM); for (ch = 0; ch < channels; ch++) block->fixed_coef[ch] = &s->fixed_coef_buffer[AC3_MAX_COEFS * (s->num_blocks * ch + blk)]; } } else { for (blk = 0; blk < s->num_blocks; blk++) { AC3Block *block = &s->blocks[blk]; - FF_ALLOCZ_ARRAY_OR_GOTO(avctx, block->fixed_coef, channels, - sizeof(*block->fixed_coef), alloc_fail); + if (!FF_ALLOCZ_TYPED_ARRAY(block->fixed_coef, channels)) + return AVERROR(ENOMEM); for (ch = 0; ch < channels; ch++) block->fixed_coef[ch] = (int32_t *)block->mdct_coef[ch]; } } return 0; -alloc_fail: - return AVERROR(ENOMEM); } @@ -2433,7 +2417,7 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx) ret = validate_options(s); if (ret) - goto init_fail; + return ret; avctx->frame_size = AC3_BLOCK_SIZE * s->num_blocks; avctx->initial_padding = AC3_BLOCK_SIZE; @@ -2476,11 +2460,11 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx) ret = s->mdct_init(s); if (ret) - goto init_fail; + return ret; ret = allocate_buffers(s); if (ret) - goto init_fail; + return ret; ff_audiodsp_init(&s->adsp); ff_me_cmp_init(&s->mecc, avctx); @@ -2489,6 +2473,4 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx) dprint_options(s); return 0; -init_fail: - return ret; }