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 27A0348EAF for ; Mon, 29 Jan 2024 19:04:43 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7A81A68D245; Mon, 29 Jan 2024 21:04:42 +0200 (EET) Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ED27568D207 for ; Mon, 29 Jan 2024 21:04:35 +0200 (EET) Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-6dddc5e34e2so2120143b3a.0 for ; Mon, 29 Jan 2024 11:04:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706555074; x=1707159874; darn=ffmpeg.org; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=VYhyFGw6K/tUns+MXnKN3TxkzYtQlYd7OUjJwxHztLE=; b=b78BYlLMu9NhNijAW40kLep8WTV7Ad3MoHeiuFQwHrpeilYsi7nssBCdTgKJ1uYbvY 1G7+OeRAAgCai22oQ8h+asXVuf+TEK3KunNMKJ96yVRIi55ZEqlLXYb88qcFlCvJpnPR 8bI1c5yhk/Ur75bVwxFKMMjdjRBiFHIeGnJE8Lr3Ft3H9cOPeBgo1Zlnv5XR25mcCGit VjbLu1c0fy0Ub2QMZd04Uf4lmYnTpq0/czeBAZfz5bhgDl8JMTFmSfU+TpSZFDhQJpPC Y7y1EG/pnKNG96WgsLPE/CAgxUq3KAuMDmhymx/yC7cDeCUWvDEPDRDb8hKAdFiLFNci xWcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706555074; x=1707159874; h=content-transfer-encoding:in-reply-to:autocrypt:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VYhyFGw6K/tUns+MXnKN3TxkzYtQlYd7OUjJwxHztLE=; b=GdZZqL3ZMMuARuA+vmYnkwTm7xEHRVyz2C3yJTDk9pcTB/qFyZB14gUftAe2nvaP7L 8DhcXDKnnKHO63ib9d65YjTdg1nY1H2Waeu/aXEGDuRzL2z0y0uteRfu6DNrTwDRORdA UEpaR/7JwvDlrorQGW8e7tDVQpzgOrl3YPMKlySFIIbEDnuw5wvD7jjjl997D9YsBE8x Zv2AsM42GwnZNwkfySdMtm6CrbMTVFQUzBkHwYFH4wQkcwxlC9/rQa9ilmYrcQ8OUGWV lKgvJouCvPfjQ/Ja+wS1bFERYsgtuq9FpI8TM/P42IUSdXiZN0epjkbDEOQN3JJpeZ6t APtw== X-Gm-Message-State: AOJu0YwZGM2oElgkO7cgFk4bVnx02i8xaLnuSIPq7u+0Z7JyxGW/ZL48 YCgngwFXJKqQcXSKaOrVNjEBF2HjHR8YnwdTBM1quor8irYPRabXAKNYRyEd X-Google-Smtp-Source: AGHT+IEdGsZXjCc4Y570BFGgwxFSIwNm8Ghne4xGT6+g4hicYRVZmO6s2MF7LxzvL/CMBjmb00TTyw== X-Received: by 2002:a05:6a00:3c84:b0:6db:cae0:a720 with SMTP id lm4-20020a056a003c8400b006dbcae0a720mr7038028pfb.16.1706555073630; Mon, 29 Jan 2024 11:04:33 -0800 (PST) Received: from [192.168.0.18] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id a15-20020a631a0f000000b005c662e103a1sm6501518pga.41.2024.01.29.11.04.32 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 29 Jan 2024 11:04:33 -0800 (PST) Message-ID: Date: Mon, 29 Jan 2024 16:04:54 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240126214651.22783-1-michael@niedermayer.cc> <20240126214651.22783-2-michael@niedermayer.cc> <3c7036cc-6c11-435c-bd98-084d253ac4c3@gmail.com> <20240127235655.GL6420@pb2> <9742e81b-0a57-4bd4-bcb9-b68ce006cc67@gmail.com> <20240128000520.GM6420@pb2> From: James Almer Autocrypt: addr=jamrial@gmail.com; keydata= xsBNBFjZtqABCADLW+vdEoZaJZDsIO6geYFTOcn1unsEHefj9zn+3oTHlDFFzO47mzHsSfbK 9JE2xpOJEVnC8FAF5Sayi/pVwV+mtQUV3n5dgVeVBYF9GUQwOGFCpK8X54RRqhkgknbunOEE 0CtgAJgmpFmmmHgq02GvEspx1h/rh4apqwQR6QX4Favb+x9+i9ytVpwVcBX94vo2toyP7h/K BWfadQmb8ltgE1kshfg+SQs/H5bTV5Z1DuEASf02ZL/1qYB/sdTgWPLv9XMUHHsRFmMY8TMx wJSkP+Af3AiYQPJYz1B1D4tt98T/NoiVdin10zATakPjV8hXaobuRmxgakkUASXudydDABEB AAHNH0phbWVzIEFsbWVyIDxqYW1yaWFsQGdtYWlsLmNvbT7CwJIEEwEIADwCGwMGCwkIBwMC BhUIAgkKCwQWAgMBAh4BAheAFiEEd1EujP2UoWlX5pp6FGMBrXN2WeAFAmJoLUUCGQEACgkQ FGMBrXN2WeAFVQf9GtGhniRs1PzNUOgJktCnv6j4BbLieaIPYPEFXKDHOgjqQE2zVMYXnoXl Jam928ii902a8OY06r9ywn/R8ApD1/3NY/v64O71CY9scz5XyH2au8wIZ6HwFy3/f7sqjdGD uctY8Qs7rjT7NkoC5lmgMu2v2k03dGtM9AAf5AK5gU+H0EUw7vmKKiXzUqt5kvBuf4CEwXvH AQT1SMJ52rIlDWB7FQFyZeUbOAK2IgY/KNedfK6nsgd/eQVnlofPd2XoddE7kP6iys7jJefw DD3g3rZyDTq7in5dyk5glaNpWZpbHGBs+9SCYLnfQ8XvWqPFOD+gj0plamKANgOvavKTxM7A TQRY2bagAQgA69YtILj8kYxmqPr/M8+MXT7wVoOWVW9lvSmPquCELaDy/NIS7D06VC5EuE/6 JlJXZMTn37NLlyWhzwOgXuXw5w2tyoQQBuvqGiXJijuXwXH7HKdzrc6rpYtAqt5w05hzNrFS KrS0izG64VpWrfproy3BsL+8TBm9brLhhNPynVRqVukbbGzlATTzNQGZ14TTi2/dL6DkMQnM qn4jX9UEe4GdGQBP50bUJSSmeiIkyNLWA+znuN2PZEz930ZwNrF9GtDVw7mzcmpCZ7spldE2 tutbpy9D1bIqxyqBrYDSezyzL2adR1qgHyOTMCHg2AYNkrIQHrSyJxKTpZ1/hqOp8wARAQAB wsBfBBgBAgAJBQJY2bagAhsMAAoJEBRjAa1zdlnghekH/0Yb0iYJ74oID2f/Fj+AJKS2ekQF P2xOr8lpGzgp/+yWUvPtqbX0A33anBJdYwxaAC0NataX3tfZ+oJkzXqfmqhIHMPYHdZesJA2 Bk9hU/33mDl5s5U66/z0uelWzwKVHoQ2O6or4+qF3HJFSJLCe9uvWJ3zXf9F342Ftj73sfx+ 3xkw/IXsN1RqbYqDlzpoEQ99SIEfY/8Jjwnd3sIPfqkuyeaYfe6GJDqKawdCEP1oRRlbXEAp TJgYz8r3nPhGv9cdHNDCk44ISbsqVuxIEnLqi4fTPZaGupiQhT+srl268TTAp2TQW7+6Ce/b NPQorMquzS/LZoyALpmsYi/miMc= In-Reply-To: <20240128000520.GM6420@pb2> Subject: Re: [FFmpeg-devel] [PATCH 2/3] avcodec/cbs_h266_syntax_template: sanity check num_multi_layer_olss 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 1/27/2024 9:05 PM, Michael Niedermayer wrote: > On Sat, Jan 27, 2024 at 09:02:30PM -0300, James Almer wrote: >> On 1/27/2024 8:56 PM, Michael Niedermayer wrote: >>> On Sat, Jan 27, 2024 at 09:25:16AM -0300, James Almer wrote: >>>> On 1/26/2024 6:46 PM, Michael Niedermayer wrote: >>>>> It is not possible to encode a index into an empty list. Thus >>>>> this must be invalid at this point or before. >>>>> Its likely a broader earlier check can be used here, someone knowing >>>>> VVC should look at that. Its not immedeatly obvious from the spec >>>>> by looking for numlayerolss >>>> >>>> Can you check if the following fixes it? >>>> >>>>> diff --git a/libavcodec/cbs_h266_syntax_template.c b/libavcodec/cbs_h266_syntax_template.c >>>>> index 549d021211..40572dadb5 100644 >>>>> --- a/libavcodec/cbs_h266_syntax_template.c >>>>> +++ b/libavcodec/cbs_h266_syntax_template.c >>>>> @@ -793,6 +793,7 @@ static int FUNC(vps) (CodedBitstreamContext *ctx, RWContext *rw, >>>>> { >>>>> //calc NumMultiLayerOlss >>>>> int m; >>>>> + int num_layers_in_ols = 0; >>>>> uint8_t dependency_flag[VVC_MAX_LAYERS][VVC_MAX_LAYERS]; >>>>> uint16_t num_output_layers_in_ols[VVC_MAX_TOTAL_NUM_OLSS]; >>>>> uint8_t num_sub_layers_in_layer_in_ols[VVC_MAX_TOTAL_NUM_OLSS][VVC_MAX_TOTAL_NUM_OLSS]; >>>>> @@ -895,7 +896,6 @@ static int FUNC(vps) (CodedBitstreamContext *ctx, RWContext *rw, >>>>> return AVERROR_INVALIDDATA; >>>>> } >>>>> for (i = 1; i < total_num_olss; i++) { >>>>> - int num_layers_in_ols = 0; >>>>> if (current->vps_each_layer_is_an_ols_flag) { >>>>> num_layers_in_ols = 1; >>>>> } else if (current->vps_ols_mode_idc == 0 || >>>> >>>> num_layers_in_ols is not meant to be reset on every loop. >>> >>> replacing my patch by yours does not change >>> num_multi_layer_olss from being 0 >>> and if its 0 then "num_multi_layer_olss - 1" causes problems as a limit >>> >>> more precissely this: >>> i can also send you the file if you want? >> >> No, this should be looked at by someone more familiar with VVC. > > ive already sent the fuzzer samples to nuomi and frank plowman > > >> And my patch should be applied either way. The current code is wrong. > > I did not suggest not to do that :) Well, turns out the current code is fine and my suggested change above is wrong. Fun how that goes. Can you test the following instead? > diff --git a/libavcodec/cbs_h266_syntax_template.c b/libavcodec/cbs_h266_syntax_template.c > index 549d021211..30b4ae3bc0 100644 > --- a/libavcodec/cbs_h266_syntax_template.c > +++ b/libavcodec/cbs_h266_syntax_template.c > @@ -764,7 +764,7 @@ static int FUNC(vps) (CodedBitstreamContext *ctx, RWContext *rw, > infer(vps_each_layer_is_an_ols_flag, 0); > if (!current->vps_each_layer_is_an_ols_flag) { > if (!current->vps_all_independent_layers_flag) > - ub(2, vps_ols_mode_idc); > + u(2, vps_ols_mode_idc, 0, 2); > else > infer(vps_ols_mode_idc, 2); > if (current->vps_ols_mode_idc == 2) { > @@ -902,11 +902,10 @@ static int FUNC(vps) (CodedBitstreamContext *ctx, RWContext *rw, > current->vps_ols_mode_idc == 1) { > num_layers_in_ols = i + 1; > } else if (current->vps_ols_mode_idc == 2) { > - for (k = 0, j = 0; k <= current->vps_max_layers_minus1; k++) { > + for (k = 0, j = 0; k <= current->vps_max_layers_minus1; k++) > if (layer_included_in_ols_flag[i][k]) > j++; > - num_layers_in_ols = j; > - } > + num_layers_in_ols = j; > } > if (num_layers_in_ols > 1) { > num_multi_layer_olss++; _______________________________________________ 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".