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 A91F248B53 for ; Mon, 4 Mar 2024 12:50:41 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 14CF568D426; Mon, 4 Mar 2024 14:50:39 +0200 (EET) Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6A87E68CC0A for ; Mon, 4 Mar 2024 14:50:32 +0200 (EET) Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-1dd0d46ecc3so6736845ad.2 for ; Mon, 04 Mar 2024 04:50:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709556630; x=1710161430; 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=2qax+FDtITjtzqVHctSX7AGOGB70MiygdxALpoD9RIw=; b=HnH1cVrXLdCLb7gEg9NG97/F1F3ePlZJWvCQq2eP7PQC1kx67zLdi0l/Vcw+jJq13y r8RwDE9IOnzO8NOjUFAlGShg8R+ckYt+gNT5RR5/8w7jYlGy2QdbgfbTTnVP18VkL8Jy 8u0p9t2PW0V6ic5tfOm3UTXwdBK8pYe7FOlvCy3dbYae3lYkwK5wg+20oTa47VyM5PCY dW4rO2f+0N5ZsnP55ekY3zYG2Kwb47J75Ud5KDS2ZzIlKwrsGNWuv9sdOnHku8E1tvCu Mv18RP4ExBBrrzFb/1/AfZGb1rx9bUae4PUDkwkUgzrKM6XnNTBQdSl0AfzZtE5HuriL E2Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709556630; x=1710161430; 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=2qax+FDtITjtzqVHctSX7AGOGB70MiygdxALpoD9RIw=; b=JkOReZdIOHL9Fj1JIY4kPSuekvDoyOuI5naMoZjefwvHIAFLUe7YW9O5KW3GKywqcJ uIxnNTq84IMv/d3rDFES647XdFq2eZO1lVFMqaSlpOLbl74N3Lgh2eqnufbgHoCpDVKC nofiQ/DM0Gai+z3p7V0WIk90MoZxgIpjUhPUiWlc/B84xFduSpRU0pNUSQqdsDGgr9dv /EMJKeIT3D2+xA/kmfmGMjnR4z4JJqYVbr5LvfjBHhXeceLp8zD55+hvDgiBjfDCd3Iw dj+2UYMhm7R6Qj1JO4p+6CpEw0mFo+BulYxUueMWfY/aLLmmoBgvS3Yln70CGIE4xZDN EdDQ== X-Gm-Message-State: AOJu0YzbKxI3ECtM+TYjSw4DnN4kwDxttW6IyAEruIKdeb/GdXLdxC/M mDJT4kJt3zCltXwL8Jwu994N4gURBa0dyrdqkrswQsN5dlQ7/r1rtZc8ERPv X-Google-Smtp-Source: AGHT+IEKoP5y3T/LACZBHPKtbdqUEEv6qzg0NXJ4FOIQr2sNmGX9Tu3w6U9RpGjG0zpfl7hGOp9U2Q== X-Received: by 2002:a17:903:11c6:b0:1dd:22ec:7b22 with SMTP id q6-20020a17090311c600b001dd22ec7b22mr532190plh.33.1709556629549; Mon, 04 Mar 2024 04:50:29 -0800 (PST) Received: from [192.168.0.14] ([190.194.169.124]) by smtp.gmail.com with ESMTPSA id q3-20020a170902a3c300b001dbcb39dd7dsm8521383plb.125.2024.03.04.04.50.28 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 04 Mar 2024 04:50:29 -0800 (PST) Message-ID: Date: Mon, 4 Mar 2024 09:50:39 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240225114451.27645-1-ffmpeg@haasn.xyz> <20240225114451.27645-2-ffmpeg@haasn.xyz> Content-Language: en-US From: James Almer In-Reply-To: <20240225114451.27645-2-ffmpeg@haasn.xyz> Subject: Re: [FFmpeg-devel] [PATCH 2/3] avcodec/libdav1d: parse DV profile 10 T.35 OBU 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 2/25/2024 8:44 AM, Niklas Haas wrote: > From: Niklas Haas > > This is thankfully passed through verbatim by libdav1d, so we can parse > it in our own code. > > In theory, taking the DV profile from the packet-level configuration > struct is redundant since there is currently only one possible DV level > for AV1 (and all others would fail parsing), but this marginally > future-proofs it against possible new AV1-specific profiles being added > in the future. > --- > libavcodec/libdav1d.c | 25 +++++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c > index 78a5c63bf42..9bac4a9eb27 100644 > --- a/libavcodec/libdav1d.c > +++ b/libavcodec/libdav1d.c > @@ -35,6 +35,7 @@ > #include "bytestream.h" > #include "codec_internal.h" > #include "decode.h" > +#include "dovi_rpu.h" > #include "internal.h" > > #define FF_DAV1D_VERSION_AT_LEAST(x,y) \ > @@ -44,6 +45,7 @@ typedef struct Libdav1dContext { > AVClass *class; > Dav1dContext *c; > AVBufferPool *pool; > + DOVIContext dovi; > int pool_size; > > Dav1dData data; > @@ -213,6 +215,7 @@ static av_cold int libdav1d_init(AVCodecContext *c) > #else > int threads = (c->thread_count ? c->thread_count : av_cpu_count()) * 3 / 2; > #endif > + const AVPacketSideData *sd; > int res; > > av_log(c, AV_LOG_VERBOSE, "libdav1d %s\n", dav1d_version()); > @@ -285,6 +288,11 @@ static av_cold int libdav1d_init(AVCodecContext *c) > c->delay = res > 1 ? res : 0; > #endif > > + dav1d->dovi.logctx = c; > + dav1d->dovi.dv_profile = 10; // default for AV1 > + sd = ff_get_coded_side_data(c, AV_PKT_DATA_DOVI_CONF); > + if (sd && sd->size > 0) > + ff_dovi_update_cfg(&dav1d->dovi, (AVDOVIDecoderConfigurationRecord *) sd->data); > return 0; > } > > @@ -593,6 +601,22 @@ FF_ENABLE_DEPRECATION_WARNINGS > goto fail; > break; > } > + case 0x3B: { // dolby_provider_code > + int provider_oriented_code = bytestream2_get_be32(&gb); > + if (itut_t35->country_code != 0xB5 || provider_oriented_code != 0x800) > + break; > + > + res = ff_dovi_rpu_parse(&dav1d->dovi, gb.buffer, gb.buffer_end - gb.buffer); > + if (res < 0) { > + av_log(c, AV_LOG_WARNING, "Error parsing DOVI OBU.\n"); > + break; // ignore > + } > + > + res = ff_dovi_attach_side_data(&dav1d->dovi, frame); > + if (res < 0) > + goto fail; > + break; > + } > default: // ignore unsupported provider codes > break; > } > @@ -652,6 +676,7 @@ static av_cold int libdav1d_close(AVCodecContext *c) > Libdav1dContext *dav1d = c->priv_data; > > av_buffer_pool_uninit(&dav1d->pool); > + ff_dovi_ctx_unref(&dav1d->dovi); > dav1d_data_unref(&dav1d->data); > dav1d_close(&dav1d->c); > This and patch 3/3 lgtm. _______________________________________________ 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".