diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index 64227cea6e..5eb506fb76 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -699,6 +699,13 @@ static int qsvenc_init_session(AVCodecContext *avctx, QSVEncContext *q) return ret; } + q->session = q->internal_session; + } else if (avctx->hw_device_ctx) { + ret = ff_qsv_init_session_device(avctx, &q->internal_session, + avctx->hw_device_ctx, q->load_plugins); + if (ret < 0) + return ret; + q->session = q->internal_session; } else { ret = ff_qsv_init_internal_session(avctx, &q->internal_session,