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 129FC49BDC for ; Wed, 3 Apr 2024 18:32:54 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A830B68CF80; Wed, 3 Apr 2024 21:32:51 +0300 (EEST) Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B379068C463 for ; Wed, 3 Apr 2024 21:32:44 +0300 (EEST) Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1e2987e9d67so765695ad.1 for ; Wed, 03 Apr 2024 11:32:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712169162; x=1712773962; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=D9UOAPCt0k+eSPoJ2mkZ4mnc+ZzkVdSd4PW+ivYD+MY=; b=EdUMDBoMCqKuAKRMOe+eaB1oc8unnPAadasH5UFVr+C037ja3KPrwmU/WFw4Kv3TgW Yj7Jmb6dPjj90jwgy8M9DGECbSuxGM14pNs15SDeruYJW4kWde0kh+1/f5pENezezTF0 RevA14krFZ6KvYTseVKEyltYTV/A9PpRTmmkgTUxTAPULXkSJbUldj1LzVtRJot+a+Tr 3ntS/FFEhokT9YNvtFrvj67wZYRAAgBEx39rsw9ShwpPrm5P/FzIKJb/lyHlcfP/gstv IKoxxwS1lkHwDd00oMybMQ5xgwthN6m+af/RfLgq1Lwpnf8fvc785dx0CNYND6Lm6r7v dUow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712169162; x=1712773962; h=content-transfer-encoding:in-reply-to: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=D9UOAPCt0k+eSPoJ2mkZ4mnc+ZzkVdSd4PW+ivYD+MY=; b=bLb22ge9Waa/6bnFtRHLmz4HSS4JWM1FEYprKwLqdxgQ5fYh3kH9misF1nYwlasifJ +LcWz5JroUFoBT+c/l7WBR24ktx/C51jhfeO6T3J4bi7RihhJjJGZdL7pH1Buejen+am MwG4wAbQR6LhAjblUg86fVjkA7Xl62Uj1XxA3+N6mJVgutvqPEzR1eSdvgYIdMldGV07 oswktdHNaYFqxMz3tpgvfP7ukIiiTBdlr8iDgfx2arjh08K9O1dtdCmZ2Ze6vmQgX+av Xspz5atoeAa/v+xyHi5u0PadFnJy71ZZDfDXGcs8jcR0XxPND2oVCGEVLdUucL5Z4YC3 GOzQ== X-Gm-Message-State: AOJu0YzkZZIT1jHNaRk/aZaVwla0OatIIMZwtPElimpKJRYk+FuSmvhb CPxLPVb2342W/lyZEWFVB1Gp2Re0+DujjJ8YQx6dIxJFXmOzlOThNBOuN5ep X-Google-Smtp-Source: AGHT+IEChszsEFVPcNWZZRU9zgjYVlhDm7zsE4RWfCUj0wIUywPDdjZ72syayXs2It73RZaSw+m0RA== X-Received: by 2002:a17:902:ec89:b0:1e2:58b7:2dd6 with SMTP id x9-20020a170902ec8900b001e258b72dd6mr4577911plg.21.1712169161459; Wed, 03 Apr 2024 11:32:41 -0700 (PDT) Received: from [192.168.0.15] ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id ja20-20020a170902efd400b001e0b734856csm3136390plb.64.2024.04.03.11.32.40 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 03 Apr 2024 11:32:40 -0700 (PDT) Message-ID: <105e11c1-ae4b-48f6-8f4d-d1d7fd169828@gmail.com> Date: Wed, 3 Apr 2024 15:32:56 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240403154330.71585-1-ffmpeg@haasn.xyz> Content-Language: en-US From: James Almer In-Reply-To: <20240403154330.71585-1-ffmpeg@haasn.xyz> Subject: Re: [FFmpeg-devel] [PATCH 01/10] avcodec: add dolbyvision option 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 4/3/2024 12:43 PM, Niklas Haas wrote: > From: Niklas Haas > > Tri-state yes/no/auto option. Allows users to set `dolbyvision` to `no` > to suppress coding dolby vision even when supported by the target codec. > --- > doc/APIchanges | 3 +++ > doc/codecs.texi | 12 ++++++++++++ > libavcodec/avcodec.h | 11 +++++++++++ > libavcodec/options_table.h | 2 ++ > libavcodec/version.h | 2 +- > 5 files changed, 29 insertions(+), 1 deletion(-) > > diff --git a/doc/APIchanges b/doc/APIchanges > index 7eda1321cb0..a4484ceb670 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2024-03-07 > > API changes, most recent first: > > +2024-03-23 - f17e18d2922 - lavc 61.6.100 - avcodec.h > + Add AVCodecContext.dolbyvision option. > + > 2024-04-xx - xxxxxxxxxx - lavu 59.12.100 - dovi_meta.h > Add AVDOVIMetadata.ext_block_{offset,size}, AVDOVIMetadata.num_ext_blocks, > AVDOVIDmData and AVDOVIDmLevel{1..6,8..11,254..255}, av_dovi_get_ext() > diff --git a/doc/codecs.texi b/doc/codecs.texi > index 6bdeb664e72..7203adc0489 100644 > --- a/doc/codecs.texi > +++ b/doc/codecs.texi > @@ -1018,6 +1018,18 @@ Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set > CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware > decoders will not apply left/top Cropping. > > +@item dolbyvision @var{integer} (@emph{encoding,video}) > +Whether to encode Dolby Vision metadata when transcoding. > +Possible values: > +@table @samp > +@item auto > +Enable when coded frames contain Dolby Vision side data (default) > +@item yes/on > +Enable always, error out when frames do not contain metadata > +@item no/off > +Disable always, strip any tagged metadata > +@end table > + > > @end table > > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h > index 83dc487251c..f54f758608d 100644 > --- a/libavcodec/avcodec.h > +++ b/libavcodec/avcodec.h > @@ -2075,6 +2075,17 @@ typedef struct AVCodecContext { > */ > AVFrameSideData **decoded_side_data; > int nb_decoded_side_data; > + > + /** > + * Video encoding only. Whether to mark the coded stream as Dolby Vision. > + * If set to FF_DOLBYVISION_AUTO, this will be enabled only if > + * decoded_side_data contains a valid RPU. > + * > + * If enabled, sending frames without AV_FRAME_DATA_DOVI_METADATA is > + * considered an error. > + */ > + int dolbyvision; This should be encoder specific options, not a global one. Only three encoders care about it at the end of this set. > +#define FF_DOLBYVISION_AUTO -1 > } AVCodecContext; > > /** > diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h > index 7a2ef3474e7..d92269d2ff7 100644 > --- a/libavcodec/options_table.h > +++ b/libavcodec/options_table.h > @@ -407,6 +407,8 @@ static const AVOption avcodec_options[] = { > {"mastering_display_metadata", .default_val.i64 = AV_PKT_DATA_MASTERING_DISPLAY_METADATA, .type = AV_OPT_TYPE_CONST, .flags = A|D, .unit = "side_data_pkt" }, > {"content_light_level", .default_val.i64 = AV_PKT_DATA_CONTENT_LIGHT_LEVEL, .type = AV_OPT_TYPE_CONST, .flags = A|D, .unit = "side_data_pkt" }, > {"icc_profile", .default_val.i64 = AV_PKT_DATA_ICC_PROFILE, .type = AV_OPT_TYPE_CONST, .flags = A|D, .unit = "side_data_pkt" }, > +{"dolbyvision", "flag stream as Dolby Vision", OFFSET(dolbyvision), AV_OPT_TYPE_INT, {.i64 = FF_DOLBYVISION_AUTO }, -1, 1, V|E, .unit = "dolbyvision" }, You can make it AV_OPT_TYPE_BOOL and still support -1 for auto. It's done in many places. > +{"auto", NULL, 0, AV_OPT_TYPE_CONST, {.i64 = FF_DOLBYVISION_AUTO }, .flags = V|E, .unit = "dolbyvision" }, > {NULL}, > }; > > diff --git a/libavcodec/version.h b/libavcodec/version.h > index 7aa95fc3f1c..da54f878874 100644 > --- a/libavcodec/version.h > +++ b/libavcodec/version.h > @@ -29,7 +29,7 @@ > > #include "version_major.h" > > -#define LIBAVCODEC_VERSION_MINOR 5 > +#define LIBAVCODEC_VERSION_MINOR 6 > #define LIBAVCODEC_VERSION_MICRO 100 > > #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ _______________________________________________ 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".