avcodec/utils: run ff_frame_thread_encoder_init() only for encoders
authorMichael Niedermayer <michael@niedermayer.cc>
Mon, 25 Jan 2016 15:06:03 +0000 (16:06 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 25 Jan 2016 15:47:15 +0000 (16:47 +0100)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/utils.c

index fb6c5f4..abddd6f 100644 (file)
@@ -1317,7 +1317,7 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
     if (!HAVE_THREADS)
         av_log(avctx, AV_LOG_WARNING, "Warning: not compiled with thread support, using thread emulation\n");
 
-    if (CONFIG_FRAME_THREAD_ENCODER) {
+    if (CONFIG_FRAME_THREAD_ENCODER && av_codec_is_encoder(avctx->codec)) {
         ff_unlock_avcodec(codec); //we will instanciate a few encoders thus kick the counter to prevent false detection of a problem
         ret = ff_frame_thread_encoder_init(avctx, options ? *options : NULL);
         ff_lock_avcodec(avctx, codec);