After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 785199 - gst_gl_window_dispmanx_egl_set_window_handle() removes foreign native window (element)
gst_gl_window_dispmanx_egl_set_window_handle() removes foreign native window ...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.12.2
Other Linux
: Normal normal
: 1.14.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-07-20 23:25 UTC by Yuji Kuwabara
Modified: 2018-09-08 17:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch proposal (1.60 KB, patch)
2017-09-21 05:28 UTC, Yuji Kuwabara
committed Details | Review

Description Yuji Kuwabara 2017-07-20 23:25:43 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.
Comment 1 Matthew Waters (ystreet00) 2017-07-21 01:52:26 UTC
That is problematic and should not happen.  Do you want to fix it?
Comment 2 Yuji Kuwabara 2017-07-21 02:13:49 UTC
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.
Comment 3 Yuji Kuwabara 2017-09-21 05:28:28 UTC
Created attachment 360165 [details] [review]
Patch proposal

Original report was Gst 1.12.2, but this patch is based on Gst 1.12.3
Comment 4 Matthew Waters (ystreet00) 2018-08-28 04:55:25 UTC
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
Comment 5 Tim-Philipp Müller 2018-09-08 17:44:03 UTC
Also picked into 1.14.