summaryrefslogtreecommitdiff
path: root/libavcodec/qsvdec.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/qsvdec.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/qsvdec.c')
-rw-r--r--libavcodec/qsvdec.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c
index 67e8ef0ce5..52df028ce3 100644
--- a/libavcodec/qsvdec.c
+++ b/libavcodec/qsvdec.c
@@ -51,13 +51,13 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format)
static int qsv_init_session(AVCodecContext *avctx, QSVContext *q, mfxSession session)
{
if (!session) {
- if (!q->internal_session) {
- int ret = ff_qsv_init_internal_session(avctx, &q->internal_session, NULL);
+ if (!q->internal_qs.session) {
+ int ret = ff_qsv_init_internal_session(avctx, &q->internal_qs, NULL);
if (ret < 0)
return ret;
}
- q->session = q->internal_session;
+ q->session = q->internal_qs.session;
} else {
q->session = session;
}
@@ -282,9 +282,7 @@ int ff_qsv_decode_close(QSVContext *q)
av_freep(&cur);
cur = q->work_frames;
}
-
- if (q->internal_session)
- MFXClose(q->internal_session);
+ ff_qsv_close_internal_session(&q->internal_qs);
return 0;
}