avcodec/dnxhdenc: call slice thread code only if slice threading is enabled

This commit is contained in:
Paul B Mahol 2017-08-17 11:42:16 +02:00
parent 92da23093c
commit 28e9ba951d

View File

@ -526,9 +526,11 @@ FF_DISABLE_DEPRECATION_WARNINGS
FF_ENABLE_DEPRECATION_WARNINGS
#endif
if (avctx->thread_count > MAX_THREADS) {
av_log(avctx, AV_LOG_ERROR, "too many threads\n");
return AVERROR(EINVAL);
if (avctx->active_thread_type == FF_THREAD_SLICE) {
if (avctx->thread_count > MAX_THREADS) {
av_log(avctx, AV_LOG_ERROR, "too many threads\n");
return AVERROR(EINVAL);
}
}
if (avctx->qmax <= 1) {
@ -537,9 +539,11 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
ctx->thread[0] = ctx;
for (i = 1; i < avctx->thread_count; i++) {
ctx->thread[i] = av_malloc(sizeof(DNXHDEncContext));
memcpy(ctx->thread[i], ctx, sizeof(DNXHDEncContext));
if (avctx->active_thread_type == FF_THREAD_SLICE) {
for (i = 1; i < avctx->thread_count; i++) {
ctx->thread[i] = av_malloc(sizeof(DNXHDEncContext));
memcpy(ctx->thread[i], ctx, sizeof(DNXHDEncContext));
}
}
return 0;