[FFmpeg-cvslog] avcodec/utils: Remove ff_codec_open2_recursive()

Andreas Rheinhardt git at videolan.org
Fri Dec 4 17:41:05 EET 2020


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Fri Nov 27 01:12:01 2020 +0100| [5766c8e968d17781c9e3c8f8d3676359457fe987] | committer: Andreas Rheinhardt

avcodec/utils: Remove ff_codec_open2_recursive()

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.

Reviewed-by: Anton Khirnov <anton at khirnov.net>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5766c8e968d17781c9e3c8f8d3676359457fe987
---

 libavcodec/internal.h |  7 -------
 libavcodec/utils.c    | 12 ------------
 2 files changed, 19 deletions(-)

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 45295dd3ce..0226e36ee7 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;



More information about the ffmpeg-cvslog mailing list