2 * gstvaapidisplay_x11_priv.h - Internal VA/X11 interface
4 * Copyright (C) 2010-2011 Splitted-Desktop Systems
5 * Author: Gwenole Beauchesne <gwenole.beauchesne@splitted-desktop.com>
6 * Copyright (C) 2012-2013 Intel Corporation
7 * Author: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public License
11 * as published by the Free Software Foundation; either version 2.1
12 * of the License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with this library; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 * Boston, MA 02110-1301 USA
25 #ifndef GST_VAAPI_DISPLAY_X11_PRIV_H
26 #define GST_VAAPI_DISPLAY_X11_PRIV_H
28 #include <gst/vaapi/gstvaapiutils_x11.h>
29 #include <gst/vaapi/gstvaapidisplay_x11.h>
30 #include "gstvaapidisplay_priv.h"
34 #define GST_VAAPI_IS_DISPLAY_X11(display) \
35 (G_TYPE_CHECK_INSTANCE_TYPE ((display), GST_TYPE_VAAPI_DISPLAY_X11))
37 #define GST_VAAPI_DISPLAY_X11_CAST(display) \
38 ((GstVaapiDisplayX11 *)(display))
40 #define GST_VAAPI_DISPLAY_X11_PRIVATE(display) \
41 (GST_VAAPI_DISPLAY_X11_CAST (display)->priv)
43 #define GST_VAAPI_DISPLAY_X11_GET_CLASS(obj) \
44 (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_VAAPI_DISPLAY_X11, GstVaapiDisplayX11Class))
46 typedef struct _GstVaapiDisplayX11Private GstVaapiDisplayX11Private;
47 typedef struct _GstVaapiDisplayX11Class GstVaapiDisplayX11Class;
50 * GST_VAAPI_DISPLAY_XDISPLAY:
51 * @display: a #GstVaapiDisplay
53 * Macro that evaluates to the underlying X11 #Display of @display
55 #undef GST_VAAPI_DISPLAY_XDISPLAY
56 #define GST_VAAPI_DISPLAY_XDISPLAY(display) \
57 GST_VAAPI_DISPLAY_X11_PRIVATE(display)->x11_display
60 * GST_VAAPI_DISPLAY_XSCREEN:
61 * @display: a #GstVaapiDisplay
63 * Macro that evaluates to the underlying X11 screen of @display
65 #undef GST_VAAPI_DISPLAY_XSCREEN
66 #define GST_VAAPI_DISPLAY_XSCREEN(display) \
67 GST_VAAPI_DISPLAY_X11_PRIVATE(display)->x11_screen
69 struct _GstVaapiDisplayX11Private
74 GArray *pixmap_formats;
75 guint use_foreign_display:1; // Foreign native_display?
83 * VA/X11 display wrapper.
85 struct _GstVaapiDisplayX11
88 GstVaapiDisplay parent_instance;
90 GstVaapiDisplayX11Private *priv;
94 * GstVaapiDisplayX11Class:
96 * VA/X11 display wrapper class.
98 struct _GstVaapiDisplayX11Class
101 GstVaapiDisplayClass parent_class;
106 gst_vaapi_display_x11_get_pixmap_format (GstVaapiDisplayX11 * display,
111 gst_vaapi_display_x11_get_pixmap_depth (GstVaapiDisplayX11 * display,
112 GstVideoFormat format);
116 #endif /* GST_VAAPI_DISPLAY_X11_PRIV_H */