From patchwork Wed Dec 30 23:31:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 24718 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 624E044BA0E for ; Thu, 31 Dec 2020 01:36:39 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DCA1C68AAFB; Thu, 31 Dec 2020 01:33:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f50.google.com (mail-ed1-f50.google.com [209.85.208.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1973768A99E for ; Thu, 31 Dec 2020 01:32:58 +0200 (EET) Received: by mail-ed1-f50.google.com with SMTP id c7so16828171edv.6 for ; Wed, 30 Dec 2020 15:32:58 -0800 (PST) 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:reply-to :mime-version:content-transfer-encoding; bh=V9Vj4LlzGebGkSreVVc/TH/p/jkUAj7/HGhvqTX3csk=; b=H6qOlbZJl5lIPsqSNxe8vRcxSvgSftQ2DevaMUV9n64tHhkBIEUGFjqg6pzteZELJr Y5dRyXRH4+Gt6k4/RhYRfAXTlme3m0/rhdMHV39X/PrA7sRLXMmpRGdexl3YYBcxnbfx oTOtSIalw1+8rPh2OCLB3MoVlfGXP0GHsRybjccun2hy+SMGPkEYyID5xRnNoj9J4qtT aWmAT8DtKEtDfKbKSUgs0naxfCcV8Ax3JL0Z8nJSHKiWbwv8JH9+qCQEvnD/7P766uQK zoOJsU+bO84o+N0EndjfmL3xU1uekFISP8jLcgU9yZnEkkhhUfkFnaTPQ264oHZVMw/r BmGg== 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:reply-to:mime-version:content-transfer-encoding; bh=V9Vj4LlzGebGkSreVVc/TH/p/jkUAj7/HGhvqTX3csk=; b=anuM978RhPoBbeSpGbV9e6cMPS92wHz8Xg6DDg6g6yz442VnVtA+8Szw50zsZTiPUV IsMviEYaqF3TvgO/sNKKxg1BUicuE7BvrD0Hd8xd30VYNGFQidI/O/LW14ln7oc7ivsc OQ4N/bDxm1al5c7J00wNhMXsGm3VfZ6sbCPbC33SnYf0Y4WTIwogclcZig2RGuv/GsYH 95Sic6XbKrgEaXXpqcAjE+iD2kCRAI8zbSw3gb+eL+8Sl/vtMjaQp9IR2BU7O24+DyNs HCL1AsMVJOR3SzyBg+Syr3/45vMUaJ9ebItyoqcTmGv56ae1Aumg1FMqda7IzxSQV+Wx roKA== X-Gm-Message-State: AOAM533sBNZdAbZoukbSyEL4dVKY5UEMUVw9+bO0qtBgxMzaHWqYLWGs wyQNKlNjL9+yeeI+wUZbkK1UwC3m7H8= X-Google-Smtp-Source: ABdhPJzZ3NOPkz2cfIpg0Jah7v9v5GIbRlwWSuaZNPeFqA2H3e2HArtImSRAgKJ/QIKk+80+8Et5Nw== X-Received: by 2002:a50:fb1a:: with SMTP id d26mr52562090edq.101.1609371178383; Wed, 30 Dec 2020 15:32:58 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id u19sm19630409ejg.16.2020.12.30.15.32.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Dec 2020 15:32:57 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 31 Dec 2020 00:31:53 +0100 Message-Id: <20201230233157.1055287-26-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201230233157.1055287-1-andreas.rheinhardt@gmail.com> References: <20201230233157.1055287-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 26/30] avcodec/dv: Don't pretend VLC allocation can't 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 and therefore we switch from a heap allocated VLC table to a VLC initialized via the mechanism for static VLCs, but without an actual static VLC. Signed-off-by: Andreas Rheinhardt --- libavcodec/dv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/dv.c b/libavcodec/dv.c index 9c75cfd877..7c1ec6e0b2 100644 --- a/libavcodec/dv.c +++ b/libavcodec/dv.c @@ -202,7 +202,8 @@ av_cold int ff_dvvideo_init(AVCodecContext *avctx) int i, j; if (!done) { - VLC dv_vlc; + VLC_TYPE vlc_buf[FF_ARRAY_ELEMS(ff_dv_rl_vlc)][2] = { 0 }; + VLC dv_vlc = { .table = vlc_buf, .table_allocated = FF_ARRAY_ELEMS(vlc_buf) }; uint16_t new_dv_vlc_bits[NB_DV_VLC * 2]; uint8_t new_dv_vlc_len[NB_DV_VLC * 2]; uint8_t new_dv_vlc_run[NB_DV_VLC * 2]; @@ -232,7 +233,7 @@ av_cold int ff_dvvideo_init(AVCodecContext *avctx) /* NOTE: as a trick, we use the fact the no codes are unused * to accelerate the parsing of partial codes */ init_vlc(&dv_vlc, TEX_VLC_BITS, j, new_dv_vlc_len, - 1, 1, new_dv_vlc_bits, 2, 2, 0); + 1, 1, new_dv_vlc_bits, 2, 2, INIT_VLC_USE_NEW_STATIC); av_assert1(dv_vlc.table_size == 1664); for (i = 0; i < dv_vlc.table_size; i++) { @@ -251,7 +252,6 @@ av_cold int ff_dvvideo_init(AVCodecContext *avctx) ff_dv_rl_vlc[i].level = level; ff_dv_rl_vlc[i].run = run; } - ff_free_vlc(&dv_vlc); } s->avctx = avctx;