From patchwork Sun Dec 3 18:13:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frank Plowman X-Patchwork-Id: 44889 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a301:b0:181:818d:5e7f with SMTP id x1csp2348690pzk; Sun, 3 Dec 2023 10:13:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IEDT/rLITdHazNyPHPZaTt58Q1x7Bd3jH4iQAOqgeWUKw8g7Zq4spkdGqG+3wvXuJ5VIE3t X-Received: by 2002:a05:6512:2117:b0:50b:e713:5743 with SMTP id q23-20020a056512211700b0050be7135743mr527543lfr.11.1701627200495; Sun, 03 Dec 2023 10:13:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701627200; cv=none; d=google.com; s=arc-20160816; b=f0IrXTj7/Qd8OE4jI60xKXWYnPMcDjSEwubFfPZPk/mTAyh2rIvzlAmXKNwtOS0vQy /26u8UBht55bl2IqK6QAiheTpTt/So3DhfH7tjWMad2glH5FKmAzqGzdJnWhn7Nhl/1H /eEbAu6rdMjWTx2u9rVeINQ+/175bToxrgI/U/4OeBUKQOYGnjCTivGoNuTBCmRmEEVK d/1OH+ATHacypgFTOrYBjPj8xSI+cxIKEO7dJzRIoaX7O1n5dxdzl5wrvcd7mYth2jzB JeA5mEY8xUKPIQ60ycWZixtd65+N0izt6d2Dj5OG0fE7XBjCMZM/I+kKFEr+Hk64k6TX lR3A== 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:to:mime-version:message-id:date:from :dkim-signature:delivered-to; bh=dwfLjBlLlRf15IvBlCCbjI3kseLMUiLBfSgULZSJH6M=; fh=GABYHefZpsCOOVRn8a1IgmYuOvaCu1oFlwEOjvaxWTE=; b=RRLNw8jeSj6N94UpsToORgQrzaUzIBcCzYEV3kACXF+P9D7fXhb5qbNbCZ6S2rDnzx WK9FzD5jqJFElc/Z/nbtUWTxSJ81nsK9vlqvJ1YeoAgdTKGzL5A9ERPZECm+UZbyzeie +etTWQGedb3hEk9CHuc9FhjxZwg2JTcPD/lrmfkSWyhqOHZENbMT6R0L7jRII44+CGgv yySTR4vvMg9lHMFGC6/J3Q97BikbE3GJQe8K2YMRCbQXi0ZOv7q33dolBWtU6NVYMwg4 v9NpXg598a7oEhFY4H/byeZ+Gm727CUz6tTFQAC5n6EPBm1KWRbevYxD3Cm7ukwn1zLd LHNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@frankplowman.com header.s=s1 header.b=Clfs+Moe; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=frankplowman.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p19-20020a50cd93000000b0054cc95dad5csi328909edi.359.2023.12.03.10.13.20; Sun, 03 Dec 2023 10:13:20 -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; dkim=neutral (body hash did not verify) header.i=@frankplowman.com header.s=s1 header.b=Clfs+Moe; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=frankplowman.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C320C68AC2D; Sun, 3 Dec 2023 20:13:16 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from s.wrqvtbkv.outbound-mail.sendgrid.net (s.wrqvtbkv.outbound-mail.sendgrid.net [149.72.123.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0992168AC2D for ; Sun, 3 Dec 2023 20:13:08 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=frankplowman.com; h=from:subject:mime-version:to:cc:content-type: content-transfer-encoding:cc:content-type:from:subject:to; s=s1; bh=dtNQ+NUyMNmFvYot63DkTpIwcF5gdstj+uTmDYZLHbE=; b=Clfs+MoeVEnrcoU5BZsJdoxrogjkIvlopCuEUM5ao1HqZiFh8TupOBDOeWskIbrMoj9W 9AebuUPxSIcWRKEn4u3OSwaueEefFb7k8jLq7yBSgmIS/e3elrmbZXI3kbr6k9Akdcq5sz j3rLj03jpLDtiRqRITE55NjF9D+AiFHoOcdHT6bTrTWjb5wvjLY9FInE3qeIVrmD8qRVTO 3T7UiLL4Q+N8s4cykc7o5+xAgz+kEIX4GaXNAuCHWfXOISoQid6RlJRO40DlaPdo+mgL3q jKL2Bi1+jWT/25FLTPITIsazdaWTffFTF1tuvhgiBpwf7UoOxbVI7hUs4Iy24HhA== Received: by filterdrecv-6bb8954444-zvcwj with SMTP id filterdrecv-6bb8954444-zvcwj-1-656CC532-22 2023-12-03 18:13:06.704381314 +0000 UTC m=+4059192.212857404 Received: from localhost.localdomain (unknown) by geopod-ismtpd-3 (SG) with ESMTP id rhv5VmGaS_-OCk6pQfSmfg Sun, 03 Dec 2023 18:13:06.170 +0000 (UTC) From: post@frankplowman.com Date: Sun, 03 Dec 2023 18:13:06 +0000 (UTC) Message-ID: <20231203181259.63298-1-post@frankplowman.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-SG-EID: c4f4aE1Y0RBySa/irqQxUJWZDkoLQ0t/fkUe34xOGiE+8p9kfzUmxLitf38/PxZYXtUOX/UYdUH7kSkEZ4cFdZHIZ9rnTBGoRhfdE6nY93qLLKYSGDad+tdf4yQBaTLbBmP7KTmDEhR/es35YcU8V/eVRpLSKAi7bL4uC5QNJH9TGcr+K0nu9Uqzye4OjuptV4lwqKch2D2DTwO5deEte49Igw1hD2/3YQbbhsEzfoE= To: ffmpeg-devel@ffmpeg.org X-Entity-ID: LpPALsXh5JN/Quf2dstifQ== Subject: [FFmpeg-devel] [PATCH] libavformat/vvc: Make probe more conservative 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: Frank Plowman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: BZwLP1EMD/y2 From: Frank Plowman Reduce false positives for VVC files by adding additional checks in `vvc_probe`. Specifically, `nuh_temporal_id_plus1` is tested for valid values in extra cases depending on the NAL unit type, as per ITU-T H.266 section 7.4.2.2. Resolves tracĀ #10703. Signed-off-by: Frank Plowman --- libavformat/vvcdec.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavformat/vvcdec.c b/libavformat/vvcdec.c index 31c5ae1f14..57d2769465 100644 --- a/libavformat/vvcdec.c +++ b/libavformat/vvcdec.c @@ -35,11 +35,17 @@ static int vvc_probe(const AVProbeData *p) if ((code & 0xffffff00) == 0x100) { uint8_t nal2 = p->buf[i + 1]; int type = (nal2 & 0xF8) >> 3; + const uint8_t nuh_temporal_id_plus1 = nal2 & 0x7; if (code & 0x80) // forbidden_zero_bit return 0; - if ((nal2 & 0x7) == 0) // nuh_temporal_id_plus1 + if (nuh_temporal_id_plus1 == 0) // nuh_temporal_id_plus1 + return 0; + if (nuh_temporal_id_plus1 != 1 && (type >= VVC_IDR_W_RADL && type <= VVC_RSV_IRAP_11 + || type == VVC_DCI_NUT || type == VVC_OPI_NUT + || type == VVC_VPS_NUT || type == VVC_SPS_NUT + || type == VVC_EOS_NUT || type == VVC_EOB_NUT)) return 0; switch (type) {