From patchwork Fri Jul 31 11:22:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 21404 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 AB46144998B for ; Fri, 31 Jul 2020 14:23:36 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9487368B852; Fri, 31 Jul 2020 14:23:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ej1-f65.google.com (mail-ej1-f65.google.com [209.85.218.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 15E9768B813 for ; Fri, 31 Jul 2020 14:23:29 +0300 (EEST) Received: by mail-ej1-f65.google.com with SMTP id f24so10575898ejx.6 for ; Fri, 31 Jul 2020 04:23:29 -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=87MGbHXAUAFItAcBL5AV1PISw4Kbx/D/I60f7fEmvXg=; b=JRrGJim+Kys/lfmu9e7MSfU/JvEdYP3Z9pR1TRaghfjLk97FyYoVUzLfFEYoPGhwGM 0e1EBUyiH/NP5GtMEsyo6nH2Fih2GbWzwq5iJwb3pY6qXgKLbZmxdCJy9TW/RSy2r0Xf lrB7IKzNYHTYE/H64WaIMgl34/ECpCXj4XRpIqwQJQ/k6H6WEhcJrDAvEYljNsZn2DWE +bxVIaO8j9eHzLAGwW4/ZZkZBWLF4ZsdMlJfufaB1XPsvt8fXeNJsiyk9agJhM9NHcXN 0NuKcq0f4zVeeqWzEwr2XvQunj13I2d06EEURSJO1cWroJtFLqQTDm4CR4pxC5i3nuh2 DvFQ== 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=87MGbHXAUAFItAcBL5AV1PISw4Kbx/D/I60f7fEmvXg=; b=G4qih7m7HP5QXdAE8r+Cv4hshNs4awTxVtn9+QtdwY9dQwsJNj7FKYPvZcwyJ8b1Qq NOJY0QsFCDcUWV1HBSn5ZQxai9icMRwLQNTvh9Ullh8L9yhWX8Q4tx5tiRmsdNJ1wXpA tJTYvpCWBjvHCKYfu+Q7BBB/yL4wbZqPwow1QQqr3NoE9x4k7AenHyB0p/To5h3cDaqs Llx3kv2bO6sAgnJWxriwWrDJ7wsCD73x6iD9zZuWiLu9/wQSPv6uHtn8sBoIBavulomJ d2JyWUGDixIm1b+6cRGjQene8HGzgWk/ob2OX9EsIulL5R00ZChLuYgsixO2n/wW+8tx 7gyw== X-Gm-Message-State: AOAM5312BK2qGzYfPfskOfx8tm9FJarEybHFTISOpPAUW2O54V1mljmv yStBL0SCPbTRyLtmRty1VokKiEat X-Google-Smtp-Source: ABdhPJycsUR0s0kpbh1VNphoTDRij4tAOIC9qXhMBX1bHH49uT685hIjgnv+tzIa9t+aLw72HsOhcg== X-Received: by 2002:a17:906:a252:: with SMTP id bi18mr3451223ejb.151.1596194608233; Fri, 31 Jul 2020 04:23:28 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc10296.dynamic.kabel-deutschland.de. [188.193.2.150]) by smtp.gmail.com with ESMTPSA id v22sm9284279edq.35.2020.07.31.04.23.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jul 2020 04:23:27 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 31 Jul 2020 13:22:36 +0200 Message-Id: <20200731112241.8948-3-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200731112241.8948-1-andreas.rheinhardt@gmail.com> References: <20200731112241.8948-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/8] avcodec/vlc: Add macro for ff_init_vlc_sparse() 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" ff_init_vlc_sparse() supports arrays of uint8_t, uint16_t and uint32_t as input (and it also supports padding/other elements in between the elements). This makes the typical case in which the input is a simple array more cumbersome. E.g. for an array of uint8_t one would either need to call the function with arguments like "array, sizeof(array[0]), sizeof(array[0])" or with "array, 1, 1". The former is nicer, but longer, so that the latter is mostly used. Therefore this commit adds a macro that expands to the sizeof() construct. Signed-off-by: Andreas Rheinhardt --- libavcodec/vlc.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libavcodec/vlc.h b/libavcodec/vlc.h index 42ccddf3fc..7cb323b62c 100644 --- a/libavcodec/vlc.h +++ b/libavcodec/vlc.h @@ -35,7 +35,12 @@ typedef struct RL_VLC_ELEM { uint8_t run; } RL_VLC_ELEM; -#define init_vlc(vlc, nb_bits, nb_codes, \ +#define INIT_VLC_DEFAULT_SIZES(ptr) \ + (ptr), sizeof((ptr)[0]), sizeof((ptr)[0]) + +#define init_vlc(...) init_vlc2(__VA_ARGS__) + +#define init_vlc2(vlc, nb_bits, nb_codes, \ bits, bits_wrap, bits_size, \ codes, codes_wrap, codes_size, \ flags) \