diff options
author | Tim-Philipp Müller <tim@centricular.com> | 2016-02-16 00:14:27 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2016-02-16 00:25:46 +0000 |
commit | 7f9f3d38b249e495fdd1e7870a1b7dbb0bbc1395 (patch) | |
tree | 87e0d05c1d9f1e000dfc536895136c130219107b | |
parent | 714d31ce308e1d2067da494553251876aa9f68e4 (diff) | |
download | gstreamer-plugins-good-7f9f3d38b249e495fdd1e7870a1b7dbb0bbc1395.tar.gz |
rtp: h265: use common meta utility functions
https://bugzilla.gnome.org/show_bug.cgi?id=761606
-rw-r--r-- | gst/rtp/gstrtph265depay.c | 65 | ||||
-rw-r--r-- | gst/rtp/gstrtph265depay.h | 2 | ||||
-rw-r--r-- | gst/rtp/gstrtph265pay.c | 2 |
3 files changed, 2 insertions, 67 deletions
diff --git a/gst/rtp/gstrtph265depay.c b/gst/rtp/gstrtph265depay.c index 64dcf12ce..59685b8b4 100644 --- a/gst/rtp/gstrtph265depay.c +++ b/gst/rtp/gstrtph265depay.c @@ -29,6 +29,7 @@ #include <gst/rtp/gstrtpbuffer.h> #include <gst/video/video.h> #include "gstrtph265depay.h" +#include "gstrtputils.h" GST_DEBUG_CATEGORY_STATIC (rtph265depay_debug); #define GST_CAT_DEFAULT (rtph265depay_debug) @@ -939,70 +940,6 @@ gst_rtp_h265_complete_au (GstRtpH265Depay * rtph265depay, #define NAL_TYPE_IS_KEY(nt) (NAL_TYPE_IS_PARAMETER_SET(nt) || NAL_TYPE_IS_CODED_SLICE_SEGMENT(nt)) -static gboolean -foreach_metadata_copy (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data) -{ - CopyMetaData *data = user_data; - GstElement *element = data->element; - GstBuffer *outbuf = data->outbuf; - GQuark copy_tag = data->copy_tag; - const GstMetaInfo *info = (*meta)->info; - const gchar *const *tags = gst_meta_api_type_get_tags (info->api); - - if (!tags || (copy_tag != 0 && g_strv_length ((gchar **) tags) == 1 - && gst_meta_api_type_has_tag (info->api, copy_tag))) { - GstMetaTransformCopy copy_data = { FALSE, 0, -1 }; - GST_DEBUG_OBJECT (element, "copy metadata %s", g_type_name (info->api)); - /* simply copy then */ - info->transform_func (outbuf, *meta, inbuf, - _gst_meta_transform_copy, ©_data); - } else { - GST_DEBUG_OBJECT (element, "not copying metadata %s", - g_type_name (info->api)); - } - - return TRUE; -} - -/* TODO: Should probably make copy_tag an array at some point */ -void -gst_rtp_copy_meta (GstElement * element, GstBuffer * outbuf, GstBuffer * inbuf, - GQuark copy_tag) -{ - CopyMetaData data = { element, outbuf, copy_tag }; - - gst_buffer_foreach_meta (inbuf, foreach_metadata_copy, &data); -} - -static gboolean -foreach_metadata_drop (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data) -{ - DropMetaData *data = user_data; - GstElement *element = data->element; - GQuark keep_tag = data->keep_tag; - const GstMetaInfo *info = (*meta)->info; - const gchar *const *tags = gst_meta_api_type_get_tags (info->api); - - if (!tags || (keep_tag != 0 && g_strv_length ((gchar **) tags) == 1 - && gst_meta_api_type_has_tag (info->api, keep_tag))) { - GST_DEBUG_OBJECT (element, "keeping metadata %s", g_type_name (info->api)); - } else { - GST_DEBUG_OBJECT (element, "dropping metadata %s", g_type_name (info->api)); - *meta = NULL; - } - - return TRUE; -} - -/* TODO: Should probably make keep_tag an array at some point */ -static void -gst_rtp_drop_meta (GstElement * element, GstBuffer * buf, GQuark keep_tag) -{ - DropMetaData data = { element, keep_tag }; - - gst_buffer_foreach_meta (buf, foreach_metadata_drop, &data); -} - static GstBuffer * gst_rtp_h265_depay_handle_nal (GstRtpH265Depay * rtph265depay, GstBuffer * nal, GstClockTime in_timestamp, gboolean marker) diff --git a/gst/rtp/gstrtph265depay.h b/gst/rtp/gstrtph265depay.h index 0a919c918..ecb910db6 100644 --- a/gst/rtp/gstrtph265depay.h +++ b/gst/rtp/gstrtph265depay.h @@ -100,8 +100,6 @@ typedef struct GQuark keep_tag; } DropMetaData; -void gst_rtp_copy_meta (GstElement * element, GstBuffer *outbuf, GstBuffer *inbuf, GQuark copy_tag); - GType gst_rtp_h265_depay_get_type (void); gboolean gst_rtp_h265_depay_plugin_init (GstPlugin * plugin); diff --git a/gst/rtp/gstrtph265pay.c b/gst/rtp/gstrtph265pay.c index db8800bc6..dceb61ecc 100644 --- a/gst/rtp/gstrtph265pay.c +++ b/gst/rtp/gstrtph265pay.c @@ -33,7 +33,7 @@ #include "gstrtph265depay.h" #include "gstrtph265pay.h" - +#include "gstrtputils.h" GST_DEBUG_CATEGORY_STATIC (rtph265pay_debug); #define GST_CAT_DEFAULT (rtph265pay_debug) |