diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c index c5c6a27f89..d944912afb 100644 --- a/libavcodec/pthread.c +++ b/libavcodec/pthread.c @@ -87,7 +87,7 @@ void avcodec_thread_free(AVCodecContext *avctx) pthread_mutex_lock(&c->current_job_lock); c->done = 1; - pthread_cond_signal(&c->current_job_cond); + pthread_cond_broadcast(&c->current_job_cond); pthread_mutex_unlock(&c->current_job_lock); for (i=0; ithread_count; i++) @@ -97,7 +97,7 @@ void avcodec_thread_free(AVCodecContext *avctx) pthread_cond_destroy(&c->current_job_cond); pthread_cond_destroy(&c->last_job_cond); av_free(c->workers); - av_freep(c); + av_free(c); } int avcodec_thread_execute(AVCodecContext *avctx, action_t* func, void **arg, int *ret, int job_count)