2017-09-25 18:04 GMT+08:00 Luca Barbato <lu_z...@gentoo.org>: > Should improve the performance on multiple transcoding from a single > source. > --- > libavcodec/qsv.c | 5 +++++ > libavfilter/qsvvpp.c | 3 +++ > 2 files changed, 8 insertions(+) > > diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c > index 56bfbb33d2..76a0e26bb4 100644 > --- a/libavcodec/qsv.c > +++ b/libavcodec/qsv.c > @@ -594,6 +594,11 @@ int ff_qsv_init_session_device(AVCodecContext > *avctx, mfxSession *psession, > "Error setting a HW handle"); > } > > + err = MFXJoinSession(parent_session, session); > + if (err != MFX_ERR_NONE) > + return ff_qsv_print_error(avctx, err, > + "Error joining session"); > + > ret = qsv_load_plugins(session, load_plugins, avctx); > if (ret < 0) { > av_log(avctx, AV_LOG_ERROR, "Error loading plugins\n"); > diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c > index 0b639c2d67..5d20a383fc 100644 > --- a/libavfilter/qsvvpp.c > +++ b/libavfilter/qsvvpp.c > @@ -515,6 +515,9 @@ static int init_vpp_session(AVFilterContext *avctx, > QSVVPPContext *s) > if (ret != MFX_ERR_NONE) > return AVERROR_UNKNOWN; > } > + ret = MFXJoinSession(device_hwctx->session, s->session); > + if (ret != MFX_ERR_NONE) > + return AVERROR_UNKNOWN; > > if (IS_OPAQUE_MEMORY(s->in_mem_mode) || > IS_OPAQUE_MEMORY(s->out_mem_mode)) > { > s->opaque_alloc.In.Surfaces = s->surface_ptrs_in; > -- > 2.11.1 > > _______________________________________________ > libav-devel mailing list > libav-devel@libav.org > https://lists.libav.org/mailman/listinfo/libav-devel >
Works fine on my side. LGTM _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel