summaryrefslogtreecommitdiff
path: root/libavcodec/qsvenc.c
diff options
context:
space:
mode:
authorIvan Uskov <ivan.uskov@nablet.com>2015-07-13 10:17:54 -0400
committerMichael Niedermayer <michael@niedermayer.cc>2015-07-14 02:02:55 +0200
commitce91bab70f69acc1a7e5705af95cc6fa89765825 (patch)
treed2464e5c989adee7fc0278ae0cdef042fd80459a /libavcodec/qsvenc.c
parent96e1cc3f8b6b0b5b19820609b23642bde1ee7e7c (diff)
libavcodec/qsv.c: Issue fixed: QSV engine does not release display handler under linux platform.
Reviewed-by: Gwenole Beauchesne <gb.devel@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavcodec/qsvenc.c')
-rw-r--r--libavcodec/qsvenc.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c
index 3f376399c9..576bf68e18 100644
--- a/libavcodec/qsvenc.c
+++ b/libavcodec/qsvenc.c
@@ -217,12 +217,12 @@ int ff_qsv_enc_init(AVCodecContext *avctx, QSVEncContext *q)
}
if (!q->session) {
- ret = ff_qsv_init_internal_session(avctx, &q->internal_session,
+ ret = ff_qsv_init_internal_session(avctx, &q->internal_qs,
q->load_plugins);
if (ret < 0)
return ret;
- q->session = q->internal_session;
+ q->session = q->internal_qs.session;
}
ret = init_video_param(avctx, q);
@@ -460,10 +460,9 @@ int ff_qsv_enc_close(AVCodecContext *avctx, QSVEncContext *q)
QSVFrame *cur;
MFXVideoENCODE_Close(q->session);
- if (q->internal_session)
- MFXClose(q->internal_session);
- q->session = NULL;
- q->internal_session = NULL;
+ q->session = NULL;
+
+ ff_qsv_close_internal_session(&q->internal_qs);
cur = q->work_frames;
while (cur) {