diff --git a/0001-avcodec-libaom-fix-setting-amount-of-threads.patch b/0001-avcodec-libaom-fix-setting-amount-of-threads.patch new file mode 100644 index 0000000..bcd82b3 --- /dev/null +++ b/0001-avcodec-libaom-fix-setting-amount-of-threads.patch @@ -0,0 +1,51 @@ +From 309c3a0e81be553626711912e90015c26f4b09ba Mon Sep 17 00:00:00 2001 +From: James Almer +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 +Signed-off-by: James Almer +--- + 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 + diff --git a/ffmpeg-4.changes b/ffmpeg-4.changes index 07f3baf..d02cb27 100644 --- a/ffmpeg-4.changes +++ b/ffmpeg-4.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Sep 13 23:17:35 UTC 2018 - 9+suse@cirno.systems + +- Add 0001-avcodec-libaom-fix-setting-amount-of-threads.patch + ------------------------------------------------------------------- Fri Aug 24 07:19:30 UTC 2018 - jengelh@inai.de diff --git a/ffmpeg-4.spec b/ffmpeg-4.spec index 3a5a87f..6312213 100644 --- a/ffmpeg-4.spec +++ b/ffmpeg-4.spec @@ -119,6 +119,7 @@ Patch3: ffmpeg-new-coder-errors.diff Patch4: ffmpeg-codec-choice.diff Patch5: cve-2017-17555.diff Patch6: 0001-avformat-flvenc-Check-audio-packet-size.patch +Patch7: 0001-avcodec-libaom-fix-setting-amount-of-threads.patch BuildRequires: ladspa-devel BuildRequires: libgsm-devel BuildRequires: libmp3lame-devel