From patchwork Wed Apr 3 15:43:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Niklas Haas X-Patchwork-Id: 47755 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp485316pzb; Wed, 3 Apr 2024 08:44:11 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU0xPRXFyOTgZ3q1gSfiSnG1aboOX51jzhFdp2yQQVbtF657m3jiN1lbCMjfKXS+8yP2PZFRFvQIee7oerdG+zOUERO7fhztexpuA== X-Google-Smtp-Source: AGHT+IGAwUb3W6dg/85+CVVcfmQQJm1ot/mDRNKUdpjeBEW6fmhn3ETrTB3unm86QSP93o6oo0u1 X-Received: by 2002:ac2:465e:0:b0:515:d100:1650 with SMTP id s30-20020ac2465e000000b00515d1001650mr10468539lfo.57.1712159051083; Wed, 03 Apr 2024 08:44:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712159051; cv=none; d=google.com; s=arc-20160816; b=IAxev7EiA6C3YQ9qf3pexORylQltgDxts5NSw/g6yeFI5DPz2recctw/mgyTZzi4Sz nvaFlJ59Bp/y1CX2lB8y7pmc6SdCBhBD8A+CV0URke8W02y0oGKyhWBxH8i2wN9RbPa5 A8MY3MVSag7L2fUBJ0KI1i6Qo9ZwR3LPeMGUkGfkT7KD/6ebEcmtSiojHpXZuSxGypHM XN0yvhY3NRJ+eP54iqgRR+EJ5bOQ06gNHhG6GD/ZjxS7f62ZkJBsaH7D5k/zt8PVke2K c91WGSCJdQXUGlyFCpD+otTcE0XuwKqJIXTc/kdxfs++iE21U4ZKY0ir2AUwwOUfbwnd ITHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc: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:dkim-signature:delivered-to; bh=EwmR47Yzu2TWBAIufKGL6iVR4ED040XE9w6ABZsoUL8=; fh=xmAeKtysnShNOmkhiJmYkS30uw4Fu2hvBJ7qlIwukxQ=; b=FVfUtNoK5OiSLoy/TfVbKWRHvE3hQIjW/VnpXochPWM7U/bCKOninIGCevP2Al6OaY NRQbXwHok9DMotMroK4HMl8+heNbJATjJfupaLN1IZQ3/192CTYs1cDo2yQZCjoIvO9F UCUjpHD0N4MUiz7KuvMrFRLqWqzYRGic+AONMYpAS54BHP/UXD3AmaQiZjVRGQEAa9yo KIcrvOygEnkNS005OZ3bx8FmMMsIo20ftz+399MtGHRgsGO2uMan3/V9U7QuII/K90ja jrcBnaTOAoRnoks2/kBHmP17n/l5W6BNSVOnudstgA0P3HUdTd7OqJq259hRsCOl6jcF LJMA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=Vqi20H6D; 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 z20-20020a17090655d400b00a44ea0ed34esi6757496ejp.911.2024.04.03.08.44.10; Wed, 03 Apr 2024 08:44:11 -0700 (PDT) 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; dkim=neutral (body hash did not verify) header.i=@haasn.xyz header.s=mail header.b=Vqi20H6D; 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 85BE668D1B0; Wed, 3 Apr 2024 18:43:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from haasn.dev (haasn.dev [78.46.187.166]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F272E68CE36 for ; Wed, 3 Apr 2024 18:43:34 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=haasn.xyz; s=mail; t=1712159014; bh=7d78h44qfomf2wASovFHqpGHzlu1LfrAEiKMdkrspj0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vqi20H6DXmtGYsKFGUTk3AbtISIxOXmxEF4SleNj3bS2V8vFF2R0gNL4s2+cU628X +K6ErJiRYcpmx9/L5rRfzz762T/1NjmMEz9gL7Hote3MVuM7m3PfVB7ObXrWqKgmKN pcTKuFZBoiiRM9KTxE8HCVOrAKLFR2ou5hOCq9U8= Received: from haasn.dev (unknown [10.30.0.2]) by haasn.dev (Postfix) with ESMTP id A82EE42835; Wed, 3 Apr 2024 17:43:34 +0200 (CEST) From: Niklas Haas To: ffmpeg-devel@ffmpeg.org Date: Wed, 3 Apr 2024 17:43:24 +0200 Message-ID: <20240403154330.71585-4-ffmpeg@haasn.xyz> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240403154330.71585-1-ffmpeg@haasn.xyz> References: <20240403154330.71585-1-ffmpeg@haasn.xyz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 04/10] avcodec/dovi_rpu: clarify error on missing RPU VDR 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 Cc: Niklas Haas Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: OtYz0GxMrLb1 From: Niklas Haas The code was written under the misguided assumption that these fields would only be present when the value changes, however this does not match the actual patent specification, which says that streams are required to either always signal this metadata, or never signal it. That said, the specification does not really clarify what the defaults of these fields should be in the event that this metadata is missing, so without any sample file or other reference I don't wish to hazard a guess at how to interpret these fields. Fix the current behavior by making sure we always throw this error, even for files that have the vdr sequence info in one frame but are missing it in the next frame. --- libavcodec/dovi_rpu.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/dovi_rpu.c b/libavcodec/dovi_rpu.c index bfb7b9fe661..267e52ceb66 100644 --- a/libavcodec/dovi_rpu.c +++ b/libavcodec/dovi_rpu.c @@ -499,11 +499,11 @@ int ff_dovi_rpu_parse(DOVIContext *s, const uint8_t *rpu, size_t rpu_size, hdr->el_spatial_resampling_filter_flag = get_bits1(gb); hdr->disable_residual_flag = get_bits1(gb); } - } - - if (!hdr->bl_bit_depth) { - av_log(s->logctx, AV_LOG_ERROR, "Missing RPU VDR sequence info?\n"); - goto fail; + } else { + /* lack of documentation/samples */ + avpriv_request_sample(s->logctx, "Missing RPU VDR sequence info\n"); + ff_dovi_ctx_unref(s); + return AVERROR_PATCHWELCOME; } vdr_dm_metadata_present = get_bits1(gb);