From patchwork Thu Feb 1 14:00:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Plowman X-Patchwork-Id: 45959 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1a28:b0:199:de12:6fa6 with SMTP id cj40csp285402pzb; Thu, 1 Feb 2024 06:01:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IGLPvRMi7cOS4oKIaKb1dFgF5t+WtxtYJfe9zClJzZucRTdQs4QDcLEEwpVAwgHdfSDqozr X-Received: by 2002:a17:906:22d8:b0:a35:3eb8:2f6e with SMTP id q24-20020a17090622d800b00a353eb82f6emr4737121eja.33.1706796075640; Thu, 01 Feb 2024 06:01:15 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCX0sueWT2ZHBqBMjr0iEdc38n73sciy1lwcKxRJMJ2uYRLl8ueSrYRNH5sUjKFw4l5aPY55laC3Zn3VWlDGWLeKf9x6qUU64RINLBnN2zqxkoNMyGn6I53bxxZ3kFnzxBbNVz9Mic1dXx27OIOTy2z/cylfHEWsNoM0U+EpV3yl0WglaFUJuJOi6UCggZ3aiY/KnbEDRSFzRuxzB7qDHvkvBvTzihL9KP/hqXy+9VAX2FcgEu3IRxr5i0pYPQL0LN88dGDaAcXQTRmMgIg1T64NjtxYLYLX1W+5TE6sSvgn51BLNd31nan48s6GKuxQvN8XezZCVGfKfKW8x7nnQMrLKDhV1xO5du05Auf3lRFr/HXEAdXbcu+Mxtsacw8xdAG+l3Mw7YVF5jHf4Y3axHqnm1Tkyztkz+VR5fQYPoETUYrGg9pih8cYdE1s7XHKQQlPqLoiLcixUBc2ODkTnIFMqgctOs3FpJFIioIrIbu+Y52ytBboNT6r/XQK/znlbNO5jc5cM35nXYqjphRlv6uUBfK3FpNdQ6g4AYGR5GJvOnawUdKvNaPwtqU+K52jrUim8Uews8VwPFDLEO1Cb7cS0TMNrQnh6Q6dyP7OTvBNwkbKx+BgDTvCQR/TC4ZDLpxG636D1U75jBbryuRihpx73zdBZ21cSEpS908GmgDQcGKkk2+cuLzGePMWZBil6CNQ/IxLJTbYgOJEWQhA+FksZEmxfiif3rQMjqoehbZ1okRw3Z+oE2DIU1bzTM8eLX3a6lXbp6lX+ckKDleJJBCRRYFO8vGHveBqXXE1YNCBc4wbpnWE0QDp7DbD9+fueYE1qoojAuXJ1rjMid0vfD+tDKNnfFNfKMgNgzrZJuFvvqbv38bWUYZGSZe3fFCVzzaFl1ohaIegikxG0b07BKd802YXpYElFl8jO0/K4z6c9NPisWTUM7Qtys6aHt0n67lLXi rpjAIhQ1wrTrVJTpiID//FJ5Q8n3oua/gE+BkaSQHsUty6Zuahx1RsJzGTVZbrCXvivriaPW5dov/jHS9IUew0s3Q3nSGzdUrJEWCr9k8LHMHsdaPn/4xLM0qmeI2yRQP7YwWls2dzRL3LT7tUsb7dJdY06eAJWcL5+zRnCwdY7vcS4jQkZDozmk0tssO+kqEiFMX0uYkDiOMXelMD/OoAGgdhYjY+e5XF50fWxV0W3koWnyk/9zsLur/rMWYdELv1QqfqG65KMu+x3eSmGbrmKV3fsgl2JKtGl3xbVy9FuIZWpqwdzaRin6lwgBIViVuYB8T/x1bowBFIVVwW2Sc+3KqpfNWClJbOI0tLrUDcR43EVxkbB7yNY2qSTU69E2tA5dyaooHPowU1Goi/dv3pQP7tBVb6mTZ652EFd5VBCA+XTvJCYonBa+V1ZqgjkR7dE9Up8JMvm+SxmTkJEZLeuLd6oWYTVElDUzAEqtw4zpVtpO8kR7JvHnSQ2tQq1Ag2t0UfZp4WWsBXTLS9/OT9LahTWXFDTIXaWXizSwqS72rNSyBhCkD9cPr72ILz32eRDwF56Y4D8hnvEX6bgK8TX3G8e+Uuqwk3QnZBzDBOWYYKp/UCbyjFleB7fd4ZzttXCGeAUe2iWxI= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c14-20020a170906694e00b00a316821ce38si6749099ejs.199.2024.02.01.06.01.14; Thu, 01 Feb 2024 06:01:15 -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=zmail header.b=NIQDLcGJ; arc=fail (body hash mismatch); 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 202FB68D05A; Thu, 1 Feb 2024 16:01:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from sender21-mail.zoho.eu (sender11-op-o12.zoho.eu [31.186.226.226]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D16C868CEC8 for ; Thu, 1 Feb 2024 16:01:04 +0200 (EET) Delivered-To: post@frankplowman.com ARC-Seal: i=1; a=rsa-sha256; t=1706796061; cv=none; d=zohomail.eu; s=zohoarc; b=gtg6R8YhAdb11Oz929hqBYcJUgvPzibPPWoD7IqbmrPbac3RNT9iBjptuEZn4iY//chBMzWshviDaYXzaStl+8cRKGrtnxWPk5yUJfanU9ub45rFYmW4Rp5YfVm6oJWPTNdQdMh+pK2HehW9nTnKhMib4QSwoMVZbMfbSP/fcTQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu; s=zohoarc; t=1706796061; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=OEslCD7WUr7LTR5HkaLZPiLmLz4qTyIeqhUGOP9vhxs=; b=fR5SC++/+ETWk+rlvP7WMoVcyuHTeNp8s6f0fDcHGEUFUQRgV/IdyVcO3hWgKgq39A5PACqWl4YqTohpbCdPQ+IXEU7r2Nw7Ds9MepF2z0nQmaGwY/9OdlwXYaHhwWL6TaDo3j6uWm4+OMREDXd088JAuu1MWhJOjByHyi8O6wM= ARC-Authentication-Results: i=1; mx.zohomail.eu; dkim=pass header.i=frankplowman.com; spf=pass smtp.mailfrom=post@frankplowman.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1706796061; s=zmail; d=frankplowman.com; i=post@frankplowman.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Transfer-Encoding:Message-Id:Reply-To; bh=OEslCD7WUr7LTR5HkaLZPiLmLz4qTyIeqhUGOP9vhxs=; b=NIQDLcGJl14m5mUAdkGgbKZ+BBnT80Tdf8vOCPYTqbYH9ls4mAlJ9lEWstMA98vT iiWWxyRiGFasHpsFUje514KOWHClO7DBCCSp2AO8r1E+jqvI1mfJ0cIN+cVsVRoGVr8 tHOWEkPc7BOCAgFuMWZBDCsShIp/pVEdEctk75Pc= Received: from localhost.localdomain (frankplowman.com [51.89.148.29]) by mx.zoho.eu with SMTPS id 1706796058446801.9237392070784; Thu, 1 Feb 2024 15:00:58 +0100 (CET) From: post@frankplowman.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Feb 2024 14:00:55 +0000 Message-ID: <20240201140055.63805-1-post@frankplowman.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-ZohoMailClient: External Subject: [FFmpeg-devel] [PATCH] lavc/vvc: Error pps_single_slice_per_subpic_flag 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: wFf94LaZlh8J From: Frank Plowman pps_single_slice_per_subpic_flag is not yet supported. Support is WIP, but in the meantime throw an error when trying to decode a bitstream with it set, avoiding an out-of-bounds array access. Fixes: out-of-bounds array access for conformance bitstreams SUBPIC_C_ERICSSON_1, SUBPIC_D_ERICSSON_1, MNUT_A_Nokia_4 and MNUT_B_Nokia_3. Signed-off-by: Frank Plowman --- libavcodec/vvc/vvc_ps.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/libavcodec/vvc/vvc_ps.c b/libavcodec/vvc/vvc_ps.c index 2cf156b323..bd81d70e71 100644 --- a/libavcodec/vvc/vvc_ps.c +++ b/libavcodec/vvc/vvc_ps.c @@ -381,11 +381,16 @@ static void pps_multi_tiles_slice(VVCPPS *pps, const int tile_idx, const int i, } } -static void pps_rect_slice(VVCPPS* pps) +static int pps_rect_slice(VVCPPS* pps) { const H266RawPPS* r = pps->r; int tile_idx = 0, off = 0; + if (r->pps_single_slice_per_subpic_flag) { + avpriv_report_missing_feature(NULL, "pps_single_slice_per_subpic_flag"); + return AVERROR_PATCHWELCOME; + } + for (int i = 0; i < r->pps_num_slices_in_pic_minus1 + 1; i++) { if (!r->pps_slice_width_in_tiles_minus1[i] && !r->pps_slice_height_in_tiles_minus1[i]) { @@ -396,9 +401,11 @@ static void pps_rect_slice(VVCPPS* pps) } tile_idx = next_tile_idx(tile_idx, i, r); } + + return 0; } -static void pps_no_rect_slice(VVCPPS* pps) +static int pps_no_rect_slice(VVCPPS* pps) { const H266RawPPS* r = pps->r; int ctu_x, ctu_y, off = 0; @@ -409,20 +416,24 @@ static void pps_no_rect_slice(VVCPPS* pps) pps_add_ctus(pps, &off, ctu_x, ctu_y, r->col_width_val[tile_x], r->row_height_val[tile_y]); } } + + return 0; } static int pps_slice_map(VVCPPS *pps) { + int ret; + pps->ctb_addr_in_slice = av_calloc(pps->ctb_count, sizeof(*pps->ctb_addr_in_slice)); if (!pps->ctb_addr_in_slice) return AVERROR(ENOMEM); if (pps->r->pps_rect_slice_flag) - pps_rect_slice(pps); + ret = pps_rect_slice(pps); else - pps_no_rect_slice(pps); + ret = pps_no_rect_slice(pps); - return 0; + return ret; } static void pps_ref_wraparound_offset(VVCPPS *pps, const VVCSPS *sps)