From 4a28e649c3cd45969e9a5d0cef128dcf48107d60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 24 May 2017 12:57:10 +0100 Subject: [PATCH] rtp: cache meta tag quarks and add more utility functions for metas Every g_quark_from_static_string() is a hash table lookup serialised on the global quark lock in GLib. Let's just look up the two quarks we need once and cache them locally for future use. While we're at it, add new utility functions for the two most commonly used tags (audio + video). Make first argument a gpointer so we don't have to cast and make the code ugly. These are used for logging purposes only anyway. --- gst/rtp/gstrtp.c | 7 +++++++ gst/rtp/gstrtpL16depay.c | 3 +-- gst/rtp/gstrtpL24depay.c | 3 +-- gst/rtp/gstrtpac3depay.c | 3 +-- gst/rtp/gstrtpac3pay.c | 4 ++-- gst/rtp/gstrtpamrdepay.c | 3 +-- gst/rtp/gstrtpamrpay.c | 3 +-- gst/rtp/gstrtpbvdepay.c | 3 +-- gst/rtp/gstrtpceltdepay.c | 3 +-- gst/rtp/gstrtpceltpay.c | 3 +-- gst/rtp/gstrtpg722depay.c | 3 +-- gst/rtp/gstrtpg723pay.c | 3 +-- gst/rtp/gstrtpg726depay.c | 6 ++---- gst/rtp/gstrtpg729depay.c | 3 +-- gst/rtp/gstrtpg729pay.c | 3 +-- gst/rtp/gstrtpgsmdepay.c | 3 +-- gst/rtp/gstrtpgsmpay.c | 3 +-- gst/rtp/gstrtph261depay.c | 3 +-- gst/rtp/gstrtph261pay.c | 3 +-- gst/rtp/gstrtph263depay.c | 3 +-- gst/rtp/gstrtph263pay.c | 5 ++--- gst/rtp/gstrtph263pdepay.c | 3 +-- gst/rtp/gstrtph263ppay.c | 3 +-- gst/rtp/gstrtph264depay.c | 19 ++++++------------- gst/rtp/gstrtph264pay.c | 6 ++---- gst/rtp/gstrtph265depay.c | 19 ++++++------------- gst/rtp/gstrtph265pay.c | 6 ++---- gst/rtp/gstrtpilbcdepay.c | 3 +-- gst/rtp/gstrtpj2kdepay.c | 3 +-- gst/rtp/gstrtpj2kpay.c | 3 +-- gst/rtp/gstrtpjpegdepay.c | 3 +-- gst/rtp/gstrtpjpegpay.c | 3 +-- gst/rtp/gstrtpmp4adepay.c | 3 +-- gst/rtp/gstrtpmp4apay.c | 3 +-- gst/rtp/gstrtpmp4vdepay.c | 3 +-- gst/rtp/gstrtpmp4vpay.c | 3 +-- gst/rtp/gstrtpmpadepay.c | 3 +-- gst/rtp/gstrtpmpapay.c | 3 +-- gst/rtp/gstrtpmpvdepay.c | 3 +-- gst/rtp/gstrtpmpvpay.c | 3 +-- gst/rtp/gstrtppcmadepay.c | 3 +-- gst/rtp/gstrtppcmudepay.c | 3 +-- gst/rtp/gstrtpqcelpdepay.c | 3 +-- gst/rtp/gstrtpsbcdepay.c | 3 +-- gst/rtp/gstrtpsbcpay.c | 3 +-- gst/rtp/gstrtpsirendepay.c | 3 +-- gst/rtp/gstrtpspeexdepay.c | 3 +-- gst/rtp/gstrtpspeexpay.c | 3 +-- gst/rtp/gstrtpsv3vdepay.c | 3 +-- gst/rtp/gstrtptheorapay.c | 3 +-- gst/rtp/gstrtputils.c | 29 +++++++++++++++++++++++++++++ gst/rtp/gstrtputils.h | 15 +++++++++++++++ gst/rtp/gstrtpvorbispay.c | 3 +-- gst/rtp/gstrtpvp8depay.c | 3 +-- gst/rtp/gstrtpvp8pay.c | 4 ++-- gst/rtp/gstrtpvp9depay.c | 3 +-- gst/rtp/gstrtpvp9pay.c | 4 ++-- gst/rtp/gstrtpvrawdepay.c | 3 +-- gst/rtp/gstrtpvrawpay.c | 4 +--- 59 files changed, 124 insertions(+), 142 deletions(-) diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c index 10fdbca1ce..186cf9ce75 100644 --- a/gst/rtp/gstrtp.c +++ b/gst/rtp/gstrtp.c @@ -23,6 +23,8 @@ #include +#include "gstrtputils.h" + #include "gstrtpac3depay.h" #include "gstrtpac3pay.h" #include "gstrtpbvdepay.h" @@ -115,6 +117,11 @@ plugin_init (GstPlugin * plugin) { gst_tag_image_type_get_type (); + rtp_quark_meta_tag_video = + g_quark_from_static_string (GST_META_TAG_VIDEO_STR); + rtp_quark_meta_tag_audio = + g_quark_from_static_string (GST_META_TAG_AUDIO_STR); + if (!gst_rtp_ac3_depay_plugin_init (plugin)) return FALSE; diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c index 6e81946d99..601f16edce 100644 --- a/gst/rtp/gstrtpL16depay.c +++ b/gst/rtp/gstrtpL16depay.c @@ -258,8 +258,7 @@ gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) goto reorder_failed; } - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpL16depay), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (rtpL16depay, outbuf); return outbuf; diff --git a/gst/rtp/gstrtpL24depay.c b/gst/rtp/gstrtpL24depay.c index 9ec03499f3..8b28ee831b 100644 --- a/gst/rtp/gstrtpL24depay.c +++ b/gst/rtp/gstrtpL24depay.c @@ -230,8 +230,7 @@ gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) outbuf = gst_buffer_make_writable (outbuf); if (outbuf) { - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpL24depay), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (rtpL24depay, outbuf); } if (rtpL24depay->order && !gst_audio_buffer_reorder_channels (outbuf, diff --git a/gst/rtp/gstrtpac3depay.c b/gst/rtp/gstrtpac3depay.c index 50342c8d74..ec2b3baa18 100644 --- a/gst/rtp/gstrtpac3depay.c +++ b/gst/rtp/gstrtpac3depay.c @@ -156,8 +156,7 @@ gst_rtp_ac3_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, 2, -1); if (outbuf) { - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpac3depay), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (rtpac3depay, outbuf); GST_DEBUG_OBJECT (rtpac3depay, "pushing buffer of size %" G_GSIZE_FORMAT, gst_buffer_get_size (outbuf)); } diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c index 021016def8..57020dc4b9 100644 --- a/gst/rtp/gstrtpac3pay.c +++ b/gst/rtp/gstrtpac3pay.c @@ -323,8 +323,8 @@ gst_rtp_ac3_pay_flush (GstRtpAC3Pay * rtpac3pay) payload_buffer = gst_adapter_take_buffer_fast (rtpac3pay->adapter, payload_len); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpac3pay), outbuf, payload_buffer, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + + gst_rtp_copy_audio_meta (rtpac3pay, outbuf, payload_buffer); outbuf = gst_buffer_append (outbuf, payload_buffer); diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c index 1c87a1a6e9..7a7c79757b 100644 --- a/gst/rtp/gstrtpamrdepay.c +++ b/gst/rtp/gstrtpamrdepay.c @@ -427,8 +427,7 @@ gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) GST_DEBUG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT, gst_buffer_get_size (outbuf)); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpamrdepay), outbuf, rtp->buffer, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (rtpamrdepay, outbuf, rtp->buffer); } return outbuf; diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c index 300be8f804..5e70f0a44c 100644 --- a/gst/rtp/gstrtpamrpay.c +++ b/gst/rtp/gstrtpamrpay.c @@ -392,8 +392,7 @@ gst_rtp_amr_pay_handle_buffer (GstRTPBasePayload * basepayload, gst_buffer_unmap (buffer, &map); gst_rtp_buffer_unmap (&rtp); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpamrpay), outbuf, buffer, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (rtpamrpay, outbuf, buffer); gst_buffer_unref (buffer); diff --git a/gst/rtp/gstrtpbvdepay.c b/gst/rtp/gstrtpbvdepay.c index 0482382b4f..a0faf83200 100644 --- a/gst/rtp/gstrtpbvdepay.c +++ b/gst/rtp/gstrtpbvdepay.c @@ -176,8 +176,7 @@ gst_rtp_bv_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) } if (outbuf) { - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtpceltdepay.c b/gst/rtp/gstrtpceltdepay.c index 3234c141f5..97c17f013d 100644 --- a/gst/rtp/gstrtpceltdepay.c +++ b/gst/rtp/gstrtpceltdepay.c @@ -260,8 +260,7 @@ gst_rtp_celt_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) GST_TIME_ARGS (GST_BUFFER_PTS (outbuf)), GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf))); - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); gst_rtp_base_depayload_push (depayload, outbuf); } diff --git a/gst/rtp/gstrtpceltpay.c b/gst/rtp/gstrtpceltpay.c index 1d5287ddf7..c4988977ed 100644 --- a/gst/rtp/gstrtpceltpay.c +++ b/gst/rtp/gstrtpceltpay.c @@ -362,8 +362,7 @@ gst_rtp_celt_pay_flush_queued (GstRtpCELTPay * rtpceltpay) gst_buffer_extract (buf, 0, payload, size); payload += size; - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpceltpay), outbuf, buf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (rtpceltpay, outbuf, buf); gst_buffer_unref (buf); } diff --git a/gst/rtp/gstrtpg722depay.c b/gst/rtp/gstrtpg722depay.c index 846251e06f..5a25eef52b 100644 --- a/gst/rtp/gstrtpg722depay.c +++ b/gst/rtp/gstrtpg722depay.c @@ -240,8 +240,7 @@ gst_rtp_g722_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) } if (outbuf) { - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpg722depay), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (rtpg722depay, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtpg723pay.c b/gst/rtp/gstrtpg723pay.c index 2612218a34..cb6dff52a1 100644 --- a/gst/rtp/gstrtpg723pay.c +++ b/gst/rtp/gstrtpg723pay.c @@ -164,8 +164,7 @@ gst_rtp_g723_pay_flush (GstRTPG723Pay * pay) pay->discont = FALSE; } gst_rtp_buffer_unmap (&rtp); - gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, payload_buf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (pay, outbuf, payload_buf); outbuf = gst_buffer_append (outbuf, payload_buf); diff --git a/gst/rtp/gstrtpg726depay.c b/gst/rtp/gstrtpg726depay.c index 41b87bbb00..7af1928aa1 100644 --- a/gst/rtp/gstrtpg726depay.c +++ b/gst/rtp/gstrtpg726depay.c @@ -228,8 +228,7 @@ gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) outbuf = gst_rtp_buffer_get_payload_buffer (rtp); if (!outbuf) goto bad_len; - gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depay, outbuf); } else { guint8 *in, *out, tmp; guint len; @@ -243,8 +242,7 @@ gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) goto bad_len; outbuf = gst_buffer_make_writable (outbuf); - gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depay, outbuf); gst_buffer_map (outbuf, &map, GST_MAP_WRITE); out = map.data; diff --git a/gst/rtp/gstrtpg729depay.c b/gst/rtp/gstrtpg729depay.c index 065da2860c..69c1c4dfc2 100644 --- a/gst/rtp/gstrtpg729depay.c +++ b/gst/rtp/gstrtpg729depay.c @@ -202,8 +202,7 @@ gst_rtp_g729_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); GST_LOG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT, gst_buffer_get_size (outbuf)); diff --git a/gst/rtp/gstrtpg729pay.c b/gst/rtp/gstrtpg729pay.c index f327c8c7e2..378fa64e09 100644 --- a/gst/rtp/gstrtpg729pay.c +++ b/gst/rtp/gstrtpg729pay.c @@ -190,8 +190,7 @@ gst_rtp_g729_pay_push (GstRTPG729Pay * rtpg729pay, GstBuffer * buf) gst_rtp_buffer_unmap (&rtp); /* append payload */ - gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, buf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (basepayload, outbuf, buf); outbuf = gst_buffer_append (outbuf, buf); ret = gst_rtp_base_payload_push (basepayload, outbuf); diff --git a/gst/rtp/gstrtpgsmdepay.c b/gst/rtp/gstrtpgsmdepay.c index ddde3f0e62..c87c61852b 100644 --- a/gst/rtp/gstrtpgsmdepay.c +++ b/gst/rtp/gstrtpgsmdepay.c @@ -138,8 +138,7 @@ gst_rtp_gsm_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) } if (outbuf) { - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtpgsmpay.c b/gst/rtp/gstrtpgsmpay.c index 93888d7950..ce937ff256 100644 --- a/gst/rtp/gstrtpgsmpay.c +++ b/gst/rtp/gstrtpgsmpay.c @@ -151,8 +151,7 @@ gst_rtp_gsm_pay_handle_buffer (GstRTPBasePayload * basepayload, GST_BUFFER_PTS (outbuf) = timestamp; GST_BUFFER_DURATION (outbuf) = duration; - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpgsmpay), outbuf, buffer, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (rtpgsmpay, outbuf, buffer); /* append payload */ outbuf = gst_buffer_append (outbuf, buffer); diff --git a/gst/rtp/gstrtph261depay.c b/gst/rtp/gstrtph261depay.c index e9040c915e..5d372293cf 100644 --- a/gst/rtp/gstrtph261depay.c +++ b/gst/rtp/gstrtph261depay.c @@ -170,8 +170,7 @@ skip: avail = gst_adapter_available (depay->adapter); outbuf = gst_adapter_take_buffer (depay->adapter, avail); - gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (depay, outbuf); /* Note that the I flag does not mean intra frame, but that the entire * stream is intra coded. */ diff --git a/gst/rtp/gstrtph261pay.c b/gst/rtp/gstrtph261pay.c index 4b040be10b..b592d11583 100644 --- a/gst/rtp/gstrtph261pay.c +++ b/gst/rtp/gstrtph261pay.c @@ -850,8 +850,7 @@ gst_rtp_h261_pay_fragment_push (GstRtpH261Pay * pay, GstBuffer * buffer, gst_rtp_buffer_unmap (&rtp); - gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, buffer, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (pay, outbuf, buffer); return gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD_CAST (pay), outbuf); } diff --git a/gst/rtp/gstrtph263depay.c b/gst/rtp/gstrtph263depay.c index 7bc0021e4d..296f917870 100644 --- a/gst/rtp/gstrtph263depay.c +++ b/gst/rtp/gstrtph263depay.c @@ -387,8 +387,7 @@ skip: GST_DEBUG ("Pushing out a buffer of %d bytes", avail); - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph263depay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (rtph263depay, outbuf); gst_rtp_base_depayload_push (depayload, outbuf); rtph263depay->offset = 0; diff --git a/gst/rtp/gstrtph263pay.c b/gst/rtp/gstrtph263pay.c index 3bea9b0ec8..4163bcde85 100644 --- a/gst/rtp/gstrtph263pay.c +++ b/gst/rtp/gstrtph263pay.c @@ -1320,9 +1320,8 @@ gst_rtp_h263_pay_push (GstRtpH263Pay * rtph263pay, gst_buffer_copy_into (package->outbuf, rtph263pay->current_buffer, GST_BUFFER_COPY_MEMORY, package->payload_start - rtph263pay->map.data, package->payload_len); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph263pay), package->outbuf, - rtph263pay->current_buffer, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph263pay, package->outbuf, + rtph263pay->current_buffer); ret = gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtph263pay), diff --git a/gst/rtp/gstrtph263pdepay.c b/gst/rtp/gstrtph263pdepay.c index 82906148b1..a1fc40c4a3 100644 --- a/gst/rtp/gstrtph263pdepay.c +++ b/gst/rtp/gstrtph263pdepay.c @@ -331,8 +331,7 @@ gst_rtp_h263p_depay_process (GstRTPBaseDepayload * depayload, outbuf = gst_buffer_append (outbuf, padbuf); } - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph263pdepay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (rtph263pdepay, outbuf); return outbuf; } else { diff --git a/gst/rtp/gstrtph263ppay.c b/gst/rtp/gstrtph263ppay.c index b9bc45a6d4..a73f00e371 100644 --- a/gst/rtp/gstrtph263ppay.c +++ b/gst/rtp/gstrtph263ppay.c @@ -753,8 +753,7 @@ gst_rtp_h263p_pay_flush (GstRtpH263PPay * rtph263ppay) gst_rtp_buffer_unmap (&rtp); payload_buf = gst_adapter_take_buffer_fast (rtph263ppay->adapter, towrite); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph263ppay), outbuf, payload_buf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph263ppay, outbuf, payload_buf); outbuf = gst_buffer_append (outbuf, payload_buf); avail -= towrite; diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c index 83356cb3d6..e5b8b0306f 100644 --- a/gst/rtp/gstrtph264depay.c +++ b/gst/rtp/gstrtph264depay.c @@ -863,17 +863,14 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal, /* prepend codec_data */ if (rtph264depay->codec_data) { GST_DEBUG_OBJECT (depayload, "prepending codec_data"); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), - rtph264depay->codec_data, outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph264depay, rtph264depay->codec_data, outbuf); outbuf = gst_buffer_append (rtph264depay->codec_data, outbuf); rtph264depay->codec_data = NULL; out_keyframe = TRUE; } outbuf = gst_buffer_make_writable (outbuf); - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (rtph264depay, outbuf); GST_BUFFER_PTS (outbuf) = out_timestamp; @@ -1046,8 +1043,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) memcpy (map.data + sizeof (sync_bytes), payload, nalu_size); gst_buffer_unmap (outbuf, &map); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer); outbuf = gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp, @@ -1128,8 +1124,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) map.data[sizeof (sync_bytes)] = nal_header; gst_buffer_unmap (outbuf, &map); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer); GST_DEBUG_OBJECT (rtph264depay, "queueing %d bytes", outsize); @@ -1144,8 +1139,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) outbuf = gst_buffer_new_and_alloc (outsize); gst_buffer_fill (outbuf, 0, payload, outsize); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer); GST_DEBUG_OBJECT (rtph264depay, "queueing %d bytes", outsize); @@ -1182,8 +1176,7 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) memcpy (map.data + sizeof (sync_bytes), payload, nalu_size); gst_buffer_unmap (outbuf, &map); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph264depay, outbuf, rtp->buffer); outbuf = gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp, marker); diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c index 808eb1d622..0135b4ca41 100644 --- a/gst/rtp/gstrtph264pay.c +++ b/gst/rtp/gstrtph264pay.c @@ -891,8 +891,7 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload, gst_rtp_buffer_unmap (&rtp); /* insert payload memory block */ - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264pay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph264pay, outbuf, paybuf); outbuf = gst_buffer_append (outbuf, paybuf); /* push the buffer to the next element */ @@ -952,8 +951,7 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload, gst_rtp_buffer_unmap (&rtp); /* insert payload memory block */ - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264pay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph264pay, outbuf, paybuf); gst_buffer_copy_into (outbuf, paybuf, GST_BUFFER_COPY_MEMORY, pos, limitedSize); diff --git a/gst/rtp/gstrtph265depay.c b/gst/rtp/gstrtph265depay.c index f139dc0aa8..e31b6e6f78 100644 --- a/gst/rtp/gstrtph265depay.c +++ b/gst/rtp/gstrtph265depay.c @@ -1026,17 +1026,14 @@ gst_rtp_h265_depay_handle_nal (GstRtpH265Depay * rtph265depay, GstBuffer * nal, /* prepend codec_data */ if (rtph265depay->codec_data) { GST_DEBUG_OBJECT (depayload, "prepending codec_data"); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), - rtph265depay->codec_data, outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph265depay, rtph265depay->codec_data, outbuf); outbuf = gst_buffer_append (rtph265depay->codec_data, outbuf); rtph265depay->codec_data = NULL; out_keyframe = TRUE; } outbuf = gst_buffer_make_writable (outbuf); - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (rtph265depay, outbuf); GST_BUFFER_PTS (outbuf) = out_timestamp; @@ -1241,8 +1238,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) memcpy (map.data + sizeof (sync_bytes), payload, nalu_size); gst_buffer_unmap (outbuf, &map); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer); outbuf = gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp, @@ -1338,8 +1334,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) map.data[sizeof (sync_bytes) + 1] = nal_header & 0xff; gst_buffer_unmap (outbuf, &map); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer); GST_DEBUG_OBJECT (rtph265depay, "queueing %d bytes", outsize); @@ -1358,8 +1353,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) outbuf = gst_buffer_new_and_alloc (outsize); gst_buffer_fill (outbuf, 0, payload, outsize); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer); GST_DEBUG_OBJECT (rtph265depay, "queueing %d bytes", outsize); @@ -1404,8 +1398,7 @@ gst_rtp_h265_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) memcpy (map.data + sizeof (sync_bytes), payload, nalu_size); gst_buffer_unmap (outbuf, &map); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265depay), outbuf, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph265depay, outbuf, rtp->buffer); outbuf = gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp, marker); diff --git a/gst/rtp/gstrtph265pay.c b/gst/rtp/gstrtph265pay.c index 6eaf115788..da7b7c6f31 100644 --- a/gst/rtp/gstrtph265pay.c +++ b/gst/rtp/gstrtph265pay.c @@ -1001,8 +1001,7 @@ gst_rtp_h265_pay_payload_nal (GstRTPBasePayload * basepayload, GST_BUFFER_DTS (outbuf) = dts; /* insert payload memory block */ - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265pay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph265pay, outbuf, paybuf); outbuf = gst_buffer_append (outbuf, paybuf); outlist = gst_buffer_list_new (); @@ -1072,8 +1071,7 @@ gst_rtp_h265_pay_payload_nal (GstRTPBasePayload * basepayload, gst_rtp_buffer_unmap (&rtp); /* insert payload memory block */ - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph265pay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtph265pay, outbuf, paybuf); gst_buffer_copy_into (outbuf, paybuf, GST_BUFFER_COPY_MEMORY, pos, limitedSize); /* add the buffer to the buffer list */ diff --git a/gst/rtp/gstrtpilbcdepay.c b/gst/rtp/gstrtpilbcdepay.c index 3df87d8b0d..26de4837d5 100644 --- a/gst/rtp/gstrtpilbcdepay.c +++ b/gst/rtp/gstrtpilbcdepay.c @@ -191,8 +191,7 @@ gst_rtp_ilbc_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) } if (outbuf) { - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtpj2kdepay.c b/gst/rtp/gstrtpj2kdepay.c index 6f1b1b2c26..c30dd34a66 100644 --- a/gst/rtp/gstrtpj2kdepay.c +++ b/gst/rtp/gstrtpj2kdepay.c @@ -431,8 +431,7 @@ gst_rtp_j2k_depay_flush_frame (GstRTPBaseDepayload * depayload) GST_DEBUG_OBJECT (rtpj2kdepay, "pushing buffer of %u bytes", avail); outbuf = gst_adapter_take_buffer (rtpj2kdepay->f_adapter, avail); - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), - outbuf, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (depayload, outbuf); ret = gst_rtp_base_depayload_push (depayload, outbuf); } else { GST_WARNING_OBJECT (rtpj2kdepay, "empty packet"); diff --git a/gst/rtp/gstrtpj2kpay.c b/gst/rtp/gstrtpj2kpay.c index 41e5ea6b54..f1c6c03c22 100644 --- a/gst/rtp/gstrtpj2kpay.c +++ b/gst/rtp/gstrtpj2kpay.c @@ -506,8 +506,7 @@ gst_rtp_j2k_pay_handle_buffer (GstRTPBasePayload * basepayload, /* make subbuffer of j2k data */ paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, data_size); - gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (basepayload, outbuf, paybuf); outbuf = gst_buffer_append (outbuf, paybuf); gst_buffer_list_add (list, outbuf); diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c index c4e2e8ef56..59274f1112 100644 --- a/gst/rtp/gstrtpjpegdepay.c +++ b/gst/rtp/gstrtpjpegdepay.c @@ -721,8 +721,7 @@ gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) rtpjpegdepay->discont = FALSE; } - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpjpegdepay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (rtpjpegdepay, outbuf); GST_DEBUG_OBJECT (rtpjpegdepay, "returning %u bytes", avail); } diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c index 7940cb6c85..fe93016845 100644 --- a/gst/rtp/gstrtpjpegpay.c +++ b/gst/rtp/gstrtpjpegpay.c @@ -895,8 +895,7 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload, jpeg_header_size + offset, payload_size); /* join memory parts */ - gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (pay, outbuf, paybuf); outbuf = gst_buffer_append (outbuf, paybuf); GST_BUFFER_PTS (outbuf) = timestamp; diff --git a/gst/rtp/gstrtpmp4adepay.c b/gst/rtp/gstrtpmp4adepay.c index 5a5f341240..e537d25096 100644 --- a/gst/rtp/gstrtpmp4adepay.c +++ b/gst/rtp/gstrtpmp4adepay.c @@ -394,8 +394,7 @@ gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) avail -= skip; GST_BUFFER_PTS (tmp) = timestamp; - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), tmp, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, tmp); gst_rtp_base_depayload_push (depayload, tmp); /* shift ts for next buffers */ diff --git a/gst/rtp/gstrtpmp4apay.c b/gst/rtp/gstrtpmp4apay.c index 64b4baad87..f822ddf4ba 100644 --- a/gst/rtp/gstrtpmp4apay.c +++ b/gst/rtp/gstrtpmp4apay.c @@ -435,8 +435,7 @@ gst_rtp_mp4a_pay_handle_buffer (GstRTPBasePayload * basepayload, offset, payload_len); /* join memory parts */ - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmp4apay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (rtpmp4apay, outbuf, paybuf); outbuf = gst_buffer_append (outbuf, paybuf); gst_buffer_list_add (list, outbuf); offset += payload_len; diff --git a/gst/rtp/gstrtpmp4vdepay.c b/gst/rtp/gstrtpmp4vdepay.c index 49b6f0f872..c860f88b8d 100644 --- a/gst/rtp/gstrtpmp4vdepay.c +++ b/gst/rtp/gstrtpmp4vdepay.c @@ -187,8 +187,7 @@ gst_rtp_mp4v_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) GST_DEBUG ("gst_rtp_mp4v_depay_chain: pushing buffer of size %" G_GSIZE_FORMAT, gst_buffer_get_size (outbuf)); - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmp4vdepay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (rtpmp4vdepay, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtpmp4vpay.c b/gst/rtp/gstrtpmp4vpay.c index 671f353ef7..5e89fd85c6 100644 --- a/gst/rtp/gstrtpmp4vpay.c +++ b/gst/rtp/gstrtpmp4vpay.c @@ -287,8 +287,7 @@ gst_rtp_mp4v_pay_flush (GstRtpMP4VPay * rtpmp4vpay) gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp); gst_rtp_buffer_set_marker (&rtp, avail == 0); gst_rtp_buffer_unmap (&rtp); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmp4vpay), outbuf, outbuf_data, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtpmp4vpay, outbuf, outbuf_data); outbuf = gst_buffer_append (outbuf, outbuf_data); GST_BUFFER_PTS (outbuf) = rtpmp4vpay->first_timestamp; diff --git a/gst/rtp/gstrtpmpadepay.c b/gst/rtp/gstrtpmpadepay.c index d580770ae5..18506db254 100644 --- a/gst/rtp/gstrtpmpadepay.c +++ b/gst/rtp/gstrtpmpadepay.c @@ -157,8 +157,7 @@ gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) gst_buffer_get_size (outbuf)); if (outbuf) { - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmpadepay), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (rtpmpadepay, outbuf); } /* FIXME, we can push half mpeg frames when they are split over multiple diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c index 6e6054de88..09fa8a8433 100644 --- a/gst/rtp/gstrtpmpapay.c +++ b/gst/rtp/gstrtpmpapay.c @@ -243,8 +243,7 @@ gst_rtp_mpa_pay_flush (GstRtpMPAPay * rtpmpapay) gst_rtp_buffer_unmap (&rtp); paybuf = gst_adapter_take_buffer_fast (rtpmpapay->adapter, payload_len); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmpapay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (rtpmpapay, outbuf, paybuf); outbuf = gst_buffer_append (outbuf, paybuf); GST_BUFFER_PTS (outbuf) = rtpmpapay->first_ts; diff --git a/gst/rtp/gstrtpmpvdepay.c b/gst/rtp/gstrtpmpvdepay.c index 81b5e22709..973194605e 100644 --- a/gst/rtp/gstrtpmpvdepay.c +++ b/gst/rtp/gstrtpmpvdepay.c @@ -174,8 +174,7 @@ gst_rtp_mpv_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) GST_DEBUG_OBJECT (rtpmpvdepay, "gst_rtp_mpv_depay_chain: pushing buffer of size %" G_GSIZE_FORMAT, gst_buffer_get_size (outbuf)); - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmpvdepay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (rtpmpvdepay, outbuf); } } diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c index d16b3a0094..4c4de5dbec 100644 --- a/gst/rtp/gstrtpmpvpay.c +++ b/gst/rtp/gstrtpmpvpay.c @@ -228,8 +228,7 @@ gst_rtp_mpv_pay_flush (GstRTPMPVPay * rtpmpvpay) gst_rtp_buffer_unmap (&rtp); paybuf = gst_adapter_take_buffer_fast (rtpmpvpay->adapter, payload_len); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmpvpay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtpmpvpay, outbuf, paybuf); outbuf = gst_buffer_append (outbuf, paybuf); GST_BUFFER_PTS (outbuf) = rtpmpvpay->first_ts; diff --git a/gst/rtp/gstrtppcmadepay.c b/gst/rtp/gstrtppcmadepay.c index 6927962e29..476a20aadd 100644 --- a/gst/rtp/gstrtppcmadepay.c +++ b/gst/rtp/gstrtppcmadepay.c @@ -150,8 +150,7 @@ gst_rtp_pcma_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtppcmudepay.c b/gst/rtp/gstrtppcmudepay.c index a15aa1b313..1a06d187af 100644 --- a/gst/rtp/gstrtppcmudepay.c +++ b/gst/rtp/gstrtppcmudepay.c @@ -151,8 +151,7 @@ gst_rtp_pcmu_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC); } - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtpqcelpdepay.c b/gst/rtp/gstrtpqcelpdepay.c index 924d71effb..cb5d9eb95b 100644 --- a/gst/rtp/gstrtpqcelpdepay.c +++ b/gst/rtp/gstrtpqcelpdepay.c @@ -357,8 +357,7 @@ gst_rtp_qcelp_depay_process (GstRTPBaseDepayload * depayload, GST_BUFFER_PTS (outbuf) = timestamp; GST_BUFFER_DURATION (outbuf) = FRAME_DURATION; - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); if (!depay->interleaved || index == 0) { /* not interleaved or first frame in packet, just push */ diff --git a/gst/rtp/gstrtpsbcdepay.c b/gst/rtp/gstrtpsbcdepay.c index 02407b5c05..4d41515b37 100644 --- a/gst/rtp/gstrtpsbcdepay.c +++ b/gst/rtp/gstrtpsbcdepay.c @@ -245,8 +245,7 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstRTPBuffer * rtp) if (last) { data = gst_adapter_take_buffer (depay->adapter, gst_adapter_available (depay->adapter)); - gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), data, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depay, data); } else data = NULL; diff --git a/gst/rtp/gstrtpsbcpay.c b/gst/rtp/gstrtpsbcpay.c index 794a817ed8..d04aaf296f 100644 --- a/gst/rtp/gstrtpsbcpay.c +++ b/gst/rtp/gstrtpsbcpay.c @@ -212,8 +212,7 @@ gst_rtp_sbc_pay_flush_buffers (GstRtpSBCPay * sbcpay) gst_rtp_buffer_unmap (&rtp); paybuf = gst_adapter_take_buffer_fast (sbcpay->adapter, payload_length); - gst_rtp_copy_meta (GST_ELEMENT_CAST (sbcpay), outbuf, paybuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (sbcpay, outbuf, paybuf); outbuf = gst_buffer_append (outbuf, paybuf); GST_BUFFER_PTS (outbuf) = sbcpay->last_timestamp; diff --git a/gst/rtp/gstrtpsirendepay.c b/gst/rtp/gstrtpsirendepay.c index 15b7109502..f227268107 100644 --- a/gst/rtp/gstrtpsirendepay.c +++ b/gst/rtp/gstrtpsirendepay.c @@ -111,8 +111,7 @@ gst_rtp_siren_depay_process (GstRTPBaseDepayload * depayload, outbuf = gst_rtp_buffer_get_payload_buffer (rtp); if (outbuf) { - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtpspeexdepay.c b/gst/rtp/gstrtpspeexdepay.c index a6f389eede..a2c987bd60 100644 --- a/gst/rtp/gstrtpspeexdepay.c +++ b/gst/rtp/gstrtpspeexdepay.c @@ -212,8 +212,7 @@ gst_rtp_speex_depay_process (GstRTPBaseDepayload * depayload, if (outbuf) { GST_BUFFER_DURATION (outbuf) = 20 * GST_MSECOND; - gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_drop_non_audio_meta (depayload, outbuf); } return outbuf; diff --git a/gst/rtp/gstrtpspeexpay.c b/gst/rtp/gstrtpspeexpay.c index 8dcd1f194e..7816bd63cd 100644 --- a/gst/rtp/gstrtpspeexpay.c +++ b/gst/rtp/gstrtpspeexpay.c @@ -289,8 +289,7 @@ gst_rtp_speex_pay_handle_buffer (GstRTPBasePayload * basepayload, GST_BUFFER_PTS (outbuf) = timestamp; GST_BUFFER_DURATION (outbuf) = duration; - gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, buffer, - g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (basepayload, outbuf, buffer); outbuf = gst_buffer_append (outbuf, buffer); buffer = NULL; diff --git a/gst/rtp/gstrtpsv3vdepay.c b/gst/rtp/gstrtpsv3vdepay.c index 932eb1e647..3d091c2b8c 100644 --- a/gst/rtp/gstrtpsv3vdepay.c +++ b/gst/rtp/gstrtpsv3vdepay.c @@ -265,8 +265,7 @@ gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp) avail = gst_adapter_available (rtpsv3vdepay->adapter); GST_DEBUG ("Returning completed output buffer [%d bytes]", avail); outbuf = gst_adapter_take_buffer (rtpsv3vdepay->adapter, avail); - gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpsv3vdepay), outbuf, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (rtpsv3vdepay, outbuf); } } diff --git a/gst/rtp/gstrtptheorapay.c b/gst/rtp/gstrtptheorapay.c index b6c5bde2dd..f9839bced5 100644 --- a/gst/rtp/gstrtptheorapay.c +++ b/gst/rtp/gstrtptheorapay.c @@ -335,8 +335,7 @@ gst_rtp_theora_pay_flush_packet (GstRtpTheoraPay * rtptheorapay) for (l = g_list_last (rtptheorapay->packet_buffers); l; l = l->prev) { GstBuffer *buf = GST_BUFFER_CAST (l->data); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtptheorapay), rtptheorapay->packet, - buf, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtptheorapay, rtptheorapay->packet, buf); gst_buffer_unref (buf); } g_list_free (rtptheorapay->packet_buffers); diff --git a/gst/rtp/gstrtputils.c b/gst/rtp/gstrtputils.c index 28735af110..044d1b30a1 100644 --- a/gst/rtp/gstrtputils.c +++ b/gst/rtp/gstrtputils.c @@ -26,6 +26,9 @@ typedef struct GQuark copy_tag; } CopyMetaData; +GQuark rtp_quark_meta_tag_video; +GQuark rtp_quark_meta_tag_audio; + static gboolean foreach_metadata_copy (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data) { @@ -61,6 +64,20 @@ gst_rtp_copy_meta (GstElement * element, GstBuffer * outbuf, GstBuffer * inbuf, gst_buffer_foreach_meta (inbuf, foreach_metadata_copy, &data); } +void +gst_rtp_copy_video_meta (gpointer element, GstBuffer * outbuf, + GstBuffer * inbuf) +{ + gst_rtp_copy_meta (element, outbuf, inbuf, rtp_quark_meta_tag_video); +} + +void +gst_rtp_copy_audio_meta (gpointer element, GstBuffer * outbuf, + GstBuffer * inbuf) +{ + gst_rtp_copy_meta (element, outbuf, inbuf, rtp_quark_meta_tag_audio); +} + typedef struct { GstElement *element; @@ -96,6 +113,18 @@ gst_rtp_drop_meta (GstElement * element, GstBuffer * buf, GQuark keep_tag) gst_buffer_foreach_meta (buf, foreach_metadata_drop, &data); } +void +gst_rtp_drop_non_audio_meta (gpointer element, GstBuffer * buf) +{ + gst_rtp_drop_meta (element, buf, rtp_quark_meta_tag_audio); +} + +void +gst_rtp_drop_non_video_meta (gpointer element, GstBuffer * buf) +{ + gst_rtp_drop_meta (element, buf, rtp_quark_meta_tag_video); +} + /* Stolen from bad/gst/mpegtsdemux/payloader_parsers.c */ /* variable length Exp-Golomb parsing according to H.265 spec section 9.2*/ gboolean diff --git a/gst/rtp/gstrtputils.h b/gst/rtp/gstrtputils.h index 3910aeb992..d5195f2133 100644 --- a/gst/rtp/gstrtputils.h +++ b/gst/rtp/gstrtputils.h @@ -28,12 +28,27 @@ G_BEGIN_DECLS G_GNUC_INTERNAL void gst_rtp_copy_meta (GstElement * element, GstBuffer *outbuf, GstBuffer *inbuf, GQuark copy_tag); +G_GNUC_INTERNAL +void gst_rtp_copy_audio_meta (gpointer element, GstBuffer *outbuf, GstBuffer *inbuf); + +G_GNUC_INTERNAL +void gst_rtp_copy_video_meta (gpointer element, GstBuffer *outbuf, GstBuffer *inbuf); + G_GNUC_INTERNAL void gst_rtp_drop_meta (GstElement * element, GstBuffer *buf, GQuark keep_tag); +G_GNUC_INTERNAL +void gst_rtp_drop_non_audio_meta (gpointer element, GstBuffer * buf); + +G_GNUC_INTERNAL +void gst_rtp_drop_non_video_meta (gpointer element, GstBuffer * buf); + G_GNUC_INTERNAL gboolean gst_rtp_read_golomb (GstBitReader * br, guint32 * value); +G_GNUC_INTERNAL extern GQuark rtp_quark_meta_tag_video; +G_GNUC_INTERNAL extern GQuark rtp_quark_meta_tag_audio; + G_END_DECLS #endif /* __GST_RTP_UTILS_H__ */ diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c index 24c8fbb12c..b6bb507e95 100644 --- a/gst/rtp/gstrtpvorbispay.c +++ b/gst/rtp/gstrtpvorbispay.c @@ -330,8 +330,7 @@ gst_rtp_vorbis_pay_flush_packet (GstRtpVorbisPay * rtpvorbispay) for (l = g_list_last (rtpvorbispay->packet_buffers); l; l = l->prev) { GstBuffer *buf = GST_BUFFER_CAST (l->data); - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvorbispay), rtpvorbispay->packet, - buf, g_quark_from_static_string (GST_META_TAG_AUDIO_STR)); + gst_rtp_copy_audio_meta (rtpvorbispay, rtpvorbispay->packet, buf); gst_buffer_unref (buf); } g_list_free (rtpvorbispay->packet_buffers); diff --git a/gst/rtp/gstrtpvp8depay.c b/gst/rtp/gstrtpvp8depay.c index 9fb631a8c9..7c0d707d04 100644 --- a/gst/rtp/gstrtpvp8depay.c +++ b/gst/rtp/gstrtpvp8depay.c @@ -186,8 +186,7 @@ gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstRTPBuffer * rtp) /* mark keyframes */ out = gst_buffer_make_writable (out); /* Filter away all metas that are not sensible to copy */ - gst_rtp_drop_meta (GST_ELEMENT_CAST (self), out, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (self, out); if ((header[0] & 0x01)) { GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_DELTA_UNIT); diff --git a/gst/rtp/gstrtpvp8pay.c b/gst/rtp/gstrtpvp8pay.c index c5494d0bc7..9649502086 100644 --- a/gst/rtp/gstrtpvp8pay.c +++ b/gst/rtp/gstrtpvp8pay.c @@ -439,8 +439,8 @@ gst_rtp_vp8_payload_next (GstRtpVP8Pay * self, GstBufferList * list, offset == self->partition_offset[partition], mark, buffer); sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, available); - gst_rtp_copy_meta (GST_ELEMENT_CAST (self), header, buffer, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (self, header, buffer); + out = gst_buffer_append (header, sub); gst_buffer_list_insert (list, -1, out); diff --git a/gst/rtp/gstrtpvp9depay.c b/gst/rtp/gstrtpvp9depay.c index 15cf9e29f4..c61affca55 100644 --- a/gst/rtp/gstrtpvp9depay.c +++ b/gst/rtp/gstrtpvp9depay.c @@ -275,8 +275,7 @@ gst_rtp_vp9_depay_process (GstRTPBaseDepayload * depay, GstRTPBuffer * rtp) /* mark keyframes */ out = gst_buffer_make_writable (out); /* Filter away all metas that are not sensible to copy */ - gst_rtp_drop_meta (GST_ELEMENT_CAST (self), out, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_drop_non_video_meta (self, out); if (!key_frame_first_layer) { GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_DELTA_UNIT); diff --git a/gst/rtp/gstrtpvp9pay.c b/gst/rtp/gstrtpvp9pay.c index 945affbce0..a0b01e1b42 100644 --- a/gst/rtp/gstrtpvp9pay.c +++ b/gst/rtp/gstrtpvp9pay.c @@ -454,8 +454,8 @@ gst_rtp_vp9_payload_next (GstRtpVP9Pay * self, GstBufferList * list, header = gst_rtp_vp9_create_header_buffer (self, offset == 0, mark, buffer); sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, available); - gst_rtp_copy_meta (GST_ELEMENT_CAST (self), header, buffer, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (self, header, buffer); + out = gst_buffer_append (header, sub); gst_buffer_list_insert (list, -1, out); diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c index 28848fbf01..a02bb519c1 100644 --- a/gst/rtp/gstrtpvrawdepay.c +++ b/gst/rtp/gstrtpvrawdepay.c @@ -409,8 +409,7 @@ gst_rtp_vraw_depay_process_packet (GstRTPBaseDepayload * depayload, /* remember header position */ headers = payload; - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvrawdepay), frame->buffer, - rtp->buffer, g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); + gst_rtp_copy_video_meta (rtpvrawdepay, frame->buffer, rtp->buffer); /* find data start */ do { diff --git a/gst/rtp/gstrtpvrawpay.c b/gst/rtp/gstrtpvrawpay.c index 9368936b14..50a482066e 100644 --- a/gst/rtp/gstrtpvrawpay.c +++ b/gst/rtp/gstrtpvrawpay.c @@ -560,9 +560,7 @@ gst_rtp_vraw_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer) gst_buffer_resize (out, 0, gst_buffer_get_size (out) - left); } - gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvrawpay), out, buffer, - g_quark_from_static_string (GST_META_TAG_VIDEO_STR)); - + gst_rtp_copy_video_meta (rtpvrawpay, out, buffer); /* Now either push out the buffer directly */ if (!use_buffer_lists) {