summaryrefslogtreecommitdiff
path: root/libavutil
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-02-05 14:58:06 +0000
committerMark Thompson <sw@jkqxz.net>2017-02-05 15:13:15 +0000
commit3420b34a8a63c89d748abe8e99e7acf4c2408a81 (patch)
tree8eb32cc64f5374dbb95fd74841b0a28391b117f9 /libavutil
parentdf3b17eba47e635a694acb18b74e389194355f45 (diff)
Revert "avutil/hwcontext_vaapi: fix SEGV in vaTerminate when vaInitialize fails"
The original code is correctly following the API - vaTerminate() must be called to free the resources of a VADisplay after it is created by any of the vaGetDisplay*() calls; it is not necessary to have successfully called vaInitialize() on it. The segfaults which prompted this change must therefore be bugs in libva or the driver it loads. This reverts commit 3606602f1137552ea54f2c259eb140c1e3c026d4.
Diffstat (limited to 'libavutil')
-rw-r--r--libavutil/hwcontext_vaapi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c
index 0051acb4f6..6176bdc880 100644
--- a/libavutil/hwcontext_vaapi.c
+++ b/libavutil/hwcontext_vaapi.c
@@ -961,13 +961,14 @@ static int vaapi_device_create(AVHWDeviceContext *ctx, const char *device,
return AVERROR(EINVAL);
}
+ hwctx->display = display;
+
vas = vaInitialize(display, &major, &minor);
if (vas != VA_STATUS_SUCCESS) {
av_log(ctx, AV_LOG_ERROR, "Failed to initialise VAAPI "
"connection: %d (%s).\n", vas, vaErrorStr(vas));
return AVERROR(EIO);
}
- hwctx->display = display;
av_log(ctx, AV_LOG_VERBOSE, "Initialised VAAPI connection: "
"version %d.%d\n", major, minor);