Files
FFmpeg/libavcodec
Frank Plowman d5dbcc00d8 lavc/vvc: Ensure subpictures don't overlap
This is essentially a re-implementation of
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20241005223955.54158-1-post@frankplowman.com/

That patch was not applied last time.  Instead we opted to identify
issues which could be caused by invalid subpicture layouts and remedy
those issues where they manifest, either through error detection or code
hardening.  This was primarily implemented in the set
https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=13381.

This has worked to some degree, however issues with subpicture layouts
continue to crop up from the fuzzer and I've fixed a number of bugs
related to subpicture layouts since then.  I think it's best to return
to the initial plan and simply check if the subpicture layout is valid
initially.

This implementation is also lighter than the first time -- by doing a
bit more logic in pps_subpic_less_than_one_tile_slice, we are able to
store a tile_in_subpic map rather than a ctu_in_subpic map.  This
reduces the size of the map to the point it becomes possible to allocate
it on the stack.  Similar to 8bd66a8c95,
the layout is also validated in the slice map construction code, rather
than in the CBS, which avoids duplicating some logic.

Signed-off-by: Frank Plowman <post@frankplowman.com>
2025-02-23 21:39:42 +08:00
..
2025-01-25 09:37:45 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-06-08 00:22:40 +02:00
2024-06-08 00:22:40 +02:00
2024-12-22 16:08:33 +11:00
2024-03-31 00:08:43 +01:00
2024-08-14 18:21:01 +02:00
2024-03-31 00:08:43 +01:00
2025-02-04 00:14:14 +01:00
2025-02-04 00:14:14 +01:00
2024-04-06 09:26:30 +02:00
2024-03-25 08:54:18 +01:00
2024-04-10 13:22:18 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-15 12:51:15 +01:00
2024-03-15 12:51:15 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2025-01-01 21:33:45 +01:00
2025-02-09 20:27:49 -06:00
2025-02-09 20:27:49 -06:00
2024-03-31 00:08:43 +01:00
2024-07-12 22:42:18 +02:00
2024-03-31 00:08:43 +01:00
2024-09-06 13:59:28 +02:00
2024-04-04 23:58:57 +02:00
2024-04-04 23:58:57 +02:00
2024-03-31 00:08:43 +01:00
2024-07-12 22:42:20 +02:00
2024-03-31 00:08:43 +01:00
2024-05-13 03:40:19 +02:00
2025-02-06 13:48:47 -03:00
2024-03-31 00:08:43 +01:00
2024-05-13 03:40:17 +02:00
2024-06-13 20:36:09 -03:00
2024-03-31 00:08:43 +01:00
2024-09-28 18:35:35 +02:00
2024-09-28 18:35:35 +02:00
2024-03-31 00:08:43 +01:00
2025-01-01 20:31:08 +01:00
2024-03-31 00:08:43 +01:00
2024-07-23 23:21:17 +02:00
2024-11-01 12:13:07 +08:00
2024-03-15 12:51:15 +01:00
2024-07-12 22:42:28 +02:00
2024-03-31 00:08:43 +01:00
2024-09-24 15:37:19 +02:00
2024-03-31 00:08:43 +01:00
2024-05-31 13:36:02 -03:00
2025-02-06 13:48:47 -03:00
2024-06-14 21:28:10 +03:00
2024-07-12 22:42:40 +02:00
2024-07-12 22:42:42 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-11-09 02:46:17 +01:00
2025-02-06 13:48:47 -03:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-15 12:51:15 +01:00
2024-06-08 00:22:35 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-06-20 18:58:39 +02:00
2024-05-03 18:00:53 +03:00
2024-05-03 18:00:53 +03:00
2024-11-03 10:53:15 +11:00
2024-11-03 10:53:15 +11:00
2024-11-03 10:53:15 +11:00
2024-11-03 10:53:15 +11:00
2024-03-31 00:08:43 +01:00
2024-06-03 14:13:34 +02:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-03-31 00:08:43 +01:00
2024-10-12 11:21:14 -03:00
2024-10-12 11:21:14 -03:00
2024-10-12 11:21:14 -03:00
2024-10-12 11:21:14 -03:00
2024-10-12 11:21:14 -03:00
2024-10-12 11:21:14 -03:00
2024-11-01 12:13:07 +08:00
2024-11-01 12:13:07 +08:00
2024-03-31 00:08:43 +01:00
2024-09-24 15:37:19 +02:00
2024-06-12 12:07:49 +02:00
2024-06-20 18:58:38 +02:00
2025-02-09 20:27:49 -06:00
2024-03-31 00:08:43 +01:00
2024-10-31 17:49:48 +11:00
2024-10-31 17:49:48 +11:00
2024-04-29 20:46:05 +03:00
2024-04-29 20:46:05 +03:00
2024-04-19 13:18:04 +02:00
2024-10-31 17:49:48 +11:00
2024-10-31 17:49:48 +11:00
2024-03-31 00:08:43 +01:00
2024-09-24 15:37:20 +02:00
2024-03-31 00:08:43 +01:00