lavfi/movie: Use filter thread count for decoding threads.
authorCarl Eugen Hoyos <ceffmpeg@gmail.com>
Sun, 25 Aug 2019 16:42:02 +0000 (18:42 +0200)
committerCarl Eugen Hoyos <ceffmpeg@gmail.com>
Tue, 1 Oct 2019 19:54:53 +0000 (21:54 +0200)
Fixes ticket #7542.

libavfilter/src_movie.c

index bcabfcc..79423a8 100644 (file)
@@ -153,14 +153,14 @@ static AVStream *find_stream(void *log, AVFormatContext *avf, const char *spec)
     return found;
 }
 
-static int open_stream(void *log, MovieStream *st)
+static int open_stream(AVFilterContext *ctx, MovieStream *st)
 {
     AVCodec *codec;
     int ret;
 
     codec = avcodec_find_decoder(st->st->codecpar->codec_id);
     if (!codec) {
-        av_log(log, AV_LOG_ERROR, "Failed to find any codec\n");
+        av_log(ctx, AV_LOG_ERROR, "Failed to find any codec\n");
         return AVERROR(EINVAL);
     }
 
@@ -173,9 +173,10 @@ static int open_stream(void *log, MovieStream *st)
         return ret;
 
     st->codec_ctx->refcounted_frames = 1;
+    st->codec_ctx->thread_count = ff_filter_get_nb_threads(ctx);
 
     if ((ret = avcodec_open2(st->codec_ctx, codec, NULL)) < 0) {
-        av_log(log, AV_LOG_ERROR, "Failed to open codec\n");
+        av_log(ctx, AV_LOG_ERROR, "Failed to open codec\n");
         return ret;
     }