From patchwork Tue Jun 2 15:26:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 20115 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 4C309449383 for ; Tue, 2 Jun 2020 18:28:38 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3204968B210; Tue, 2 Jun 2020 18:28:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f193.google.com (mail-pf1-f193.google.com [209.85.210.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5855B68B210 for ; Tue, 2 Jun 2020 18:28:36 +0300 (EEST) Received: by mail-pf1-f193.google.com with SMTP id z64so5211135pfb.1 for ; Tue, 02 Jun 2020 08:28:36 -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=W/+GMMLAT/Kw5RkpijiGBfumyr7lfY38UFTs19eVHgc=; b=YYQ310Xumshc14kc8lj2pG0LmcKZc4m0BCJWb4ky1HNSYUT2UCSPeCCQHw90+cfdNI /o+eTtSQLTXvT5Do1y6E+vU9MzSVNtjDMjKcKTlm7UwGyVehKkGg+/tu764q5201h4g9 wGO3IyPG1SANdbBw8yj7T4KxLOtNZXgAxKwo3/fhDouCMvFB0xU56C6nfp4SHNP8A4JR DScUvIFZ+bDIQMZ9FASY5WUSL/1DqZ/N2KGhmvZSu4FM+LPR06eQwBaqk0klP0EtwrDJ EBS6Gz+gUowp/43o2WoVwD5bE7CVsc1a4K8rlU38ZXEHpICtpX37UxyZxjFHEVADxgSz 26CQ== 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=W/+GMMLAT/Kw5RkpijiGBfumyr7lfY38UFTs19eVHgc=; b=p045/294bC1QY9q4LUOgapXywaFxs/6mspaNaOVYpo/WANfMD+AhKzz1hNZnVlMlfk NK70J1ckw7b/yyxXLt2rNQ/piLuCUDzymzm988VrtVE1PPrUH8N9ndP0As9bORxRB7k7 PsdhPxhd942j1XUtyL8djcV+EsrYUc2eqQtg9RU6dyBazwhwAUU6iCYYDCTr/R25PPH9 MYwURkWeWwaj03uBGR9/2z3ZM4lNVWypCuwN/Vse5ExBziGfK1Y8wsxMtVJN4ljNWCjA pr0EZ63iVYSL+dVsyQxkIg2BquuZQlBU7C+zHvsQFjNhINY0tpx60689Z5BxIBVxcr0a WZJQ== X-Gm-Message-State: AOAM532QkLh8znhaZz9tIcP/eKg68vyNwvwQJC4VozHuqWxlP5At2Sma EFrMJNSVNuU1QV025gYX+psiPRZn X-Google-Smtp-Source: ABdhPJwgFv8ZGNW0MrMBjx22lNhr8sfmprOtWGgw9PjpnLcSMm40JwK/6ZC7FklM8xj8T0yBUD8iAg== X-Received: by 2002:a65:4c8a:: with SMTP id m10mr24164512pgt.138.1591111714404; Tue, 02 Jun 2020 08:28:34 -0700 (PDT) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id j7sm2626736pfh.154.2020.06.02.08.28.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Jun 2020 08:28:33 -0700 (PDT) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Jun 2020 23:26:46 +0800 Message-Id: <1591111618-15778-12-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 12/24] avcodec/dnxhdenc: 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/dnxhdenc.c | 65 +++++++++++++++++---------------------------------- 1 file changed, 22 insertions(+), 43 deletions(-) diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c index fad8400..bcf4f39 100644 --- a/libavcodec/dnxhdenc.c +++ b/libavcodec/dnxhdenc.c @@ -206,15 +206,11 @@ static av_cold int dnxhd_init_vlc(DNXHDEncContext *ctx) int i, j, level, run; int max_level = 1 << (ctx->bit_depth + 2); - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->orig_vlc_codes, - max_level, 4 * sizeof(*ctx->orig_vlc_codes), fail); - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->orig_vlc_bits, - max_level, 4 * sizeof(*ctx->orig_vlc_bits), fail); - FF_ALLOCZ_OR_GOTO(ctx->m.avctx, ctx->run_codes, - 63 * 2, fail); - FF_ALLOCZ_OR_GOTO(ctx->m.avctx, ctx->run_bits, - 63, fail); - + if (!FF_ALLOCZ_TYPED_ARRAY(ctx->orig_vlc_codes, max_level * 4) || + !FF_ALLOCZ_TYPED_ARRAY(ctx->orig_vlc_bits, max_level * 4) || + !(ctx->run_codes = av_mallocz(63 * 2)) || + !(ctx->run_bits = av_mallocz(63))) + return AVERROR(ENOMEM); ctx->vlc_codes = ctx->orig_vlc_codes + max_level * 2; ctx->vlc_bits = ctx->orig_vlc_bits + max_level * 2; for (level = -max_level; level < max_level; level++) { @@ -258,8 +254,6 @@ static av_cold int dnxhd_init_vlc(DNXHDEncContext *ctx) ctx->run_bits[run] = ctx->cid_table->run_bits[i]; } return 0; -fail: - return AVERROR(ENOMEM); } static av_cold int dnxhd_init_qmat(DNXHDEncContext *ctx, int lbias, int cbias) @@ -270,16 +264,11 @@ static av_cold int dnxhd_init_qmat(DNXHDEncContext *ctx, int lbias, int cbias) const uint8_t *luma_weight_table = ctx->cid_table->luma_weight; const uint8_t *chroma_weight_table = ctx->cid_table->chroma_weight; - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->qmatrix_l, - (ctx->m.avctx->qmax + 1), 64 * sizeof(int), fail); - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->qmatrix_c, - (ctx->m.avctx->qmax + 1), 64 * sizeof(int), fail); - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->qmatrix_l16, - (ctx->m.avctx->qmax + 1), 64 * 2 * sizeof(uint16_t), - fail); - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->qmatrix_c16, - (ctx->m.avctx->qmax + 1), 64 * 2 * sizeof(uint16_t), - fail); + if (!FF_ALLOCZ_TYPED_ARRAY(ctx->qmatrix_l, (ctx->m.avctx->qmax + 1) * 64) || + !FF_ALLOCZ_TYPED_ARRAY(ctx->qmatrix_c, (ctx->m.avctx->qmax + 1) * 64) || + !FF_ALLOCZ_TYPED_ARRAY(ctx->qmatrix_l16, (ctx->m.avctx->qmax + 1) * 64 * 2) || + !FF_ALLOCZ_TYPED_ARRAY(ctx->qmatrix_c16, (ctx->m.avctx->qmax + 1) * 64 * 2)) + return AVERROR(ENOMEM); if (ctx->bit_depth == 8) { for (i = 1; i < 64; i++) { @@ -338,27 +327,23 @@ static av_cold int dnxhd_init_qmat(DNXHDEncContext *ctx, int lbias, int cbias) ctx->m.q_intra_matrix = ctx->qmatrix_l; return 0; -fail: - return AVERROR(ENOMEM); } static av_cold int dnxhd_init_rc(DNXHDEncContext *ctx) { - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->mb_rc, (ctx->m.avctx->qmax + 1), - ctx->m.mb_num * sizeof(RCEntry), fail); + if (!FF_ALLOCZ_TYPED_ARRAY(ctx->mb_rc, (ctx->m.avctx->qmax + 1) * ctx->m.mb_num)) + return AVERROR(ENOMEM); + if (ctx->m.avctx->mb_decision != FF_MB_DECISION_RD) { - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->mb_cmp, - ctx->m.mb_num, sizeof(RCCMPEntry), fail); - FF_ALLOCZ_ARRAY_OR_GOTO(ctx->m.avctx, ctx->mb_cmp_tmp, - ctx->m.mb_num, sizeof(RCCMPEntry), fail); + if (!FF_ALLOCZ_TYPED_ARRAY(ctx->mb_cmp, ctx->m.mb_num) || + !FF_ALLOCZ_TYPED_ARRAY(ctx->mb_cmp_tmp, ctx->m.mb_num)) + return AVERROR(ENOMEM); } ctx->frame_bits = (ctx->coding_unit_size - ctx->data_offset - 4 - ctx->min_padding) * 8; ctx->qscale = 1; ctx->lambda = 2 << LAMBDA_FRAC_BITS; // qscale 2 return 0; -fail: - return AVERROR(ENOMEM); } static av_cold int dnxhd_encode_init(AVCodecContext *avctx) @@ -509,15 +494,11 @@ static av_cold int dnxhd_encode_init(AVCodecContext *avctx) if ((ret = dnxhd_init_rc(ctx)) < 0) return ret; - FF_ALLOCZ_OR_GOTO(ctx->m.avctx, ctx->slice_size, - ctx->m.mb_height * sizeof(uint32_t), fail); - FF_ALLOCZ_OR_GOTO(ctx->m.avctx, ctx->slice_offs, - ctx->m.mb_height * sizeof(uint32_t), fail); - FF_ALLOCZ_OR_GOTO(ctx->m.avctx, ctx->mb_bits, - ctx->m.mb_num * sizeof(uint16_t), fail); - FF_ALLOCZ_OR_GOTO(ctx->m.avctx, ctx->mb_qscale, - ctx->m.mb_num * sizeof(uint8_t), fail); - + if (!FF_ALLOCZ_TYPED_ARRAY(ctx->slice_size, ctx->m.mb_height) || + !FF_ALLOCZ_TYPED_ARRAY(ctx->slice_offs, ctx->m.mb_height) || + !FF_ALLOCZ_TYPED_ARRAY(ctx->mb_bits, ctx->m.mb_num) || + !FF_ALLOCZ_TYPED_ARRAY(ctx->mb_qscale, ctx->m.mb_num)) + return AVERROR(ENOMEM); #if FF_API_CODED_FRAME FF_DISABLE_DEPRECATION_WARNINGS avctx->coded_frame->key_frame = 1; @@ -542,14 +523,12 @@ FF_ENABLE_DEPRECATION_WARNINGS for (i = 1; i < avctx->thread_count; i++) { ctx->thread[i] = av_malloc(sizeof(DNXHDEncContext)); if (!ctx->thread[i]) - goto fail; + return AVERROR(ENOMEM); memcpy(ctx->thread[i], ctx, sizeof(DNXHDEncContext)); } } return 0; -fail: // for FF_ALLOCZ_OR_GOTO - return AVERROR(ENOMEM); } static int dnxhd_write_header(AVCodecContext *avctx, uint8_t *buf)