--- fftools/ffmpeg.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-)
Not sure if there is any downside to this. Threading for hwaccel does not make a whole lot of sense, and at least in case of nvdec wastes a lot of VRAM for no performance gain, and specially on high core count systems by default can even exhaust the maximum frame pool size. diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 98c2421938..d007d55173 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -2995,12 +2995,6 @@ FF_ENABLE_DEPRECATION_WARNINGS * audio, and video decoders such as cuvid or mediacodec */ ist->dec_ctx->pkt_timebase = ist->st->time_base; - if (!av_dict_get(ist->decoder_opts, "threads", NULL, 0)) - av_dict_set(&ist->decoder_opts, "threads", "auto", 0); - /* Attached pics are sparse, therefore we would not want to delay their decoding till EOF. */ - if (ist->st->disposition & AV_DISPOSITION_ATTACHED_PIC) - av_dict_set(&ist->decoder_opts, "threads", "1", 0); - ret = hw_device_setup_for_decode(ist); if (ret < 0) { snprintf(error, error_len, "Device setup failed for " @@ -3009,6 +3003,16 @@ FF_ENABLE_DEPRECATION_WARNINGS return ret; } + if (!av_dict_get(ist->decoder_opts, "threads", NULL, 0)) { + if (ist->dec_ctx->hw_device_ctx) + av_dict_set(&ist->decoder_opts, "threads", "1", 0); + else + av_dict_set(&ist->decoder_opts, "threads", "auto", 0); + } + /* Attached pics are sparse, therefore we would not want to delay their decoding till EOF. */ + if (ist->st->disposition & AV_DISPOSITION_ATTACHED_PIC) + av_dict_set(&ist->decoder_opts, "threads", "1", 0); + if ((ret = avcodec_open2(ist->dec_ctx, codec, &ist->decoder_opts)) < 0) { if (ret == AVERROR_EXPERIMENTAL) abort_codec_experimental(codec, 0); -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".