summaryrefslogtreecommitdiff
path: root/tests/test-display.c
diff options
context:
space:
mode:
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-08-01 15:44:49 +0200
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>2012-08-01 16:40:17 +0200
commit34a2b33c1ab9643cf81209ada648c64cd1e02b0f (patch)
tree75e88996535906c1680a5815b60ae681bc0e4b1b /tests/test-display.c
parent657f0a4a6f76e121043d022c0f8be1cfdb4834d9 (diff)
downloadgst-vaapi-34a2b33c1ab9643cf81209ada648c64cd1e02b0f.tar.gz
tests: add support for headless decoding.
Diffstat (limited to 'tests/test-display.c')
-rw-r--r--tests/test-display.c69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/test-display.c b/tests/test-display.c
index 2ebbed04..f86ebb87 100644
--- a/tests/test-display.c
+++ b/tests/test-display.c
@@ -21,6 +21,15 @@
#include "config.h"
#include <gst/video/video.h>
+#if USE_DRM
+# include <gst/vaapi/gstvaapidisplay_drm.h>
+# include <va/va_drm.h>
+# include <fcntl.h>
+# include <unistd.h>
+# ifndef DRM_DEVICE_PATH
+# define DRM_DEVICE_PATH "/dev/dri/card0"
+# endif
+#endif
#if USE_X11
# include <gst/vaapi/gstvaapidisplay_x11.h>
#endif
@@ -155,6 +164,66 @@ main(int argc, char *argv[])
gst_init(&argc, &argv);
+#if USE_DRM
+ g_print("#\n");
+ g_print("# Create display with gst_vaapi_display_drm_new()\n");
+ g_print("#\n");
+ {
+ display = gst_vaapi_display_drm_new(NULL);
+ if (!display)
+ g_error("could not create Gst/VA display");
+
+ dump_caps(display);
+ g_object_unref(display);
+ }
+ g_print("\n");
+
+ g_print("#\n");
+ g_print("# Create display with gst_vaapi_display_drm_new_with_device()\n");
+ g_print("#\n");
+ {
+ int drm_device;
+
+ drm_device = open(DRM_DEVICE_PATH, O_RDWR|O_CLOEXEC);
+ if (drm_device < 0)
+ g_error("could not open DRM device");
+
+ display = gst_vaapi_display_drm_new_with_device(drm_device);
+ if (!display)
+ g_error("could not create Gst/VA display");
+
+ dump_caps(display);
+ g_object_unref(display);
+ close(drm_device);
+ }
+ g_print("\n");
+
+ g_print("#\n");
+ g_print("# Create display with gst_vaapi_display_new_with_display() [vaGetDisplayDRM()]\n");
+ g_print("#\n");
+ {
+ int drm_device;
+ VADisplay va_display;
+
+ drm_device = open(DRM_DEVICE_PATH, O_RDWR|O_CLOEXEC);
+ if (drm_device < 0)
+ g_error("could not open DRM device");
+
+ va_display = vaGetDisplayDRM(drm_device);
+ if (!va_display)
+ g_error("could not create VA display");
+
+ display = gst_vaapi_display_new_with_display(va_display);
+ if (!display)
+ g_error("could not create Gst/VA display");
+
+ dump_caps(display);
+ g_object_unref(display);
+ close(drm_device);
+ }
+ g_print("\n");
+#endif
+
#if USE_X11
g_print("#\n");
g_print("# Create display with gst_vaapi_display_x11_new()\n");