From cfc36666f681c41096ee8293f1f47cee1fe58284 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 30 Jan 2014 00:22:25 +0100 Subject: Force automatic thread_count to 1 for cbr mjpeg frame threading. Constant bit rate mjpeg encoding fails for threads > 1 and frame threading. --- libavcodec/frame_thread_encoder.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libavcodec/frame_thread_encoder.c') diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 687f23a17d..a9c1423502 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -125,6 +125,14 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options){ || !(avctx->codec->capabilities & CODEC_CAP_INTRA_ONLY)) return 0; + if( !avctx->thread_count + && avctx->codec_id == AV_CODEC_ID_MJPEG + && !(avctx->flags & CODEC_FLAG_QSCALE)) { + av_log(avctx, AV_LOG_DEBUG, + "Forcing thread count to 1 for MJPEG encoding, use -thread_type slice " + "or a constant quantizer if you want to use multiple cpu cores\n"); + avctx->thread_count = 1; + } if(!avctx->thread_count) { avctx->thread_count = av_cpu_count(); avctx->thread_count = FFMIN(avctx->thread_count, MAX_THREADS); -- cgit v1.2.3