GNOME Bugzilla – Bug 785199
gst_gl_window_dispmanx_egl_set_window_handle() removes foreign native window (element)
Last modified: 2018-09-08 17:44:03 UTC
I'm not sure it is a bug or not. On Raspberry Pi3, gst_gl_window_dispmanx_egl_set_window_handle() removes native window (element), regardless it was foreign window handle (set via gst_video_overlay_set_window_handle()) or not. This prevents glimagesink reusable. (PAUSED -> READY -> PAUSED does not work) I think, at least, a native window handle set via gst_video_overlay_set_window_handle() should not be released by GStreamer.
That is problematic and should not happen. Do you want to fix it?
I want to let original programmer, or other GStreamer expert, correct the source file, because I do not understand whole part. Also, I have no experience of co-working, sorry.
Created attachment 360165 [details] [review] Patch proposal Original report was Gst 1.12.2, but this patch is based on Gst 1.12.3
commit c537b2e2bb9f553b59cfd209b15e9d4ff2d27cdb Author: Yuji Kuwabara <HHG01200@nifty.ne.jp> Date: Thu Sep 21 14:03:28 2017 +0900 gl/dispmanx: fix removing foreign window handle gst_gl_window_dispmanx_egl_set_window_handle() removes native window handle (dispmanx element), regardless it was foreign window handle (set via gst_video_overlay_set_window_handle()) or not. This problem prevents glimagesink reusable. (PAUSED -> READY -> PAUSED does not work) This patch corrects it comparing the native window handle with foreign window handle. This behavior is same as gst_gl_window_dispmanx_egl_close(). https://bugzilla.gnome.org/show_bug.cgi?id=785199
Also picked into 1.14.