|
|
@ -908,8 +908,7 @@ static int thread_get_buffer_internal(AVCodecContext *avctx, ThreadFrame *f, int |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
pthread_mutex_lock(&p->parent->buffer_mutex); |
|
|
|
pthread_mutex_lock(&p->parent->buffer_mutex); |
|
|
|
if (avctx->thread_safe_callbacks || |
|
|
|
if (THREAD_SAFE_CALLBACKS(avctx)) { |
|
|
|
avctx->get_buffer2 == avcodec_default_get_buffer2) { |
|
|
|
|
|
|
|
err = ff_get_buffer(avctx, f->f, flags); |
|
|
|
err = ff_get_buffer(avctx, f->f, flags); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
pthread_mutex_lock(&p->progress_mutex); |
|
|
|
pthread_mutex_lock(&p->progress_mutex); |
|
|
@ -976,8 +975,7 @@ void ff_thread_release_buffer(AVCodecContext *avctx, ThreadFrame *f) |
|
|
|
FrameThreadContext *fctx; |
|
|
|
FrameThreadContext *fctx; |
|
|
|
AVFrame *dst, *tmp; |
|
|
|
AVFrame *dst, *tmp; |
|
|
|
int can_direct_free = !(avctx->active_thread_type & FF_THREAD_FRAME) || |
|
|
|
int can_direct_free = !(avctx->active_thread_type & FF_THREAD_FRAME) || |
|
|
|
avctx->thread_safe_callbacks || |
|
|
|
THREAD_SAFE_CALLBACKS(avctx); |
|
|
|
avctx->get_buffer2 == avcodec_default_get_buffer2; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!f->f || !f->f->buf[0]) |
|
|
|
if (!f->f || !f->f->buf[0]) |
|
|
|
return; |
|
|
|
return; |
|
|
|