[Bug 750279] New: Copying glsyncmeta causes errors

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Jun 2 06:20:58 PDT 2015


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

            Bug ID: 750279
           Summary: Copying glsyncmeta causes errors
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: thaytan at noraisin.net
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

The transform function for a GstGLSyncMeta copies the GL sync object to the new
meta, but there's no refcounting. Whichever of the GstGLSyncMeta's is freed
first will invalidate that sync object within GL. The 2nd one will (if we're
lucky) throw a warning, or (if we're not) invalidate someone else's sync object
if the same pointer has been reused since.

Warning output:
0:00:02.140869766 31827 0x7fffd408dcf0 ERROR              glcontext
gstglcontext.c:1078:_gst_gl_debug_callback:<glcontextglx0> high: GL error from
API id:4, GL_INVALID_VALUE in glDeleteSync (not a valid sync object)

Guilty code:
  if (GST_META_TRANSFORM_IS_COPY (type)) {
    GstMetaTransformCopy *copy = data;

    if (!copy->region) {
      /* only copy if the complete data is copied as well */
      dmeta = gst_buffer_add_gl_sync_meta (smeta->context, dest);

      if (!dmeta)
        return FALSE;

      GST_LOG ("copy sync object %p from meta %p to %p", smeta->glsync,
          smeta, dmeta);

      dmeta->glsync = smeta->glsync;
  }

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