[Bug 772608] rpi/dispmanx: Implement gst_video_overlay_set_window_handle() for dispmanx window

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Oct 9 10:25:05 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=772608

--- Comment #8 from Munez <munezbn.dev at gmail.com> ---
(In reply to Matthew Waters (ystreet00) from comment #7)
> (In reply to Munez from comment #4)
> > gst_gl_window_dispmanx_egl_create_window() sets width/height to 0
> > unconditionally. But then it resizes to 16x16 .. 
> > 
> > What kind of checking are you suggesting ? I am totally new to gstreamer and
> > learning it with Raspberry PI3. So don't have much idea with dispmanx and
> > elements internals. Kindly guide me.
> 
> checking as in making sure that the user set variables are not overriden. 
> What the other backends do is have a seperate variable for the user set
> window.  You probably also want to do the same thing here.
> 
Sorry, If I have understood correctly you are suggesting to 

1] add a new member in _GstGLWindowDispmanxEGL structure
 EGL_DISPMANX_WINDOW_T foreign;

2] When set_window_handle is called, assign it to foreign instead of native
3] Everywhere in file gstglwindow_dispmanx_egl.c, make check like, if foreign
!= 0 then use foreign else use native ?



> (In reply to Munez from comment #5)
> > Additionally we may have to remove element added by player before setting
> > new element, something like below ?
> > 
> >     if(window_egl->native.element != 0) {
> >       GST_DEBUG_OBJECT (window, "Remove existing native element");
> >       update = vc_dispmanx_update_start(0);
> >       vc_dispmanx_element_remove(update, window_egl->native.element);
> >       vc_dispmanx_update_submit_sync(update);
> >     } 
> > 
> > I noticed that even before set_window_handle is called, player adds a window
> > by calling resize_window(16x16)..
> 
> Correct.

If i use above approach then i dont have to do this but have to make sure
foreign element is destroyed in cleanup ?
> 
> (In reply to Munez from comment #6)
> > Ahhh while going through code, I noticed another bug...in
> > gst_gl_window_dispmanx_egl_set_render_rectangle() 
> > 
> >   window_egl->render_rect.y = x;  ---> this should have been y not x
> 
> Correct.  Another patch please for that ;)

I am planing to provide a patch all together once it is in good shape :)

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list