From patchwork Thu Oct 3 17:54:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 52006 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:b18c:0:b0:48e:c0f8:d0de with SMTP id q12csp533723vqn; Thu, 3 Oct 2024 10:55:00 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVE4VtEJg22H6YQpngFlYyhWLmhrqUn2kmnjFOtrlhWRXNa7S3xmKn3TfGHW/cVe82/1dPhdCiB3TbWk04OF0/Q@gmail.com X-Google-Smtp-Source: AGHT+IGKuA6MKnkVl115f7DqlOQCkEuKwApbUHOVdE6N8Dwp2NV+PKQfuncVmKNQyFTmOhrM0JVv X-Received: by 2002:a05:6402:3884:b0:5bf:50:266b with SMTP id 4fb4d7f45d1cf-5c8d2e637e7mr13894a12.19.1727978100485; Thu, 03 Oct 2024 10:55:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727978100; cv=none; d=google.com; s=arc-20240605; b=ChmF4jTwu5d83ia/RnjaCHZPkXwyiUbvk8cYKr6QLbeEbY6nm59dfG3+SBd9eac2XB Jsrf4qnO/LjWqyj6qmVhbbI+W0p5b9KxD7/hQwN5BiDpOFvW0X5xYiRRnBnKpK/EfwcA FGJSA8lvu33ZrK/bxXaEv4LTAPywZTVUM923HRU5M+jpmpO70gFln7NzsmUYliW+1TKg nCDXn6YQ3vLVGlkM+PpXHSjL1WpDxFPbkouAXpQ/fWVilgGrXFqPVk9MGq9TztX7QNHs OPqlzbHO0j7HFcb8G66rsGHFQ32PvgXY12p8888eywmxwpJtKAsb0qXikhyykoiDs1Zs x9JQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=K6pVLgqLUowvNQ63ICd2O1OcMIlotcnGptzVZL7TdoQ=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=Fn4KV834pAD+WISDVDaGw7YGPNSJ/5F18oV7iCmWJQK2GkO/kdmDEK6uoMo31n+0y1 Xehqxuyhglkx21zm+E5hqh/PmsA3b6fNf0dUCmXQOkIDnr5NB5n8BG7xjEjV43R0wwVl sAyMyZkALNwmTDwxPfjJmn2P+7jthHzujAP/r8LKFusqZNuN/klDDfE4GSqzaKyYqj3O PvbKMxYLjql5w2tQszGfMg4NecP6OlynKJyBVsYyJIlVsjBU2fuUeTxgtabOKQyMDl1i opVX3z5CAjMY/pfXdlo8BRcvfgy+kJkMPDPPdEeB0WtifQxi8FpH/3Q1E60ODEjMXuvd 3fQw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=jRnAR14l; 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=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 4fb4d7f45d1cf-5c8ca3c0d97si1130162a12.104.2024.10.03.10.54.58; Thu, 03 Oct 2024 10:55:00 -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=@gmail.com header.s=20230601 header.b=jRnAR14l; 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=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2586F68DA5D; Thu, 3 Oct 2024 20:54:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D4FDB68D657 for ; Thu, 3 Oct 2024 20:54:48 +0300 (EEST) Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-20b90ab6c19so14201535ad.0 for ; Thu, 03 Oct 2024 10:54:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727978086; x=1728582886; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=0rYZjQ2tPlVW1nvMYshz2Dx3B77/etRkoKUfjQk22vs=; b=jRnAR14lYHKh/9LizaaEmNIF8MWM3/G1Um2RgxPVhtB29dLMGTYOceGtzjfx4iz9oD tFOusCEsFoWK/9xSAYz2wT/us6leM9nf4Q8V+HX77u20LUUwkdvXN59l5KLy+FsUtbBH 9mtx8vTgZQe+kMw8Mf/NDfNxxPixAFNHtLTjZTaz7yvEWEOYkEt94RhaDnLBpskktqCV mX5RVWrbYuQ4kylzXLTnGNJ8a41TYdp7BR+WOR2MRpil2bxVru9KzqihTfCg+UiQ1fnP SnkAefBm9pRKdlbXuVlPwrahRSmmS+XtDotDHhd+2br3Lz1A4Akmq+EnEtKlnCIsTXAq nQgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727978086; x=1728582886; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=0rYZjQ2tPlVW1nvMYshz2Dx3B77/etRkoKUfjQk22vs=; b=mHKQvEe0GAiQxVtcS0qBzHnM0bWdEyfO2YN6L4ry+cM11enz/YqF2vS1vtePI8cCHL xNv2HU7q7cVTziu8DAywEOdWyVtkOdeKf6e+i9sNiz25iy3dr7KVKWolgyDEfvjFP9gF Av1n8OJyP52ZJ95c87gwLyIbZh5DDzc+R26ZvhOj4UBefPb2PffmlN1ENpYgh5EH0huM eshwthEETg9i/5SzOELhbbrLb89AmLwsoGRQsA8IBtsgxZSiHxaXdlyUQVvtpKDERhNd cRg0XQ6awAAjNf92vS3D701UmOo1SgbGwPISYPkJZhZmVBhTtNuxhF3hMAa3tvZVTlwj I8DA== X-Gm-Message-State: AOJu0Yxn8o8b4PI8HmQJPTyzMmLupDwxS9gOjFHm1yQ6WCOxpDNIHxuC HmUPBUqcZ6cOXDhxn6YK2MlcN/PAJ/xAiJ+I1fvN4lUQ6V9l8t1MI03CEQ== X-Received: by 2002:a17:902:d2d1:b0:20b:6457:31e3 with SMTP id d9443c01a7336-20bfde65b7bmr443585ad.3.1727978086365; Thu, 03 Oct 2024 10:54:46 -0700 (PDT) Received: from localhost.localdomain ([181.92.233.116]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-20beef8ded5sm11600595ad.174.2024.10.03.10.54.44 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Oct 2024 10:54:45 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Oct 2024 14:54:27 -0300 Message-ID: <20241003175428.1300-1-jamrial@gmail.com> X-Mailer: git-send-email 2.46.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/hevc/ps: print the correct unsupported scalability value found 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 0mmFd040VRn0 With multilayer001.heic, which signals Spatial scalability: Before: [hevc @ ...] Scalability type 1 not supported [hevc @ ...] Ignoring unsupported VPS extension After: [hevc @ ...] Scalability type 2 not supported [hevc @ ...] Ignoring unsupported VPS extension Signed-off-by: James Almer --- libavcodec/hevc/ps.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/hevc/ps.c b/libavcodec/hevc/ps.c index f18b88489b..3fc14c1e72 100644 --- a/libavcodec/hevc/ps.c +++ b/libavcodec/hevc/ps.c @@ -470,7 +470,7 @@ static int decode_vps_ext(GetBitContext *gb, AVCodecContext *avctx, HEVCVPS *vps PTL ptl_dummy; uint8_t max_sub_layers[HEVC_MAX_LAYERS]; - int splitting_flag, dimension_id_len, view_id_len, num_add_olss, + int splitting_flag, dimension_id_len, view_id_len, num_add_olss, num_scalability_types, default_output_layer_idc, direct_dep_type_len, direct_dep_type, sub_layers_max_present, sub_layer_flag_info_present_flag, nb_ptl; unsigned non_vui_extension_length; @@ -532,13 +532,17 @@ static int decode_vps_ext(GetBitContext *gb, AVCodecContext *avctx, HEVCVPS *vps return AVERROR_INVALIDDATA; splitting_flag = get_bits1(gb); + num_scalability_types = 0; for (int i = 0; i <= HEVC_SCALABILITY_MASK_MAX; i++) { int scalability_mask_flag = get_bits1(gb); - if (scalability_mask_flag != (i == HEVC_SCALABILITY_MULTIVIEW)) { + if (scalability_mask_flag && (i != HEVC_SCALABILITY_MULTIVIEW)) { av_log(avctx, AV_LOG_ERROR, "Scalability type %d not supported\n", i); return AVERROR_PATCHWELCOME; } + num_scalability_types += scalability_mask_flag; } + if (num_scalability_types != 1) + return AVERROR_INVALIDDATA; if (!splitting_flag) dimension_id_len = get_bits(gb, 3) + 1; From patchwork Thu Oct 3 17:54:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 52007 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:b18c:0:b0:48e:c0f8:d0de with SMTP id q12csp533803vqn; Thu, 3 Oct 2024 10:55:10 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCU1YWlG8AiEIQOt2oB7D3DwGsuUPweEkwVk4zIXLRV5wyX8yixnR+N7wCIoLt7DI9CznUqiXzXQFVbW/lUqVEzc@gmail.com X-Google-Smtp-Source: AGHT+IFzMte76ShBPrtZ6TsP1ol3jQtjaXXlvMIc13c9ejmGpFm2sCC0r2cDFg8bqUTB+avuPaD/ X-Received: by 2002:a2e:b889:0:b0:2fa:d2eb:c3d0 with SMTP id 38308e7fff4ca-2fae1029823mr49029531fa.23.1727978109914; Thu, 03 Oct 2024 10:55:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727978109; cv=none; d=google.com; s=arc-20240605; b=dFSgK4Y4cCBI4ujAbQhV0corjNmKkRPrdhuQFf60KGxQCU/c8hsxPxJBaxYRl0I5Yr JrJcWKu8Nb7HaMgRK8nFo9cvlHhBIKZsEec0NE+/W/KUPOM9eYndK5n6BIG+zhRreGf0 GTsA56Hab9O83c3YzyxiknW7dtx2Q6mGmOw/Jh59U9Nini9e6Q10p+CJUp01sVuaDERl GI2rwMhFuf9b5BiTIPWRdNuN9C3nXEsOz55KHysPFCtUfF3nin0giMFKNZ+YB8hJmAaN Yo/vcr6QgfWPJ6Uuic+ehzdjiYL9bGfMUm7s3Lsyr0Cw5V4T4rf/WsRKtwWZnfegkvBE Fepg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding: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=Tl18/y18F+vswoHLgEJAlYHIrWoAeZCBPRPXwyD6eBY=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=AVuELgzOP81RCK9gBeCr2oqzNZ/V32rj1zPZ39EmaBmpq2YGC0kQGTW3Jm3ehYntaX SR89xnQCXA2Umn0TygER+ERI8HEkbbhWmJrdHLEh0LnU0TTEAflQ+aIqM/FdXU/yHWTj 6Pnhru6A45HCgUS42ck8RjsZzZsqrt6UiJ5kWpkO7qWzMNKXwkpvpLXZFkL85Qm6Dta2 6CczVEgyO2K6S3nJBnpU0IpnDSXOkYDJxB01L6iyRSjuDU4E2MsHrFSwtln6NYKorNtf JViZHbxij2PxFaQHOHSA8PVz7WukahJGE2hUabuCbnbeQ50+o3TgZ522K+YCYZA1ct+0 2D2g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=chpx4nNs; 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=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 38308e7fff4ca-2faecc47fb2si6267451fa.324.2024.10.03.10.55.08; Thu, 03 Oct 2024 10:55:09 -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=@gmail.com header.s=20230601 header.b=chpx4nNs; 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=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4AD5868CD3E; Thu, 3 Oct 2024 20:54:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 24A6A68DA4C for ; Thu, 3 Oct 2024 20:54:50 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-20b5fb2e89dso9732145ad.1 for ; Thu, 03 Oct 2024 10:54:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727978088; x=1728582888; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=XtDV9lP/+7f4BmUArYX8f2Jn8UuFiKLyPumJzonjztA=; b=chpx4nNsEJx4eQI8smmHZuFco+oUyzZZF4RQT01QxPmO0sRJ4muN0SsaCxT5DUPSA+ dJNXYHigfQSrfu1DqpfKEwsU+dmXIQz5XRB/nw0FW5Fta0wKQatoZzpYM0UvZs6zPvi7 HCvnvVT5TowBtaheKYtWCpnn4tIAMaofiHt+5VOZ9LkXaymz2kwkEQUvvOzcb35PPAZe IQ3YraAXdiO/AREHa/46YuPcv48xyqrtS4aLZPi58oF2iSBrCfjyuSdcrs+mfTXh2DDj 3WHLj6Bgk669xjsnUKl9Ord70rrrYV0t5SWT0ZNC2RFgC8QY7FOccPZMXLhbbYzeJOuK fU+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727978088; x=1728582888; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XtDV9lP/+7f4BmUArYX8f2Jn8UuFiKLyPumJzonjztA=; b=emhsBCdQDcVfmPuiFGoksPaILT/QpB6DqNRYr1MtXDEecCmPwqNknRn9FCGkOyuuRW QMQFYoKY5z1qXf7jW4Pzh8hGmTG3fFJ58TjHx1rgQDr2WaPjWxvWA5SNT68N3I8Xgc+f J863/KAMPN5idZc3bk9mIZmKmfQ3e6n8v8i12IbH5xpbEGcHET/AawAaQPydYmYGnqxQ 8Pf3xMbkDPIdbi9CcTpdJ/r4oFqaJN2LfjE7SaR1qrsriWtvtuKq24+ZPfRZOuWlaK4I yq4dYPZ6YTlj/yPLMGNodOVNWsI/UlL+YA8qOszUzi/aeQxRtSuG9RipOXZXtcrVeKVn oWiw== X-Gm-Message-State: AOJu0YyMhI6Vxtqnrxii6/OH5o8RFANN/yqkYmDGT2eTV12T+30UffNK OkqnDuiG5wcttXiO+Hfr2cdIh/DVj9r/B5s82vfQFp6ky/wAfoF6BBPdaQ== X-Received: by 2002:a17:902:f792:b0:20b:ab74:f569 with SMTP id d9443c01a7336-20bc5a99bc7mr87648045ad.60.1727978087822; Thu, 03 Oct 2024 10:54:47 -0700 (PDT) Received: from localhost.localdomain ([181.92.233.116]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-20beef8ded5sm11600595ad.174.2024.10.03.10.54.46 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Oct 2024 10:54:47 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Oct 2024 14:54:28 -0300 Message-ID: <20241003175428.1300-2-jamrial@gmail.com> X-Mailer: git-send-email 2.46.2 In-Reply-To: <20241003175428.1300-1-jamrial@gmail.com> References: <20241003175428.1300-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/hevc/ps: print a more accurate message when parsing an SPS for an unsupported layer 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 3acmvv96I9xS With multilayer001.heic: Before: [hevc @ ...] Scalability type 2 not supported [hevc @ ...] Ignoring unsupported VPS extension [hevc @ ...] The following bit-depths are currently specified: 8, 9, 10 and 12 bits, chroma_format_idc is 0, depth is 0 After: [hevc @ ...] Scalability type 2 not supported [hevc @ ...] Ignoring unsupported VPS extension [hevc @ ...] SPS 1 references an unsupported VPS extension. Ignoring Signed-off-by: James Almer --- libavcodec/hevc/ps.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/hevc/ps.c b/libavcodec/hevc/ps.c index 3fc14c1e72..993c60144f 100644 --- a/libavcodec/hevc/ps.c +++ b/libavcodec/hevc/ps.c @@ -1207,6 +1207,12 @@ int ff_hevc_parse_sps(HEVCSPS *sps, GetBitContext *gb, unsigned int *sps_id, if (multi_layer_ext) { const RepFormat *rf = &sps->vps->rep_format; + if (sps->vps->nb_layers == 1) { + av_log(avctx, AV_LOG_WARNING, "SPS %d references an unsupported VPS extension. Ignoring\n", + *sps_id); + return AVERROR_INVALIDDATA; + } + if (get_bits1(gb) && // update_rep_format_flag get_bits(gb, 8)) { // sps_rep_format_idx av_log(avctx, AV_LOG_ERROR, "sps_rep_format_idx!=0\n");