diff --git a/docs/reference/libs/libs-sections.txt b/docs/reference/libs/libs-sections.txt
index 852bd32f82..f12019b0c1 100644
--- a/docs/reference/libs/libs-sections.txt
+++ b/docs/reference/libs/libs-sections.txt
@@ -166,8 +166,10 @@ GstVaapiRectangle
GstVaapiWindow
GstVaapiWindow
GstVaapiWindowClass
+gst_vaapi_window_get_display
gst_vaapi_window_show
gst_vaapi_window_hide
+gst_vaapi_window_get_fullscreen
gst_vaapi_window_set_fullscreen
gst_vaapi_window_get_width
gst_vaapi_window_get_height
diff --git a/gst-libs/gst/vaapi/gstvaapiwindow.c b/gst-libs/gst/vaapi/gstvaapiwindow.c
index d93f7afb8d..9f2d2abf62 100644
--- a/gst-libs/gst/vaapi/gstvaapiwindow.c
+++ b/gst-libs/gst/vaapi/gstvaapiwindow.c
@@ -49,7 +49,8 @@ enum {
PROP_DISPLAY,
PROP_WIDTH,
- PROP_HEIGHT
+ PROP_HEIGHT,
+ PROP_FULLSCREEN
};
static void
@@ -113,6 +114,9 @@ gst_vaapi_window_set_property(
case PROP_HEIGHT:
gst_vaapi_window_set_height(window, g_value_get_uint(value));
break;
+ case PROP_FULLSCREEN:
+ gst_vaapi_window_set_fullscreen(window, g_value_get_boolean(value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -139,6 +143,9 @@ gst_vaapi_window_get_property(
case PROP_HEIGHT:
g_value_set_uint(value, gst_vaapi_window_get_height(window));
break;
+ case PROP_FULLSCREEN:
+ g_value_set_boolean(value, window->priv->is_fullscreen);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
break;
@@ -201,6 +208,15 @@ gst_vaapi_window_class_init(GstVaapiWindowClass *klass)
"The window height",
1, G_MAXUINT32, 1,
G_PARAM_READWRITE));
+
+ g_object_class_install_property
+ (object_class,
+ PROP_FULLSCREEN,
+ g_param_spec_boolean("fullscreen",
+ "Fullscreen",
+ "The fullscreen state of the window",
+ FALSE,
+ G_PARAM_READWRITE));
}
static void
@@ -264,6 +280,22 @@ gst_vaapi_window_hide(GstVaapiWindow *window)
GST_VAAPI_WINDOW_GET_CLASS(window)->hide(window);
}
+/**
+ * gst_vaapi_window_get_fullscreen:
+ * @window: a #GstVaapiWindow
+ *
+ * Retrieves whether the @window is fullscreen or not
+ *
+ * Return value: %TRUE if the window is fullscreen
+ */
+gboolean
+gst_vaapi_window_get_fullscreen(GstVaapiWindow *window)
+{
+ g_return_val_if_fail(GST_VAAPI_IS_WINDOW(window), FALSE);
+
+ return window->priv->is_fullscreen;
+}
+
/**
* gst_vaapi_window_set_fullscreen:
* @window: a #GstVaapiWindow
diff --git a/gst-libs/gst/vaapi/gstvaapiwindow.h b/gst-libs/gst/vaapi/gstvaapiwindow.h
index 4c2bbcbe8f..2eb1f0ee83 100644
--- a/gst-libs/gst/vaapi/gstvaapiwindow.h
+++ b/gst-libs/gst/vaapi/gstvaapiwindow.h
@@ -110,6 +110,9 @@ gst_vaapi_window_show(GstVaapiWindow *window);
void
gst_vaapi_window_hide(GstVaapiWindow *window);
+gboolean
+gst_vaapi_window_get_fullscreen(GstVaapiWindow *window);
+
void
gst_vaapi_window_set_fullscreen(GstVaapiWindow *window, gboolean fullscreen);