[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:31:02 UTC 2016
https://bugzilla.gnome.org/show_bug.cgi?id=772608
--- Comment #9 from Matthew Waters (ystreet00) <ystreet00 at gmail.com> ---
(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, foreign should be copied to native and
native should be reset when closing.
> > (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.
> I am planing to provide a patch all together once it is in good shape :)
The smaller the patches, the better they are ;)
--
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