From patchwork Thu Feb 18 03:42:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 25752 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 3BC8B44A33C for ; Thu, 18 Feb 2021 05:47:20 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 169AC68A764; Thu, 18 Feb 2021 05:43:20 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 73D2B6804F1 for ; Thu, 18 Feb 2021 05:43:06 +0200 (EET) Received: by mail-wr1-f52.google.com with SMTP id g6so1124850wrs.11 for ; Wed, 17 Feb 2021 19:43:06 -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=y36d97ttaaS2oA3hDqdErHqRR8Ik7SGUAu6mTHq+9PQ=; b=gI8aupUwGaz4EKyauFfKGDQx2ijmrckuiUcucK1+9qMc43LPx3zKdQIJ2+/Iw2bUdW P1G++ocPkXsEihCSor8GXWT79vbeZk1ilX9yBw/lZsmq4WaxCnM5YF8TYHtFON3EmdUd zKopfbvltl5/oT7ukHXjYo3587zSH8QT1BpbyYI3yj/dAXSzWmOzG6dINLgEobRINd75 /+kVwsrdTj4D9KABJgiI93gCgI0wRA9t/2TiyH4zJIxAuXILJ0i2nbeUvk5E5gqRED71 9JcLs0t3Ud7ic9ATpAsvV+6KFa4I8wl7VVdKPzoN498FbiSnpMEgHeA17hrk8OSLxser 2JZA== 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=y36d97ttaaS2oA3hDqdErHqRR8Ik7SGUAu6mTHq+9PQ=; b=anLtaZYsxV3uA3GPPTCM5DamfdyBHvf+73Mn0VM0fzF3GUlZRnYnmP0Iq71O3kRmmA mVD1oO1hHzzts1EyKndMUzARRKQcL/S4df4BkxwTGeAIznAT9qa2w+RjxJtf2wjz1aFP ti6oM0f83C8vh9BswiX+YmZOUPiQQGfdK8LXVTyYwgM8gOTDGpSmLEWJLsYOktlgF5Md gBN8G3kSoMT/vQAxRYhozTMoyLekE1jac6huV3QamPL9shBmLrHG7gN9SJzl9csYRf49 9vNrvR1nKVBW5gWA0ZNlyaQ+7NY83C1C5tr+wzBGqxFyNs0KQmalj+6I6AYQe4QANSKR YbaQ== X-Gm-Message-State: AOAM5338RwMMERDbC6KHhFer7V2ODSGbR4lpwwYV2WJEO7fXm4xFefZi bli3cne6uzMMRe203Dq7VwRl6o1D+5w= X-Google-Smtp-Source: ABdhPJxQk0ZcOTu9q1F2HlI5C6KhIfJhxL/lG+HilHMfAzvnyZTO1Hu28MMI64XQA56QmFXQatRmcA== X-Received: by 2002:a5d:4ecf:: with SMTP id s15mr2200093wrv.132.1613619785680; Wed, 17 Feb 2021 19:43:05 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id p9sm5643855wmc.1.2021.02.17.19.43.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Feb 2021 19:43:05 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Feb 2021 04:42:14 +0100 Message-Id: <20210218034214.2090223-29-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> References: <20210218034214.2090223-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 29/29] avformat/wavdec: Share wav and w64 options 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" The options of the w64 demuxer are a proper subset of the options for the wav demuxer, making it possible to reuse a part of the options for the wav demuxer for the w64 demuxer. Signed-off-by: Andreas Rheinhardt --- Due to w64 having a configure dependency on wav the wav demuxer is always enabled if wavdec is compiled; yet there are nevertheless checks for whether it is enabled in the file and therefore I opted to make this patch compatible with a scenario in which the w64 demuxer no longer requires the wav demuxer. libavformat/wavdec.c | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c index e99de8f6d3..8214ab8498 100644 --- a/libavformat/wavdec.c +++ b/libavformat/wavdec.c @@ -27,6 +27,7 @@ #include +#include "config.h" #include "libavutil/avassert.h" #include "libavutil/dict.h" #include "libavutil/intreadwrite.h" @@ -63,6 +64,17 @@ typedef struct WAVDemuxContext { int rifx; // RIFX: integer byte order for parameters is big endian } WAVDemuxContext; +#define OFFSET(x) offsetof(WAVDemuxContext, x) +#define DEC AV_OPT_FLAG_DECODING_PARAM +static const AVOption demux_options[] = { +#define W64_DEMUXER_OPTIONS_OFFSET (1 * CONFIG_WAV_DEMUXER) +#if CONFIG_WAV_DEMUXER + { "ignore_length", "Ignore length", OFFSET(ignore_length), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, DEC }, +#endif + { "max_size", "max size of single packet", OFFSET(max_size), AV_OPT_TYPE_INT, { .i64 = 4096 }, 1024, 1 << 22, DEC }, + { NULL }, +}; + static void set_spdif(AVFormatContext *s, WAVDemuxContext *wav) { if (CONFIG_SPDIF_DEMUXER && s->streams[0]->codecpar->codec_tag == 1) { @@ -798,14 +810,6 @@ static int wav_read_seek(AVFormatContext *s, return ff_pcm_read_seek(s, stream_index, timestamp, flags); } -#define OFFSET(x) offsetof(WAVDemuxContext, x) -#define DEC AV_OPT_FLAG_DECODING_PARAM -static const AVOption demux_options[] = { - { "ignore_length", "Ignore length", OFFSET(ignore_length), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, DEC }, - { "max_size", "max size of single packet", OFFSET(max_size), AV_OPT_TYPE_INT, { .i64 = 4096 }, 1024, 1 << 22, DEC }, - { NULL }, -}; - static const AVClass wav_demuxer_class = { .class_name = "WAV demuxer", .item_name = av_default_item_name, @@ -955,17 +959,10 @@ static int w64_read_header(AVFormatContext *s) return 0; } -#define OFFSET(x) offsetof(WAVDemuxContext, x) -#define DEC AV_OPT_FLAG_DECODING_PARAM -static const AVOption w64_demux_options[] = { - { "max_size", "max size of single packet", OFFSET(max_size), AV_OPT_TYPE_INT, { .i64 = 4096 }, 1024, 1 << 22, DEC }, - { NULL } -}; - static const AVClass w64_demuxer_class = { .class_name = "W64 demuxer", .item_name = av_default_item_name, - .option = w64_demux_options, + .option = &demux_options[W64_DEMUXER_OPTIONS_OFFSET], .version = LIBAVUTIL_VERSION_INT, };