[FFmpeg-cvslog] lavc/vvc: Fix slice map construction for small subpics
Frank Plowman
git at videolan.org
Sun Feb 23 15:43:26 EET 2025
ffmpeg | branch: master | Frank Plowman <post at frankplowman.com> | Sat Feb 22 15:51:54 2025 +0800| [93aae172ea909ec96b67077b8b3005886a83d0ae] | committer: Nuo Mi
lavc/vvc: Fix slice map construction for small subpics
In the case pps_subpic_less_than_one_tile_slice is called, the
subpicture is smaller than the tile and so there are multiple
subpictures in the tile. Of course, then, not all the
subpictures can start in the top-left corner as the code before the
patch does. Patch fixes this, so each subpicture starts at the
signalled location as is specified in section 6.5.1 of H.266(V3).
Signed-off-by: Frank Plowman <post at frankplowman.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=93aae172ea909ec96b67077b8b3005886a83d0ae
---
libavcodec/vvc/ps.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/vvc/ps.c b/libavcodec/vvc/ps.c
index 5ae423a737..d8794277d2 100644
--- a/libavcodec/vvc/ps.c
+++ b/libavcodec/vvc/ps.c
@@ -453,8 +453,8 @@ static void subpic_tiles(int *tile_x, int *tile_y, int *tile_x_end, int *tile_y_
static void pps_subpic_less_than_one_tile_slice(VVCPPS *pps, const VVCSPS *sps, const int i, const int tx, const int ty, int *off)
{
pps->num_ctus_in_slice[i] = pps_add_ctus(pps, off,
- pps->col_bd[tx], pps->row_bd[ty],
- pps->r->col_width_val[tx], sps->r->sps_subpic_height_minus1[i] + 1);
+ sps->r->sps_subpic_ctu_top_left_x[i], sps->r->sps_subpic_ctu_top_left_y[i],
+ sps->r->sps_subpic_width_minus1[i] + 1, sps->r->sps_subpic_height_minus1[i] + 1);
}
static void pps_subpic_one_or_more_tiles_slice(VVCPPS *pps, const int tile_x, const int tile_y, const int x_end, const int y_end, const int i, int *off)
More information about the ffmpeg-cvslog
mailing list