[Bug 745090] android: Fix changing GL window handle

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Mar 27 13:39:46 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=745090

Ilya Konstantinov <ilya.konstantinov at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |ilya.konstantinov at gmail.com
                   |                            |, slomo at coaxion.net
         Resolution|FIXED                       |---

--- Comment #4 from Ilya Konstantinov <ilya.konstantinov at gmail.com> ---
Commit a12ca13750a15300ab3c718ebde2984dc3d587b3 broke EAGL.

EAGL does not refresh its private fields when it gets a new window handle. When
gst_gl_context_eagl_create_context is called, the (async) window handle didn't
arrive yet, so:

  if (window_handle) {
  ...
  } else {
    priv->eagl_layer = NULL; // <-- OUCH!
    priv->framebuffer = 0;
    priv->color_renderbuffer = 0;
    priv->depth_renderbuffer = 0;
  }

This obviously causes everything else down the line not to work, starting with:

  void gst_gl_context_eagl_resize (GstGLContextEagl * eagl_context)
  {
    int width, height;

    glBindRenderbuffer (GL_RENDERBUFFER,
eagl_context->priv->color_renderbuffer);
    [eagl_context->priv->eagl_context renderbufferStorage:GL_RENDERBUFFER
fromDrawable:eagl_context->priv->eagl_layer];
    //                           ^ = nil

    ...

P.S. Sebastian, eventually the way to find this bug was simply to add an "Open
GL ES Error" breakpoint (that's an Xcode feature)

-- 
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