From 27df34bf1f7a113086ba5c68d2a58b7c430c301f Mon Sep 17 00:00:00 2001 From: James Almer Date: Sat, 19 May 2018 15:01:56 -0300 Subject: [PATCH] avcodec/libvpxenc: fix setting amount of threads used for encoding The libvpx doxy says that a value of 0 for the g_threads field is equivalent to a value of 1, whereas for avctx->thread_count it means the maximum amount of threads possible for the host system. Use av_cpu_count() to get the correct thread count when auto threads is requested. Reviewed-by: James Zern Signed-off-by: James Almer --- libavcodec/libvpxenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index d0bd1e997a..09f7a88452 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -493,7 +493,7 @@ static av_cold int vpx_init(AVCodecContext *avctx, enccfg.g_h = avctx->height; enccfg.g_timebase.num = avctx->time_base.num; enccfg.g_timebase.den = avctx->time_base.den; - enccfg.g_threads = avctx->thread_count; + enccfg.g_threads = avctx->thread_count ? avctx->thread_count : av_cpu_count(); enccfg.g_lag_in_frames= ctx->lag_in_frames; if (avctx->flags & AV_CODEC_FLAG_PASS1)