Use XGetGeometry() to retrieve the window size.
authorgb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
Thu, 13 May 2010 04:22:31 +0000 (04:22 +0000)
committerGwenole Beauchesne <gbeauchesne@splitted-desktop.com>
Mon, 20 Sep 2010 10:55:45 +0000 (12:55 +0200)
gst/vaapisink/gstvaapisink.c

index 039bfa9..4499083 100644 (file)
@@ -292,25 +292,27 @@ gst_vaapisink_ensure_window(GstVaapiSink *sink, guint width, guint height)
 static gboolean
 gst_vaapisink_ensure_window_xid(GstVaapiSink *sink, XID xid)
 {
-    XWindowAttributes wattr;
+    Window rootwin;
+    unsigned int width, height, border_width, depth;
+    int x, y;
 
     if (!gst_vaapisink_ensure_display(sink))
         return FALSE;
 
     gst_vaapi_display_lock(sink->display);
-    XGetWindowAttributes(
+    XGetGeometry(
         gst_vaapi_display_x11_get_display(GST_VAAPI_DISPLAY_X11(sink->display)),
         xid,
-        &wattr
+        &rootwin,
+        &x, &y, &width, &height, &border_width, &depth
     );
     gst_vaapi_display_unlock(sink->display);
 
-    if (wattr.width  != sink->window_width ||
-        wattr.height != sink->window_height) {
-        if (!gst_vaapisink_ensure_render_rect(sink, wattr.width, wattr.height))
+    if (width != sink->window_width || height != sink->window_height) {
+        if (!gst_vaapisink_ensure_render_rect(sink, width, height))
             return FALSE;
-        sink->window_width  = wattr.width;
-        sink->window_height = wattr.height;
+        sink->window_width  = width;
+        sink->window_height = height;
     }
 
     if (sink->window &&