gl: silence a critical if upstream does not provide us with meta params
authorMatthew Waters <ystreet00@gmail.com>
Mon, 17 Mar 2014 19:40:51 +0000 (20:40 +0100)
committerMatthew Waters <ystreet00@gmail.com>
Wed, 19 Mar 2014 20:01:01 +0000 (07:01 +1100)
ext/gl/gstgltestsrc.c
gst-libs/gst/gl/gstglfilter.c
gst-libs/gst/gl/gstglmixer.c

index b788dcd..59cefd7 100644 (file)
@@ -627,32 +627,34 @@ gst_gl_test_src_decide_allocation (GstBaseSrc * basesrc, GstQuery * query)
     gchar *apis;
 
     gst_query_parse_nth_allocation_meta (query, idx, &upload_meta_params);
-    if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
-            GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
-      GstGLContext *old = src->context;
-
-      src->context = context;
-      if (old)
-        gst_object_unref (old);
-    } else if (gst_structure_get (upload_meta_params, "gst.gl.context.handle",
-            G_TYPE_POINTER, &handle, "gst.gl.context.type", G_TYPE_STRING,
-            &type, "gst.gl.context.apis", G_TYPE_STRING, &apis, NULL)
-        && handle) {
-      GstGLPlatform platform = GST_GL_PLATFORM_NONE;
-      GstGLAPI gl_apis;
-
-      GST_DEBUG ("got GL context handle 0x%p with type %s and apis %s", handle,
-          type, apis);
-
-      if (g_strcmp0 (type, "glx") == 0)
-        platform = GST_GL_PLATFORM_GLX;
-
-      gl_apis = gst_gl_api_from_string (apis);
-
-      if (gl_apis && platform)
-        other_context =
-            gst_gl_context_new_wrapped (src->display, (guintptr) handle,
-            platform, gl_apis);
+    if (upload_meta_params) {
+      if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
+              GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
+        GstGLContext *old = src->context;
+
+        src->context = context;
+        if (old)
+          gst_object_unref (old);
+      } else if (gst_structure_get (upload_meta_params, "gst.gl.context.handle",
+              G_TYPE_POINTER, &handle, "gst.gl.context.type", G_TYPE_STRING,
+              &type, "gst.gl.context.apis", G_TYPE_STRING, &apis, NULL)
+          && handle) {
+        GstGLPlatform platform = GST_GL_PLATFORM_NONE;
+        GstGLAPI gl_apis;
+
+        GST_DEBUG ("got GL context handle 0x%p with type %s and apis %s",
+            handle, type, apis);
+
+        if (g_strcmp0 (type, "glx") == 0)
+          platform = GST_GL_PLATFORM_GLX;
+
+        gl_apis = gst_gl_api_from_string (apis);
+
+        if (gl_apis && platform)
+          other_context =
+              gst_gl_context_new_wrapped (src->display, (guintptr) handle,
+              platform, gl_apis);
+      }
     }
   }
 
index 109379c..7bc67bb 100644 (file)
@@ -883,32 +883,34 @@ gst_gl_filter_decide_allocation (GstBaseTransform * trans, GstQuery * query)
     gchar *apis;
 
     gst_query_parse_nth_allocation_meta (query, idx, &upload_meta_params);
-    if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
-            GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
-      GstGLContext *old = filter->context;
-
-      filter->context = context;
-      if (old)
-        gst_object_unref (old);
-    } else if (gst_structure_get (upload_meta_params, "gst.gl.context.handle",
-            G_TYPE_POINTER, &handle, "gst.gl.context.type", G_TYPE_STRING,
-            &type, "gst.gl.context.apis", G_TYPE_STRING, &apis, NULL)
-        && handle) {
-      GstGLPlatform platform = GST_GL_PLATFORM_NONE;
-      GstGLAPI gl_apis;
-
-      GST_DEBUG ("got GL context handle 0x%p with type %s and apis %s", handle,
-          type, apis);
-
-      if (g_strcmp0 (type, "glx") == 0)
-        platform = GST_GL_PLATFORM_GLX;
-
-      gl_apis = gst_gl_api_from_string (apis);
-
-      if (gl_apis && platform)
-        other_context =
-            gst_gl_context_new_wrapped (filter->display, (guintptr) handle,
-            platform, gl_apis);
+    if (upload_meta_params) {
+      if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
+              GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
+        GstGLContext *old = filter->context;
+
+        filter->context = context;
+        if (old)
+          gst_object_unref (old);
+      } else if (gst_structure_get (upload_meta_params, "gst.gl.context.handle",
+              G_TYPE_POINTER, &handle, "gst.gl.context.type", G_TYPE_STRING,
+              &type, "gst.gl.context.apis", G_TYPE_STRING, &apis, NULL)
+          && handle) {
+        GstGLPlatform platform = GST_GL_PLATFORM_NONE;
+        GstGLAPI gl_apis;
+
+        GST_DEBUG ("got GL context handle 0x%p with type %s and apis %s",
+            handle, type, apis);
+
+        if (g_strcmp0 (type, "glx") == 0)
+          platform = GST_GL_PLATFORM_GLX;
+
+        gl_apis = gst_gl_api_from_string (apis);
+
+        if (gl_apis && platform)
+          other_context =
+              gst_gl_context_new_wrapped (filter->display, (guintptr) handle,
+              platform, gl_apis);
+      }
     }
   }
 
index b47783c..267ff47 100644 (file)
@@ -1117,32 +1117,34 @@ gst_gl_mixer_decide_allocation (GstGLMixer * mix, GstQuery * query)
     gchar *apis;
 
     gst_query_parse_nth_allocation_meta (query, idx, &upload_meta_params);
-    if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
-            GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
-      GstGLContext *old = mix->context;
-
-      mix->context = context;
-      if (old)
-        gst_object_unref (old);
-    } else if (gst_structure_get (upload_meta_params, "gst.gl.context.handle",
-            G_TYPE_POINTER, &handle, "gst.gl.context.type", G_TYPE_STRING,
-            &type, "gst.gl.context.apis", G_TYPE_STRING, &apis, NULL)
-        && handle) {
-      GstGLPlatform platform = GST_GL_PLATFORM_NONE;
-      GstGLAPI gl_apis;
-
-      GST_DEBUG ("got GL context handle 0x%p with type %s and apis %s", handle,
-          type, apis);
-
-      if (g_strcmp0 (type, "glx") == 0)
-        platform = GST_GL_PLATFORM_GLX;
-
-      gl_apis = gst_gl_api_from_string (apis);
-
-      if (gl_apis && platform)
-        other_context =
-            gst_gl_context_new_wrapped (mix->display, (guintptr) handle,
-            platform, gl_apis);
+    if (upload_meta_params) {
+      if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
+              GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
+        GstGLContext *old = mix->context;
+
+        mix->context = context;
+        if (old)
+          gst_object_unref (old);
+      } else if (gst_structure_get (upload_meta_params, "gst.gl.context.handle",
+              G_TYPE_POINTER, &handle, "gst.gl.context.type", G_TYPE_STRING,
+              &type, "gst.gl.context.apis", G_TYPE_STRING, &apis, NULL)
+          && handle) {
+        GstGLPlatform platform = GST_GL_PLATFORM_NONE;
+        GstGLAPI gl_apis;
+
+        GST_DEBUG ("got GL context handle 0x%p with type %s and apis %s",
+            handle, type, apis);
+
+        if (g_strcmp0 (type, "glx") == 0)
+          platform = GST_GL_PLATFORM_GLX;
+
+        gl_apis = gst_gl_api_from_string (apis);
+
+        if (gl_apis && platform)
+          other_context =
+              gst_gl_context_new_wrapped (mix->display, (guintptr) handle,
+              platform, gl_apis);
+      }
     }
   }