diff options
author | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-08-01 15:44:49 +0200 |
---|---|---|
committer | Gwenole Beauchesne <gwenole.beauchesne@intel.com> | 2012-08-01 16:40:17 +0200 |
commit | 34a2b33c1ab9643cf81209ada648c64cd1e02b0f (patch) | |
tree | 75e88996535906c1680a5815b60ae681bc0e4b1b /tests/test-display.c | |
parent | 657f0a4a6f76e121043d022c0f8be1cfdb4834d9 (diff) | |
download | gst-vaapi-34a2b33c1ab9643cf81209ada648c64cd1e02b0f.tar.gz |
tests: add support for headless decoding.
Diffstat (limited to 'tests/test-display.c')
-rw-r--r-- | tests/test-display.c | 69 |
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"); |