diff mbox series

[FFmpeg-devel,45/45] avcodec/utils: Remove ff_codec_open2_recursive()

Message ID 20201127010249.2724610-45-andreas.rheinhardt@gmail.com
State Accepted
Commit 5766c8e968d17781c9e3c8f8d3676359457fe987
Headers show
Series [FFmpeg-devel,01/45] avcodec/a64multienc: Fix memleak upon init failure | expand

Checks

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

Commit Message

Andreas Rheinhardt Nov. 27, 2020, 1:02 a.m. UTC
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(-)

Comments

Anton Khirnov Dec. 4, 2020, 12:12 p.m. UTC | #1
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 mbox series

Patch

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;