From patchwork Mon Dec 18 09:57:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 45210 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp7222333pzf; Mon, 18 Dec 2023 01:59:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IELzAPAWwMoEoLNrxFO7V1QNShhy2hXBk7/IjMNx8ZfcD1/Qx1uAYYgB1Dd6MoIF0WsS1NX X-Received: by 2002:a50:d491:0:b0:552:29d9:92c9 with SMTP id s17-20020a50d491000000b0055229d992c9mr9373118edi.3.1702893595802; Mon, 18 Dec 2023 01:59:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702893595; cv=none; d=google.com; s=arc-20160816; b=jbVgj0o5h/oR7Pozq23x9NiRiLjresFcBZ2Mxz4YkLl6/9aONSn4mD5xpOCllASECi 8N6y8w4J/MKbdJHuMsXr5ZbIBlpBewSCn1PQEPH1N8Qrkh8QTylt1sGNRZKM/zmtSMCh BHMBc2kI4Xs0Bmn9LFQD/f5t/VvNqk1PcMxF2w57Xql3RabfZtzylgzLdco4+98NkOEO SI5IFXwIlJ2zkhggt6kGDv6tTIrHVOs7gn3+8oDNNz5H1R7+8gsUJWZjWsMbwIvJSavt oSJuqY0BTAc0/Uu8lQnj2I9f+Cc57TT13wihw3c6BrhnNvfFJZqIpcqRN/4xLOW4igi2 gYKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=bzKuHBDAGbJsei62C0Qji63fwtdmZseHoCU7CW//Y6o=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=TvQFDj7xKpwI6v24HsFTygM2XUPS9NTdDPKdRgBgTONoZY8jCzgJEGCn/ki4WVAmd8 rCA/PIJA6w5+MIf9R2MLMH/w3tdd4ValRNRAcds7tLRPLYm9TTwAC/zwWTAV5IAFSbFj W00uuYxfVlUSl7Bg4YnD/1X+5rETt0zubilSyBAFru4m+Q62IptEj2VFav5S3u65dMvH Y/sJnJLzCMw0sBCGyNT0yJu9+eWGbQgfDhqkbDeOG3SbEzlg/0V16Jv3hQRKsuasNUbV nmBxZLr9nBFv/JtzrXGlWPksCOwqy3crIR5816uSUFgyssbPPk2j2Jf33Lm1aoJEF8Ml ggEA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id co5-20020a0564020c0500b005536f286118si208925edb.65.2023.12.18.01.59.55; Mon, 18 Dec 2023 01:59:55 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7AD4368D225; Mon, 18 Dec 2023 11:58:14 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 972E068D1EF for ; Mon, 18 Dec 2023 11:57:58 +0200 (EET) Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id EAF5F12A9 for ; Mon, 18 Dec 2023 10:57:54 +0100 (CET) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id PCSWvhuOG9C2 for ; Mon, 18 Dec 2023 10:57:54 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id 75E911BA3 for ; Mon, 18 Dec 2023 10:57:51 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id 3C1373A06A6 for ; Mon, 18 Dec 2023 10:57:44 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 18 Dec 2023 10:57:09 +0100 Message-ID: <20231218095722.25879-7-anton@khirnov.net> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231218095722.25879-1-anton@khirnov.net> References: <20231218095722.25879-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 07/20] fftools/cmdutils: renumber option flags sequentially X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: qBY6a5SgyX/c Also, document them. --- fftools/cmdutils.h | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/fftools/cmdutils.h b/fftools/cmdutils.h index d0242dc6ab..8e22560fc6 100644 --- a/fftools/cmdutils.h +++ b/fftools/cmdutils.h @@ -125,23 +125,31 @@ typedef struct OptionDef { * - all other types do */ #define OPT_FUNC_ARG (1 << 0) +/* Program will immediately exit after processing this option */ +#define OPT_EXIT (1 << 1) +/* Option is intended for advanced users. Only affects + * help output. + */ #define OPT_EXPERT (1 << 2) -#define OPT_VIDEO (1 << 4) -#define OPT_AUDIO (1 << 5) -#define OPT_SUBTITLE (1 << 8) -#define OPT_EXIT (1 << 10) -#define OPT_DATA (1 << 11) -/* The option is per-file (currently ffmpeg-only). - implied by OPT_OFFSET or OPT_SPEC */ -#define OPT_PERFILE (1 << 12) +#define OPT_VIDEO (1 << 3) +#define OPT_AUDIO (1 << 4) +#define OPT_SUBTITLE (1 << 5) +#define OPT_DATA (1 << 6) +/* The option is per-file (currently ffmpeg-only). Implied by OPT_OFFSET or + * OPT_SPEC. At least one of OPT_INPUT or OPT_OUTPUT must be set when this flag + * is in use. + */ +#define OPT_PERFILE (1 << 7) /* Option is specified as an offset in a passed optctx */ -#define OPT_OFFSET (1 << 13) +#define OPT_OFFSET (1 << 8) /* Option is to be stored in an array of SpecifierOpt. Implies OPT_OFFSET. Next element after the offset is an int containing element count in the array. */ -#define OPT_SPEC (1 << 14) -#define OPT_INPUT (1 << 17) -#define OPT_OUTPUT (1 << 18) +#define OPT_SPEC (1 << 9) +/* ffmpeg-only - specifies whether an OPT_PERFILE option applies to input, + * output, or both. */ +#define OPT_INPUT (1 << 10) +#define OPT_OUTPUT (1 << 11) union { void *dst_ptr; int (*func_arg)(void *, const char *, const char *);