meta: transform_func: return FALSE if not supported or failed
authorHyunjun Ko <zzoon.ko@samsung.com>
Tue, 7 Jul 2015 01:46:48 +0000 (10:46 +0900)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 7 Jul 2015 10:40:17 +0000 (13:40 +0300)
https://bugzilla.gnome.org/show_bug.cgi?id=751778

gst/gstbuffer.c
libs/gst/net/gstnetaddressmeta.c
libs/gst/net/gstnetcontrolmessagemeta.c
tests/check/gst/gstmeta.c

index 56b190a4bbce06e8c47107fc85d8972334d96079..c1f0ebb91db52c4dd04a5ca2a10ad7e096aade4a 100644 (file)
@@ -2331,6 +2331,9 @@ _gst_parent_buffer_meta_transform (GstBuffer * dest, GstMeta * meta,
 
     GST_CAT_DEBUG (gst_parent_buffer_meta_debug,
         "copy buffer reference metadata");
+  } else {
+    /* return FALSE, if transform type is not supported */
+    return FALSE;
   }
   return TRUE;
 }
index 9c970ba331ae3d9b6959c23c4d8f832d298cdfd0..c4cdd4d175aa6c106399b46f36db650d49ee4411 100644 (file)
@@ -44,10 +44,13 @@ static gboolean
 net_address_meta_transform (GstBuffer * transbuf, GstMeta * meta,
     GstBuffer * buffer, GQuark type, gpointer data)
 {
-  GstNetAddressMeta *nmeta = (GstNetAddressMeta *) meta;
+  GstNetAddressMeta *smeta, *dmeta;
+  smeta = (GstNetAddressMeta *) meta;
 
   /* we always copy no matter what transform */
-  gst_buffer_add_net_address_meta (transbuf, nmeta->addr);
+  dmeta = gst_buffer_add_net_address_meta (transbuf, smeta->addr);
+  if (!dmeta)
+    return FALSE;
 
   return TRUE;
 }
index fca39b5451c0aee06d5013f9b561bec971de48e5..ff9b8084add2b70eb332b5691c80bedd634a5a6f 100644 (file)
@@ -47,10 +47,13 @@ static gboolean
 net_control_message_meta_transform (GstBuffer * transbuf, GstMeta * meta,
     GstBuffer * buffer, GQuark type, gpointer data)
 {
-  GstNetControlMessageMeta *nmeta = (GstNetControlMessageMeta *) meta;
+  GstNetControlMessageMeta *smeta, *dmeta;
+  smeta = (GstNetControlMessageMeta *) meta;
 
   /* we always copy no matter what transform */
-  gst_buffer_add_net_control_message_meta (transbuf, nmeta->message);
+  dmeta = gst_buffer_add_net_control_message_meta (transbuf, smeta->message);
+  if (!dmeta)
+    return FALSE;
 
   return TRUE;
 }
index 0cb034fcf98af5eb4a16728583095a4d1949440a..88205fc7cc845abff24eb38e4f5ba4390d35ad21 100644 (file)
@@ -117,6 +117,9 @@ test_transform_func (GstBuffer * transbuf, GstMeta * meta,
       test->duration = -1;
     }
     test->clock_rate = tmeta->clock_rate;
+  } else {
+    /* return FALSE, if transform type is not supported */
+    return FALSE;
   }
   return TRUE;
 }