On Wed, 29 Sept 2021 at 20:02, Timo Rothenpieler <t...@rothenpieler.org> wrote:
> --- > 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 > > > A potential downside to this would be on QSV's side, which needs at least 2 threads to prevent dead-locking, see https://github.com/Intel-Media-SDK/MediaSDK/blob/master/_studio/mfx_lib/scheduler/linux/src/mfx_scheduler_core_ischeduler.cpp#L90-L93 Regards, Dennis. _______________________________________________ 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".