Context | Check | Description |
---|---|---|
andriy/PPC64_make | success | Make finished |
andriy/PPC64_make_fate | success | Make fate finished |
andriy/x86_make | success | Make finished |
andriy/x86_make_fate | success | Make fate finished |
Quoting Andreas Rheinhardt (2020-11-27 02:02:49) > This function existed to enable codecs with non-threadsafe init functions > to initialize other codecs despite the fact that normally no two codecs > with non-threadsafe init functions can be initialized at the same time > (there is a mutex guarding this). Yet there are no users of this > function any more as all users have been made thread-safe (switching > away from ff_codec_open2_recursive() was required for this as said > function requires the caller to hold the lock to the mutex guarding the > initializations and this is only true for codecs with the > FF_CODEC_CAP_INIT_THREADSAFE flag unset); so remove it. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> > --- > libavcodec/internal.h | 7 ------- > libavcodec/utils.c | 12 ------------ > 2 files changed, 19 deletions(-) Awesome!
diff --git a/libavcodec/internal.h b/libavcodec/internal.h index 17defb9b50..141f3fb88e 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -306,13 +306,6 @@ int ff_thread_can_start_frame(AVCodecContext *avctx); int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx); -/** - * Call avcodec_open2 recursively by decrementing counter, unlocking mutex, - * calling the function and then restoring again. Assumes the mutex is - * already locked - */ -int ff_codec_open2_recursive(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); - const uint8_t *avpriv_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state); diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 9b074e2dda..b720d0b6cd 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -535,18 +535,6 @@ static void ff_unlock_avcodec(const AVCodec *codec) ff_mutex_unlock(&codec_mutex); } -int attribute_align_arg ff_codec_open2_recursive(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) -{ - int ret = 0; - - ff_unlock_avcodec(codec); - - ret = avcodec_open2(avctx, codec, options); - - ff_lock_avcodec(avctx, codec); - return ret; -} - int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) { int ret = 0;
This function existed to enable codecs with non-threadsafe init functions to initialize other codecs despite the fact that normally no two codecs with non-threadsafe init functions can be initialized at the same time (there is a mutex guarding this). Yet there are no users of this function any more as all users have been made thread-safe (switching away from ff_codec_open2_recursive() was required for this as said function requires the caller to hold the lock to the mutex guarding the initializations and this is only true for codecs with the FF_CODEC_CAP_INIT_THREADSAFE flag unset); so remove it. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> --- libavcodec/internal.h | 7 ------- libavcodec/utils.c | 12 ------------ 2 files changed, 19 deletions(-)