diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2021-02-11 13:45:31 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2021-03-26 03:04:28 +0100 |
commit | e9b66175793e5c2af19beefe8e143f6e4901b5df (patch) | |
tree | fe1924cb16c3319eec1bce8d1d09096adbdb7be2 /libavfilter/vidstabutils.c | |
parent | 24ee1514021e2a2419b1ae9a779e6a18a4add064 (diff) | |
download | ffmpeg-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 'libavfilter/vidstabutils.c')
0 files changed, 0 insertions, 0 deletions