ffmpeg/libavcodec/vvc
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
..
cabac.c lavc/vvc: Use a bitfield to store MIP information 2024-12-07 17:37:45 +08:00
cabac.h
ctu.c lavc/vvc: Fix race condition for MVs cropped to subpic 2025-01-05 20:25:29 +08:00
ctu.h avcodec/vvdec: refact, ff_vvc_deblock_bs use CodingUnit/TransformUnit instead of fc->tabs 2024-10-16 20:28:09 +08:00
data.c
data.h
dec.c lavc/vvcdec: refact, set AVCodecContext->has_b_frames in sps_export_stream_params 2025-02-22 11:29:58 +08:00
dec.h lavc/vvcdec: remove unneeded VVCContext->pix_fmt 2025-01-29 18:22:41 +08:00
dsp.c lavc/vvc: Use a bitfield to store MIP information 2024-12-07 17:37:45 +08:00
dsp.h lavc/vvc_mc: R-V V avg w_avg 2024-09-24 20:04:51 +03:00
dsp_template.c avcodec/vvc/dsp: prefix TxType and TxSize with VVC 2024-08-15 20:52:14 +08:00
filter.c avcodec/vvdec: refact, ff_vvc_deblock_bs use CodingUnit/TransformUnit instead of fc->tabs 2024-10-16 20:28:09 +08:00
filter.h avcodec/vvcdec: refact out deblock boundary strength stage 2024-10-16 20:28:09 +08:00
filter_template.c
inter.c
inter.h
inter_template.c avcodec/vvc: Don't use large array on stack 2024-10-01 11:30:22 +08:00
intra.c avcodec/vvc/dsp: prefix TxType and TxSize with VVC 2024-08-15 20:52:14 +08:00
intra.h
intra_template.c lavc/vvc: Use a bitfield to store MIP information 2024-12-07 17:37:45 +08:00
intra_utils.c lavc/vvc: Remove floating point logic 2024-11-11 19:31:00 +08:00
itx_1d.c
itx_1d.h
Makefile
mvs.c lavc/vvc: Don't check motion estimation region for IBC 2024-12-03 10:20:51 +08:00
mvs.h
ps.c lavc/vvc: Ensure subpictures don't overlap 2025-02-23 21:39:42 +08:00
ps.h lavc/vvc_ps: Add alf raw syntax into VVCALF 2024-11-01 12:13:07 +08:00
refs.c avcodec/vvc/refs: Check content_ref in set_pict_type() 2025-02-15 11:25:12 +08:00
refs.h avcodec/vvc: Add support for output_corrupt/showall flags 2025-01-19 13:30:13 +08:00
thread.c avcodec/vvc/dec: print thread debug logs only if DEBUG is defined 2025-01-10 10:23:57 -03:00
thread.h avcodec: make a local copy of executor 2024-10-04 21:58:42 +08:00