From 9657e5a2caef74de799fab0b9920284660865da9 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 5 Mar 2015 12:55:36 +0100 Subject: vd_lavc: request 1 more threads than CPU cores This duplicates the logic which FFmpeg's libavcodec uses. The effects are unknown, though it's somewhat clear that a single thread doesn't necessarily saturate a single CPU. (Eventually we should just let FFmpeg auto-init the thread count, but for now I prefer it this way, so e.g. verbose mode will print the thread count.) --- common/av_common.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/av_common.c b/common/av_common.c index bc2845d4d4..05c694702d 100644 --- a/common/av_common.c +++ b/common/av_common.c @@ -135,6 +135,8 @@ void mp_set_avcodec_threads(struct mp_log *l, AVCodecContext *avctx, int threads threads = 1; } else { mp_verbose(l, "Detected %d logical cores.\n", threads); + if (threads > 1) + threads += 1; // extra thread for better load balancing } // Apparently some libavcodec versions have or had trouble with more // than 16 threads, and/or print a warning when using > 16. -- cgit v1.2.3