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 705831 - eglglessink: fix expose after changing the window_handle
eglglessink: fix expose after changing the window_handle
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
unspecified
Other All
: Normal enhancement
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on: 705832
Blocks:
 
 
Reported: 2013-08-12 11:18 UTC by Andoni Morales
Modified: 2014-10-30 18:49 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
eglglessink: fix expose after changing the window_handle (2.81 KB, patch)
2013-08-12 11:18 UTC, Andoni Morales
none Details | Review
eglglessink: fix expose after changing the window_handle (2.97 KB, patch)
2013-08-12 11:32 UTC, Andoni Morales
needs-work Details | Review
0001-eglglessink-fix-expose-after-changing-the-window_han.patch (2.97 KB, patch)
2013-08-19 10:10 UTC, Andoni Morales
none Details | Review
0001-eglglessink-fix-expose-after-changing-the-window_han.patch (2.84 KB, patch)
2013-08-19 10:12 UTC, Andoni Morales
needs-work Details | Review

Description Andoni Morales 2013-08-12 11:18:38 UTC
When the window handle changes (eg:a device rotation)
and no buffer is processed before doing an expose, the last
texture is no longer valid in the current context, so the last
buffer needs to be uploaded again.
Comment 1 Andoni Morales 2013-08-12 11:18:40 UTC
Created attachment 251338 [details] [review]
eglglessink: fix expose after changing the window_handle

When the window handle changes iand no buffer is processed
before doing an expose, the last texture is no longer valid
in the current context, so the last buffer needs to be uploaded
again.
Comment 2 Andoni Morales 2013-08-12 11:21:48 UTC
Needs some more work for 1.0
Comment 3 Andoni Morales 2013-08-12 11:32:36 UTC
Created attachment 251342 [details] [review]
eglglessink: fix expose after changing the window_handle
Comment 4 Sebastian Dröge (slomo) 2013-08-13 10:34:44 UTC
Review of attachment 251342 [details] [review]:

::: ext/eglgles/gsteglglessink.c
@@ +1012,3 @@
+    obj = GST_MINI_OBJECT_CAST (gst_buffer_ref (buf));
+    gst_sample_unref (sample);
+  }

Don't we already keep the last buffer around elsewhere in eglglessink? Otherwise makes sense, but should probably be integrated better with the other patch that allows to change the window during playback.
Comment 5 Andoni Morales 2013-08-19 10:10:19 UTC
Created attachment 252191 [details] [review]
0001-eglglessink-fix-expose-after-changing-the-window_han.patch
Comment 6 Andoni Morales 2013-08-19 10:12:37 UTC
Created attachment 252192 [details] [review]
0001-eglglessink-fix-expose-after-changing-the-window_han.patch

Sorry, I attached the wrong file before
Comment 7 Sebastian Dröge (slomo) 2013-08-19 11:30:17 UTC
Review of attachment 252192 [details] [review]:

::: ext/eglgles/gsteglglessink.c
@@ +1005,3 @@
+
+  if (G_UNLIKELY (obj == NULL && window_changed &&
+          eglglessink->last_buffer != NULL)) {

I think this code should be in the expose() handler and not in queue_object()
Comment 8 Tim-Philipp Müller 2014-10-30 18:49:08 UTC
eglglessink was removed in the latest stable GStreamer series, with glimagesink being the replacement.

Please file a new bug against glimagesink if you still have problems with
glimagesink and recent versions of GStreamer (git master or 1.4.x), thanks!