[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:56:51 UTC 2016


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

--- Comment #10 from Munez <munezbn.dev at gmail.com> ---
(In reply to Matthew Waters (ystreet00) from comment #9)
> (In reply to Munez from comment #8)
> > (In reply to Matthew Waters (ystreet00) from comment #7)
> > > 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 ?
> 
> More or less.
> 
> When we actually need the native window,
Sorry again. Why would we need the native window if we have set a custom
(foreign) window ?
> foreign should be copied to native
This will be like overriding native window values including element_id? Why
cant we use foreign directly instead of native 
> and native should be reset when closing.
> 
 If i am not wrong native is used only inside gstglwindow_dispmanx_egl.c right
?


> > > (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 ?
> 
> No, that's the application's responsibility.  You don't touch the foreign
> window just use it a place to render.
> 

make sense.

> > I am planing to provide a patch all together once it is in good shape :)
> 
> The smaller the patches, the better they are ;)

Sure. I will create separate patch for this

-- 
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