vaapivideomemory: allow negotiated info to be removed
authorU. Artie Eoff <ullysses.a.eoff@intel.com>
Tue, 11 Jun 2019 03:39:28 +0000 (20:39 -0700)
committerU. Artie Eoff <ullysses.a.eoff@intel.com>
Tue, 11 Jun 2019 03:39:28 +0000 (20:39 -0700)
Allow NULL negotiated_vinfo to be passed into
gst_allocator_set_vaapi_negotiated_video_info to allow
any previously set info to be removed.

gst/vaapi/gstvaapivideomemory.c

index e7a74ff..16bf143 100644 (file)
@@ -1345,7 +1345,8 @@ gst_allocator_set_vaapi_video_info (GstAllocator * allocator,
 /**
  * gst_allocator_set_vaapi_negotiated_video_info:
  * @allocator: a #GstAllocator
- * @negotiated_vinfo: the negotiated #GstVideoInfo to store
+ * @negotiated_vinfo: the negotiated #GstVideoInfo to store.  If NULL, then
+ * removes any previously set value.
  *
  * Stores as GObject's qdata the @negotiated_vinfo in the allocator
  * instance.
@@ -1358,11 +1359,13 @@ gst_allocator_set_vaapi_negotiated_video_info (GstAllocator * allocator,
     const GstVideoInfo * negotiated_vinfo)
 {
   g_return_if_fail (allocator && GST_IS_ALLOCATOR (allocator));
-  g_return_if_fail (negotiated_vinfo);
 
-  g_object_set_qdata_full (G_OBJECT (allocator), NEGOTIATED_VINFO_QUARK,
-      gst_video_info_copy (negotiated_vinfo),
-      (GDestroyNotify) gst_video_info_free);
+  if (negotiated_vinfo)
+    g_object_set_qdata_full (G_OBJECT (allocator), NEGOTIATED_VINFO_QUARK,
+        gst_video_info_copy (negotiated_vinfo),
+        (GDestroyNotify) gst_video_info_free);
+  else
+    g_object_set_qdata (G_OBJECT (allocator), NEGOTIATED_VINFO_QUARK, NULL);
 }
 
 /**