aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/dirac.h
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-11 13:45:31 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-03-26 03:04:28 +0100
commite9b66175793e5c2af19beefe8e143f6e4901b5df (patch)
treefe1924cb16c3319eec1bce8d1d09096adbdb7be2 /libavcodec/dirac.h
parent24ee1514021e2a2419b1ae9a779e6a18a4add064 (diff)
downloadffmpeg-e9b66175793e5c2af19beefe8e143f6e4901b5df.tar.gz
avcodec/pthread_frame: Fix cleanup during init
In case an error happened when setting up the child threads, ff_frame_thread_init() would up until now call ff_frame_thread_free() to clean up all threads set up so far, including the current, not properly initialized one. But a half-allocated context needs special handling which ff_frame_thread_frame_free() doesn't provide. Notably, if allocating the AVCodecInternal, the codec's private data or setting the options fails, the codec's close function will be called (if there is one); it will also be called if the codec's init function fails, regardless of whether the FF_CODEC_CAP_INIT_CLEANUP is set. This is not supported by all codecs; in ticket #9099 it led to a crash. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/dirac.h')
0 files changed, 0 insertions, 0 deletions