On 29/04/2026 08:17, Mou Fan via ffmpeg-devel wrote:
> In the picture header parser, the chroma branch incorrectly tested
> sps_max_mtt_hierarchy_depth_intra_slice_chroma to decide whether to
> parse ph_log2_diff_max_{bt,tt}_min_qt_intra_slice_chroma.
>
> Per ITU-T H.266 (V4, 01/2026) section 7.3.2.8 "Picture header
> structure syntax", the condition is on the just-parsed
> ph_max_mtt_hierarchy_depth_intra_slice_chroma, exactly mirroring the
> luma branch a few lines above and the inter-slice branch below.
> sps_partition_constraints_override_enabled_flag allows the picture
> header to override the SPS values, so testing the SPS field is
> incorrect and desynchronises the parser whenever the PH override
> changes the chroma MTT depth from/to zero.
>
> Signed-off-by: Mou Fan <[email protected]>
> ---
> libavcodec/cbs_h266_syntax_template.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/cbs_h266_syntax_template.c
> b/libavcodec/cbs_h266_syntax_template.c
> index 98a8954943..fc79ba46c7 100644
> --- a/libavcodec/cbs_h266_syntax_template.c
> +++ b/libavcodec/cbs_h266_syntax_template.c
> @@ -2819,7 +2819,7 @@ static int FUNC(picture_header) (CodedBitstreamContext
> *ctx, RWContext *rw,
> 0, FFMIN(6, ctb_log2_size_y) - min_cb_log2_size_y);
> ue(ph_max_mtt_hierarchy_depth_intra_slice_chroma,
> 0, 2 * (ctb_log2_size_y - min_cb_log2_size_y));
> - if (sps->sps_max_mtt_hierarchy_depth_intra_slice_chroma !=
> 0) {
> + if (current->ph_max_mtt_hierarchy_depth_intra_slice_chroma
> != 0) {
> unsigned int min_qt_log2_size_intra_c =
>
> current->ph_log2_diff_min_qt_min_cb_intra_slice_chroma +
> min_cb_log2_size_y;LGTM. When you say it "desynchronises the parser", what downstream issues were you observing: mismatches or crashes? Do we need to backport this? -- Frank
OpenPGP_0x03A84C6A098F2C6B.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature
_______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
