GNOME Bugzilla – Bug 755111
Regression: glimagesink 3D video handling
Last modified: 2015-09-18 03:06:29 UTC
Commit 7ae0dd236130a8ee84f025c0cdf19a4bedf767bb breaks 3D video handling: glimagesink: avoid updating the viewport in the draw loop Fixes flashes/incorrect aspect ratio when resizing glimagesink on OSX. This commit makes it so that changing the 3D output mode doesn't take effect immediately any more. Previously, it would resize the render region to take the new logical video size into account, now glimagesink doesn't resize the display region until the window is resized.
Created attachment 311534 [details] [review] glwindow: add API to request a resize event on the next draw Untested on anything but wayland/x11
Created attachment 311535 [details] [review] glimagesink: request a resize on caps/3d mode changes
Looks sensible to me but is quite a big change... should get some testing on other platforms too.
commit 557ca6fda5f831be4aba5819bf7b30b296e575cd Author: Matthew Waters <matthew@centricular.com> Date: Thu Sep 17 17:22:47 2015 +1000 glimagesink: request a resize on caps/3d mode changes Fixes incorrect aspect ratio on OSX when changing caps or the 3d output mode. https://bugzilla.gnome.org/show_bug.cgi?id=755111 commit 3addb6bbf4bffe20c41fd2599153a6ee846a4845 Author: Matthew Waters <matthew@centricular.com> Date: Thu Sep 17 17:06:37 2015 +1000 glwindow: add API to request a resize event on the next draw - glimagesink needs to be able to resize the viewport on aspect ratio changes resulting from either caps changes or 3d output mode changes. - Performing a glViewport outside the GstGLWindow::resize callback will not have the winsys' stack of viewports required to correctly place the output frame. Provide a function to request a resize on the next draw event from the winsys. Also track size changes inside the base GstGLWindow class rather than in each subclass. https://bugzilla.gnome.org/show_bug.cgi?id=755111
Let's close this once it's confirmed to not explode on other platforms
Tested on win64, OSX, iOS, rpi, x11, wayland and android.