aboutsummaryrefslogtreecommitdiffstats
path: root/libswscale
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2022-09-15 14:53:36 +0200
committerAnton Khirnov <anton@khirnov.net>2022-09-19 15:18:20 +0200
commitd7f4ad88a0df3c1339e142957bf2c40cd056b8ce (patch)
treeb65b71bd7e939bc0898019467232c9ad5f156e68 /libswscale
parent4ba68639cabfc56ffe62d4e776a8af040e551ff3 (diff)
downloadffmpeg-d7f4ad88a0df3c1339e142957bf2c40cd056b8ce.tar.gz
lavc/videotoolbox: do not pass AVCodecContext to decoder output callback
The opaque parameter for the callback is set in videotoolbox_start(), called when the hwaccel is initialized. When frame threading is used, avctx will be the context corresponding to the frame thread currently doing the decoding. Using this same codec context in all subsequent invocations of the decoder callback (even those triggered by a different frame thread) is unsafe, and broken after cc867f2c09d2b69cee8a0eccd62aff002cbbfe11, since each frame thread now cleans up its hwaccel state after decoding each frame. Fix this by passing hwaccel_priv_data as the opaque parameter, which exists in a single instance forwarded between all frame threads. The only other use of AVCodecContext in the decoder output callback is as a logging context. For this purpose, store a logging context in hwaccel_priv_data.
Diffstat (limited to 'libswscale')
0 files changed, 0 insertions, 0 deletions