From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 077D745780 for ; Wed, 20 Dec 2023 03:02:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 466B568CFFB; Wed, 20 Dec 2023 05:02:34 +0200 (EET) Received: from mail-oo1-f51.google.com (mail-oo1-f51.google.com [209.85.161.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6841268CDC1 for ; Wed, 20 Dec 2023 05:02:27 +0200 (EET) Received: by mail-oo1-f51.google.com with SMTP id 006d021491bc7-593f420187aso696759eaf.1 for ; Tue, 19 Dec 2023 19:02:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703041345; x=1703646145; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=EBJ/2FSNvYjLXGYrtIVlshe0+PlZNjdwKsE/oIljYOA=; b=ih2CF7yLZw2JCaS51YV8JOeMgkToo4YEK2Ee1zhjSr7DGJN6Oibx4h0f0tg0kV3PzA 05mI3UkbtwLSpgfVkocltws/fTc0oQrPren3KQoHWvq1LG43v4C+DFBDQWaS12ez7aEv 0VwgdElMciE7W28cNQwrfC5gtSDX6NA/RddO7LKcwR8zyf4NTcjwdXY+LOa3Gcykg+Dd CCNMhau3aZTZcDBCiL4SME0BbkrzOuA8lB+Y88z6cCcX6Rv4G7K9WZCzCyxRf9TCEWZ7 GK31r7I3+lbQePeoMEwRhNZ9jjDim6jLFPLRtueJh7uBmU+yRRBiWB68H8Up66TmHS0b ry7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703041345; x=1703646145; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=EBJ/2FSNvYjLXGYrtIVlshe0+PlZNjdwKsE/oIljYOA=; b=Vvid/7xCjFWB+ydhSAEEsRO/MvIsAPGihx3V96U9CipC7EvJRiFlCAPYWgdB77nQpP AjJJ2X2NHWYvnmgpJwfjccaM3B7SjXvnc6MP59Jk/y+cpNYtvSQmvh20KFOUgQ0Jq3UD fjKP1a6BTLbD0FyB5HOn8GjJNsWYp6Y/U5MVD3ptsfaXCpb1wamxEASiPF4Fe1p7WcG5 bB+S1KanvQYc3SSABJQ6lSvVqMiamBPexYbu2QQeVFvKh3SRrnE2YJjyA+NXyuUEDhVp 87VF1AGVcGTazIT5E5i6L/4WKGELYPaliXmebH4Lab+7nT/+PmAzIWj2sbXc3jUlkI8I /QhA== X-Gm-Message-State: AOJu0YyECQZNBPIZEnQ+POBobKUcnRvxEmosAQliDG0I+80Av1yflQJq 2V+SWE9jZ0e9kaPFqNxk201tDCIaCnI= X-Google-Smtp-Source: AGHT+IGHbqrSuk8J5gW+vgrIG9QcziuDjRqlgQTG6q+FP6uBwJPDI6N06d+IN/N7i8CzlOdplsNfJg== X-Received: by 2002:a05:6358:63a5:b0:172:d19b:2beb with SMTP id k37-20020a05635863a500b00172d19b2bebmr4006090rwh.48.1703041344615; Tue, 19 Dec 2023 19:02:24 -0800 (PST) Received: from [192.168.0.13] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id e21-20020a17090a9a9500b00286d905535bsm2378796pjp.0.2023.12.19.19.02.22 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 19 Dec 2023 19:02:23 -0800 (PST) Message-ID: <840608eb-8284-45da-95b3-eb997fee0194@gmail.com> Date: Wed, 20 Dec 2023 00:02:37 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20231218191913.2071-1-anton@khirnov.net> <170298247031.8914.4423993700905646592@lain.khirnov.net> <52289c00-e190-45e9-92bc-028459cd6f9d@gmail.com> <170298785392.8914.2659869163650906462@lain.khirnov.net> Content-Language: en-US From: James Almer Autocrypt: addr=jamrial@gmail.com; keydata= xsBNBFjZtqABCADLW+vdEoZaJZDsIO6geYFTOcn1unsEHefj9zn+3oTHlDFFzO47mzHsSfbK 9JE2xpOJEVnC8FAF5Sayi/pVwV+mtQUV3n5dgVeVBYF9GUQwOGFCpK8X54RRqhkgknbunOEE 0CtgAJgmpFmmmHgq02GvEspx1h/rh4apqwQR6QX4Favb+x9+i9ytVpwVcBX94vo2toyP7h/K BWfadQmb8ltgE1kshfg+SQs/H5bTV5Z1DuEASf02ZL/1qYB/sdTgWPLv9XMUHHsRFmMY8TMx wJSkP+Af3AiYQPJYz1B1D4tt98T/NoiVdin10zATakPjV8hXaobuRmxgakkUASXudydDABEB AAHNH0phbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT7CwJIEEwEIADwCGwMGCwkIBwMC BhUIAgkKCwQWAgMBAh4BAheAFiEEd1EujP2UoWlX5pp6FGMBrXN2WeAFAmJoLUUCGQEACgkQ FGMBrXN2WeAFVQf9GtGhniRs1PzNUOgJktCnv6j4BbLieaIPYPEFXKDHOgjqQE2zVMYXnoXl Jam928ii902a8OY06r9ywn/R8ApD1/3NY/v64O71CY9scz5XyH2au8wIZ6HwFy3/f7sqjdGD uctY8Qs7rjT7NkoC5lmgMu2v2k03dGtM9AAf5AK5gU+H0EUw7vmKKiXzUqt5kvBuf4CEwXvH AQT1SMJ52rIlDWB7FQFyZeUbOAK2IgY/KNedfK6nsgd/eQVnlofPd2XoddE7kP6iys7jJefw DD3g3rZyDTq7in5dyk5glaNpWZpbHGBs+9SCYLnfQ8XvWqPFOD+gj0plamKANgOvavKTxM7A TQRY2bagAQgA69YtILj8kYxmqPr/M8+MXT7wVoOWVW9lvSmPquCELaDy/NIS7D06VC5EuE/6 JlJXZMTn37NLlyWhzwOgXuXw5w2tyoQQBuvqGiXJijuXwXH7HKdzrc6rpYtAqt5w05hzNrFS KrS0izG64VpWrfproy3BsL+8TBm9brLhhNPynVRqVukbbGzlATTzNQGZ14TTi2/dL6DkMQnM qn4jX9UEe4GdGQBP50bUJSSmeiIkyNLWA+znuN2PZEz930ZwNrF9GtDVw7mzcmpCZ7spldE2 tutbpy9D1bIqxyqBrYDSezyzL2adR1qgHyOTMCHg2AYNkrIQHrSyJxKTpZ1/hqOp8wARAQAB wsBfBBgBAgAJBQJY2bagAhsMAAoJEBRjAa1zdlnghekH/0Yb0iYJ74oID2f/Fj+AJKS2ekQF P2xOr8lpGzgp/+yWUvPtqbX0A33anBJdYwxaAC0NataX3tfZ+oJkzXqfmqhIHMPYHdZesJA2 Bk9hU/33mDl5s5U66/z0uelWzwKVHoQ2O6or4+qF3HJFSJLCe9uvWJ3zXf9F342Ftj73sfx+ 3xkw/IXsN1RqbYqDlzpoEQ99SIEfY/8Jjwnd3sIPfqkuyeaYfe6GJDqKawdCEP1oRRlbXEAp TJgYz8r3nPhGv9cdHNDCk44ISbsqVuxIEnLqi4fTPZaGupiQhT+srl268TTAp2TQW7+6Ce/b NPQorMquzS/LZoyALpmsYi/miMc= In-Reply-To: <170298785392.8914.2659869163650906462@lain.khirnov.net> Subject: Re: [FFmpeg-devel] [PATCH 1/2] lavf: allow setting AVStream.discard as an AVOption 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 12/19/2023 9:10 AM, Anton Khirnov wrote: > Quoting James Almer (2023-12-19 13:09:05) >> On 12/19/2023 7:41 AM, Anton Khirnov wrote: >>> Quoting James Almer (2023-12-18 20:30:47) >>>> On 12/18/2023 4:19 PM, Anton Khirnov wrote: >>>>> --- >>>>> libavformat/options.c | 10 ++++++++++ >>>>> 1 file changed, 10 insertions(+) >>>>> >>>>> diff --git a/libavformat/options.c b/libavformat/options.c >>>>> index bf6113ca95..cc89dd6c72 100644 >>>>> --- a/libavformat/options.c >>>>> +++ b/libavformat/options.c >>>>> @@ -229,6 +229,16 @@ static const AVOption stream_options[] = { >>>>> { "metadata", .type = AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_METADATA }, .unit = "disposition" }, >>>>> { "dependent", .type = AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_DEPENDENT }, .unit = "disposition" }, >>>>> { "still_image", .type = AV_OPT_TYPE_CONST, { .i64 = AV_DISPOSITION_STILL_IMAGE }, .unit = "disposition" }, >>>>> + >>>>> + { "discard", NULL, offsetof(AVStream, discard), AV_OPT_TYPE_INT, { .i64 = AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, >>>>> + .flags = AV_OPT_FLAG_DECODING_PARAM, .unit = "avdiscard" }, >>>>> + { "none", .type = AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_NONE }, .unit = "avdiscard" }, >>>>> + { "default", .type = AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_DEFAULT }, .unit = "avdiscard" }, >>>>> + { "noref", .type = AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_NONREF }, .unit = "avdiscard" }, >>>>> + { "bidir", .type = AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_BIDIR }, .unit = "avdiscard" }, >>>>> + { "nointra", .type = AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_NONINTRA }, .unit = "avdiscard" }, >>>>> + { "nokey", .type = AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_NONKEY }, .unit = "avdiscard" }, >>>>> + { "all", .type = AV_OPT_TYPE_CONST, {.i64 = AVDISCARD_ALL }, .unit = "avdiscard" }, >>>>> { NULL } >>>>> }; >>>> >>>> Should be ok. >>>> >>>> Maybe also add "id" like i did for AVStreamGroup while at it. >>> >>> The problem with id is how to flag it - it's read-only for demuxing and >>> user-settable for muxing. >> >> Wouldn't the AV_OPT_FLAG_ENCODING_PARAM flag be enough for the CLI to >> reject it for demuxing cases? > > Those flags should be set for all callers, not just the CLI. And for Of course, but by flagging it as AV_OPT_FLAG_ENCODING_PARAM any caller, CLI included, can make sure to not attempt to set it on demuxing scenarios. > demuxing the proper flag is AV_OPT_FLAG_EXPORT Agree, that flag should be set too for id. I don't think ENCODING_PARAM and EXPORT are incompatible. The doxy for the former states "a generic parameter which can be set by the user for muxing or encoding" and for the latter "The option is intended for exporting values to the caller", which fulfills both of the requirements you listed above: The caller can't set it on demuxing scenarios but can read it to see what a demuxer wrote to it, and can both set it on muxing scenarios and look at what a muxer may have written on it. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".