summaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc.c
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-03-04 23:57:37 +0000
committerMark Thompson <sw@jkqxz.net>2017-04-02 19:06:33 +0100
commit3d197514e613ccd9eab43180c0a7c8b09a307606 (patch)
treeea24c846a0cb0e2c1ac1a801d845585a173dee4b /libavcodec/qsvenc.c
parent8848ba0bd6b035af77d4f13aa0d8aaaad9806fe8 (diff)
downloadffmpeg-3d197514e613ccd9eab43180c0a7c8b09a307606.tar.gz
qsvenc: Allow use of hw_device_ctx to make the internal session
Diffstat (limited to 'libavcodec/qsvenc.c')
-rw-r--r--libavcodec/qsvenc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index b2f2b4db71..bd8c24321e 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -693,6 +693,13 @@ static int qsvenc_init_session(AVCodecContext *avctx, QSVEncContext *q)
}
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,
q->load_plugins);