]> git.sesse.net Git - ffmpeg/commitdiff
Revert "avutil/hwcontext_vaapi: fix SEGV in vaTerminate when vaInitialize fails"
authorMark Thompson <sw@jkqxz.net>
Sun, 5 Feb 2017 14:58:06 +0000 (14:58 +0000)
committerMark Thompson <sw@jkqxz.net>
Sun, 5 Feb 2017 15:13:15 +0000 (15:13 +0000)
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.

libavutil/hwcontext_vaapi.c

index 0051acb4f6b33a4e40c67beeff28ce21c2fdf2e8..6176bdc880c81dec7cac0b214a8d55f3b1160abc 100644 (file)
@@ -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);