On 2014-05-03 21:13:21 +0200, Anton Khirnov wrote:
> This function should not modify any global state, so there should be no
> reason for any locking.
> ---
>  libavcodec/utils.c |   18 ------------------
>  1 file changed, 18 deletions(-)
> 
> diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> index f14d1eb..fefa69c 100644
> --- a/libavcodec/utils.c
> +++ b/libavcodec/utils.c
> @@ -1619,19 +1619,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;
> @@ -1655,12 +1642,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;
>  }

as said on irc: ok if you're certain that no codec modifies global state 
during close()

Janne
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to