[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