mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-26 00:58:12 +00:00
[285/906] fix gl framerate in gst caps. Consider position in xoverlay. Fix inversion bettween COLS and ROWS, and move windows.
This commit is contained in:
parent
0867343017
commit
6d2b8da3da
1 changed files with 14 additions and 4 deletions
|
@ -362,6 +362,8 @@ gst_gl_window_new (gint width, gint height)
|
||||||
|
|
||||||
g_debug ("gl window id: %lld\n", (guint64) priv->internal_win_id);
|
g_debug ("gl window id: %lld\n", (guint64) priv->internal_win_id);
|
||||||
|
|
||||||
|
g_debug ("gl window props: x:%d y:%d w:%d h:%d\n", x, y, width, height);
|
||||||
|
|
||||||
wm_atoms[0] = XInternAtom (priv->device, "WM_DELETE_WINDOW", True);
|
wm_atoms[0] = XInternAtom (priv->device, "WM_DELETE_WINDOW", True);
|
||||||
if (wm_atoms[0] == None)
|
if (wm_atoms[0] == None)
|
||||||
g_debug ("Cannot create WM_DELETE_WINDOW\n");
|
g_debug ("Cannot create WM_DELETE_WINDOW\n");
|
||||||
|
@ -428,6 +430,8 @@ gst_gl_window_set_external_window_id (GstGLWindow *window, guint64 id)
|
||||||
|
|
||||||
priv->parent = (Window) id;
|
priv->parent = (Window) id;
|
||||||
|
|
||||||
|
g_debug ("set parent window id: %lld\n", id);
|
||||||
|
|
||||||
XGetWindowAttributes (priv->disp_send, priv->parent, &attr);
|
XGetWindowAttributes (priv->disp_send, priv->parent, &attr);
|
||||||
|
|
||||||
XResizeWindow (priv->disp_send, priv->internal_win_id, attr.width, attr.height);
|
XResizeWindow (priv->disp_send, priv->internal_win_id, attr.width, attr.height);
|
||||||
|
@ -541,13 +545,21 @@ gst_gl_window_draw (GstGLWindow *window)
|
||||||
XWindowAttributes attr_parent;
|
XWindowAttributes attr_parent;
|
||||||
XGetWindowAttributes (priv->disp_send, priv->parent, &attr_parent);
|
XGetWindowAttributes (priv->disp_send, priv->parent, &attr_parent);
|
||||||
|
|
||||||
if (attr.width != attr_parent.width || attr.height != attr_parent.height)
|
if (attr.x != attr_parent.x || attr.y != attr_parent.y ||
|
||||||
|
attr.width != attr_parent.width || attr.height != attr_parent.height)
|
||||||
{
|
{
|
||||||
XResizeWindow (priv->disp_send, priv->internal_win_id, attr_parent.width, attr_parent.height);
|
XMoveResizeWindow (priv->disp_send, priv->internal_win_id, attr_parent.x, attr_parent.y,
|
||||||
|
attr_parent.width, attr_parent.height);
|
||||||
XSync (priv->disp_send, FALSE);
|
XSync (priv->disp_send, FALSE);
|
||||||
|
|
||||||
|
attr.x = attr_parent.x;
|
||||||
|
attr.y = attr_parent.y;
|
||||||
|
|
||||||
attr.width = attr_parent.width;
|
attr.width = attr_parent.width;
|
||||||
attr.height = attr_parent.height;
|
attr.height = attr_parent.height;
|
||||||
|
|
||||||
|
g_debug ("parent resize: %d, %d, %d, %d\n", attr_parent.x, attr_parent.y,
|
||||||
|
attr_parent.width, attr_parent.height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -624,8 +636,6 @@ gst_gl_window_run_loop (GstGLWindow *window)
|
||||||
custom_cb (custom_data);
|
custom_cb (custom_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_debug("signal\n");
|
|
||||||
|
|
||||||
g_cond_signal (priv->cond_send_message);
|
g_cond_signal (priv->cond_send_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue