forked from jengelh/ffmpeg-4
Jan Engelhardt
1f222c5287
- Add 0001-avcodec-libaom-fix-setting-amount-of-threads.patch OBS-URL: https://build.opensuse.org/request/show/635601 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-4?expand=0&rev=25
52 lines
2.0 KiB
Diff
52 lines
2.0 KiB
Diff
From 309c3a0e81be553626711912e90015c26f4b09ba Mon Sep 17 00:00:00 2001
|
|
From: James Almer <jamrial@gmail.com>
|
|
Date: Thu, 13 Sep 2018 13:26:00 -0300
|
|
Subject: [PATCH] avcodec/libaom: fix setting amount of threads
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The libaom doxy says that a value of 0 for the threads fields 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: Jan Ekström <jeebjp@gmail.com>
|
|
Signed-off-by: James Almer <jamrial@gmail.com>
|
|
---
|
|
libavcodec/libaomdec.c | 2 +-
|
|
libavcodec/libaomenc.c | 2 +-
|
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/libavcodec/libaomdec.c b/libavcodec/libaomdec.c
|
|
index 6a2de6d47a..2530c9f76b 100644
|
|
--- a/libavcodec/libaomdec.c
|
|
+++ b/libavcodec/libaomdec.c
|
|
@@ -43,7 +43,7 @@ static av_cold int aom_init(AVCodecContext *avctx,
|
|
AV1DecodeContext *ctx = avctx->priv_data;
|
|
struct aom_codec_dec_cfg deccfg = {
|
|
/* token partitions+1 would be a decent choice */
|
|
- .threads = FFMIN(avctx->thread_count, 16)
|
|
+ .threads = FFMIN(avctx->thread_count ? avctx->thread_count : av_cpu_count(), 16)
|
|
};
|
|
|
|
av_log(avctx, AV_LOG_INFO, "%s\n", aom_codec_version_str());
|
|
diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c
|
|
index bbf4cf8b64..6a79d9b873 100644
|
|
--- a/libavcodec/libaomenc.c
|
|
+++ b/libavcodec/libaomenc.c
|
|
@@ -319,7 +319,7 @@ static av_cold int aom_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();
|
|
|
|
if (ctx->lag_in_frames >= 0)
|
|
enccfg.g_lag_in_frames = ctx->lag_in_frames;
|
|
--
|
|
2.18.0
|
|
|