[SCM] libav/experimental: lavc: remove the locking code in avcodec_close()

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Aug 10 16:03:10 UTC 2014


The following commit has been merged in the experimental branch:
commit e1b66778b6ee82a192b5895e23c4e135f7269326
Author: Anton Khirnov <anton at khirnov.net>
Date:   Sat Apr 5 07:09:44 2014 +0200

    lavc: remove the locking code in avcodec_close()
    
    This function should not modify any global state, so there should be no
    reason for any locking.

diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index d5c3070..71cbc57 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1684,19 +1684,6 @@ void avsubtitle_free(AVSubtitle *sub)
 
 av_cold int avcodec_close(AVCodecContext *avctx)
 {
-    /* If there is a user-supplied mutex locking routine, call it. */
-    if (lockmgr_cb) {
-        if ((*lockmgr_cb)(&codec_mutex, AV_LOCK_OBTAIN))
-            return -1;
-    }
-
-    entangled_thread_counter++;
-    if (entangled_thread_counter != 1) {
-        av_log(avctx, AV_LOG_ERROR, "insufficient thread locking around avcodec_open/close()\n");
-        entangled_thread_counter--;
-        return -1;
-    }
-
     if (avcodec_is_open(avctx)) {
         FramePool *pool = avctx->internal->pool;
         int i;
@@ -1725,12 +1712,7 @@ av_cold int avcodec_close(AVCodecContext *avctx)
         av_freep(&avctx->extradata);
     avctx->codec = NULL;
     avctx->active_thread_type = 0;
-    entangled_thread_counter--;
 
-    /* Release any user-supplied mutex. */
-    if (lockmgr_cb) {
-        (*lockmgr_cb)(&codec_mutex, AV_LOCK_RELEASE);
-    }
     return 0;
 }
 

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list