On 23/11/2024 09:32, Nuo Mi wrote:
> According to section 6.3.3, 'Spatial or component-wise partitionings,'
> Subpictures must cover the entire picture.
> Therefore, the total number of subpicture slices should equal the number of 
> picture slices
> 
> Co-authored-by: Frank Plowman <p...@frankplowman.com>
> ---
>  libavcodec/cbs_h266_syntax_template.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/cbs_h266_syntax_template.c 
> b/libavcodec/cbs_h266_syntax_template.c
> index 6b2d6534ef..8abd3d1ba7 100644
> --- a/libavcodec/cbs_h266_syntax_template.c
> +++ b/libavcodec/cbs_h266_syntax_template.c
> @@ -1966,7 +1966,7 @@ static int FUNC(pps) (CodedBitstreamContext *ctx, 
> RWContext *rw,
>              infer(pps_single_slice_per_subpic_flag, 1);
>          if (current->pps_rect_slice_flag &&
>              !current->pps_single_slice_per_subpic_flag) {
> -            int j;
> +            int j, num_slices = 0;
>              uint16_t tile_idx = 0, tile_x, tile_y, ctu_x, ctu_y;
>              uint16_t slice_top_left_ctu_x[VVC_MAX_SLICES];
>              uint16_t slice_top_left_ctu_y[VVC_MAX_SLICES];
> @@ -2155,7 +2155,10 @@ static int FUNC(pps) (CodedBitstreamContext *ctx, 
> RWContext *rw,
>                          current->num_slices_in_subpic[i]++;
>                      }
>                  }
> +                num_slices += current->num_slices_in_subpic[i];
>              }
> +            if (current->pps_num_slices_in_pic_minus1 + 1 != num_slices)
> +                return AVERROR_INVALIDDATA;
>          } else {
>              if (current->pps_no_pic_partition_flag)
>                  infer(pps_num_slices_in_pic_minus1, 0);

This set LGTM!

Cheers,
Frank

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to