]> code.ossystems Code Review - meta-freescale.git/blob
de53df4281485bef6c690bfa0937c78b616681cf
[meta-freescale.git] /
1 From 61b6bc77cb939a778e2ddfee68d0378680f69f71 Mon Sep 17 00:00:00 2001
2 From: Haihua Hu <b55597@freescale.com>
3 Date: Wed, 9 Mar 2016 13:00:39 +0800
4 Subject: [PATCH 18/18] glwindow: work around for no frame when imxplayer use
5  glimagesink
6
7 change parent window of internal_window in window_show function.
8
9 Upstream-Status: Inappropriate [i.MX specific]
10
11 Signed-off-by: Haihua Hu <b55597@freescale.com>
12 Signed-off-by: Lyon Wang <lyon.wang@freescale.com>
13 ---
14  gst-libs/gst/gl/x11/gstglwindow_x11.c | 14 +++++++++++---
15  1 file changed, 11 insertions(+), 3 deletions(-)
16
17 diff --git a/gst-libs/gst/gl/x11/gstglwindow_x11.c b/gst-libs/gst/gl/x11/gstglwindow_x11.c
18 index a330825..67160f6 100644
19 --- a/gst-libs/gst/gl/x11/gstglwindow_x11.c
20 +++ b/gst-libs/gst/gl/x11/gstglwindow_x11.c
21 @@ -322,13 +322,13 @@ gst_gl_window_x11_set_window_handle (GstGLWindow * window, guintptr id)
22          g_main_context_get_thread_default ());
23    }
24  
25 -  XGetWindowAttributes (window_x11->device, window_x11->parent_win, &attr);
26 +  /*XGetWindowAttributes (window_x11->device, window_x11->parent_win, &attr);
27  
28    XResizeWindow (window_x11->device, window_x11->internal_win_id,
29        attr.width, attr.height);
30  
31    XReparentWindow (window_x11->device, window_x11->internal_win_id,
32 -      window_x11->parent_win, 0, 0);
33 +      window_x11->parent_win, 0, 0);*/
34  
35    XSync (window_x11->device, FALSE);
36  }
37 @@ -359,7 +359,7 @@ _show_window (GstGLWindow * window)
38    GstGLWindowX11 *window_x11 = GST_GL_WINDOW_X11 (window);
39    guint width = window_x11->priv->preferred_width;
40    guint height = window_x11->priv->preferred_height;
41 -  XWindowAttributes attr;
42 +  XWindowAttributes attr, parent_attr;
43  
44    XGetWindowAttributes (window_x11->device, window_x11->internal_win_id, &attr);
45  
46 @@ -371,6 +371,14 @@ _show_window (GstGLWindow * window)
47        XResizeWindow (window_x11->device, window_x11->internal_win_id,
48            attr.width, attr.height);
49        XSync (window_x11->device, FALSE);
50 +    }else{
51 +      XGetWindowAttributes (window_x11->device, window_x11->parent_win, &parent_attr);
52 +
53 +      XResizeWindow (window_x11->device, window_x11->internal_win_id,
54 +         parent_attr.width, parent_attr.height);
55 +
56 +      XReparentWindow (window_x11->device, window_x11->internal_win_id,
57 +         window_x11->parent_win, 0, 0);
58      }
59  
60      XMapWindow (window_x11->device, window_x11->internal_win_id);
61 -- 
62 1.9.1
63