[FFmpeg-devel] [PATCH 07/18] avcodec/hevc_mvs: Pass HEVCLocalContext when slice-threading

Anton Khirnov anton at khirnov.net
Fri Jul 1 14:14:34 EEST 2022


Quoting Andreas Rheinhardt (2022-07-01 00:29:38)
> The HEVC decoder has both HEVCContext and HEVCLocalContext
> structures. The latter is supposed to be the structure
> containing the per-slicethread state.
> 
> Yet that is not how it is handled in practice: Each HEVCLocalContext
> has a unique HEVCContext allocated for it and each of these
> coincides except in exactly one field: The corresponding
> HEVCLocalContext. This makes it possible to pass the HEVCContext
> everywhere where logically a HEVCLocalContext should be used.
> 
> This commit stops doing this for lavc/hevc_mvs.c; it also constifies
> everything that is possible in order to ensure that no slice thread
> accidentally modifies the main HEVCContext state.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
>  libavcodec/hevc_mvs.c | 56 +++++++++++++++++++++----------------------
>  libavcodec/hevcdec.c  | 27 +++++++++++----------
>  libavcodec/hevcdec.h  |  6 ++---
>  3 files changed, 45 insertions(+), 44 deletions(-)

Looks very reasonable

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list