From eaf4153668626752bad8a5e17e7cb6812d4c3bca Mon Sep 17 00:00:00 2001 From: Hyunjun Ko Date: Tue, 7 Jul 2015 10:46:48 +0900 Subject: [PATCH] meta: transform_func: return FALSE if not supported or failed https://bugzilla.gnome.org/show_bug.cgi?id=751778 --- gst/gstbuffer.c | 3 +++ libs/gst/net/gstnetaddressmeta.c | 7 +++++-- libs/gst/net/gstnetcontrolmessagemeta.c | 7 +++++-- tests/check/gst/gstmeta.c | 3 +++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index 56b190a..c1f0ebb 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -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; } diff --git a/libs/gst/net/gstnetaddressmeta.c b/libs/gst/net/gstnetaddressmeta.c index 9c970ba..c4cdd4d 100644 --- a/libs/gst/net/gstnetaddressmeta.c +++ b/libs/gst/net/gstnetaddressmeta.c @@ -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; } diff --git a/libs/gst/net/gstnetcontrolmessagemeta.c b/libs/gst/net/gstnetcontrolmessagemeta.c index fca39b5..ff9b808 100644 --- a/libs/gst/net/gstnetcontrolmessagemeta.c +++ b/libs/gst/net/gstnetcontrolmessagemeta.c @@ -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; } diff --git a/tests/check/gst/gstmeta.c b/tests/check/gst/gstmeta.c index 0cb034f..88205fc 100644 --- a/tests/check/gst/gstmeta.c +++ b/tests/check/gst/gstmeta.c @@ -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; } -- 2.7.4