summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2017-05-24 12:57:10 +0100
committerTim-Philipp Müller <tim@centricular.com>2017-05-24 13:32:10 +0100
commit4a28e649c3cd45969e9a5d0cef128dcf48107d60 (patch)
treefa92d2d24a95c5de28de6420ead11bb680a3acdb
parent810c0bb0845a4251bf6db341ee58f119c8129b89 (diff)
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.
-rw-r--r--gst/rtp/gstrtp.c7
-rw-r--r--gst/rtp/gstrtpL16depay.c3
-rw-r--r--gst/rtp/gstrtpL24depay.c3
-rw-r--r--gst/rtp/gstrtpac3depay.c3
-rw-r--r--gst/rtp/gstrtpac3pay.c4
-rw-r--r--gst/rtp/gstrtpamrdepay.c3
-rw-r--r--gst/rtp/gstrtpamrpay.c3
-rw-r--r--gst/rtp/gstrtpbvdepay.c3
-rw-r--r--gst/rtp/gstrtpceltdepay.c3
-rw-r--r--gst/rtp/gstrtpceltpay.c3
-rw-r--r--gst/rtp/gstrtpg722depay.c3
-rw-r--r--gst/rtp/gstrtpg723pay.c3
-rw-r--r--gst/rtp/gstrtpg726depay.c6
-rw-r--r--gst/rtp/gstrtpg729depay.c3
-rw-r--r--gst/rtp/gstrtpg729pay.c3
-rw-r--r--gst/rtp/gstrtpgsmdepay.c3
-rw-r--r--gst/rtp/gstrtpgsmpay.c3
-rw-r--r--gst/rtp/gstrtph261depay.c3
-rw-r--r--gst/rtp/gstrtph261pay.c3
-rw-r--r--gst/rtp/gstrtph263depay.c3
-rw-r--r--gst/rtp/gstrtph263pay.c5
-rw-r--r--gst/rtp/gstrtph263pdepay.c3
-rw-r--r--gst/rtp/gstrtph263ppay.c3
-rw-r--r--gst/rtp/gstrtph264depay.c19
-rw-r--r--gst/rtp/gstrtph264pay.c6
-rw-r--r--gst/rtp/gstrtph265depay.c19
-rw-r--r--gst/rtp/gstrtph265pay.c6
-rw-r--r--gst/rtp/gstrtpilbcdepay.c3
-rw-r--r--gst/rtp/gstrtpj2kdepay.c3
-rw-r--r--gst/rtp/gstrtpj2kpay.c3
-rw-r--r--gst/rtp/gstrtpjpegdepay.c3
-rw-r--r--gst/rtp/gstrtpjpegpay.c3
-rw-r--r--gst/rtp/gstrtpmp4adepay.c3
-rw-r--r--gst/rtp/gstrtpmp4apay.c3
-rw-r--r--gst/rtp/gstrtpmp4vdepay.c3
-rw-r--r--gst/rtp/gstrtpmp4vpay.c3
-rw-r--r--gst/rtp/gstrtpmpadepay.c3
-rw-r--r--gst/rtp/gstrtpmpapay.c3
-rw-r--r--gst/rtp/gstrtpmpvdepay.c3
-rw-r--r--gst/rtp/gstrtpmpvpay.c3
-rw-r--r--gst/rtp/gstrtppcmadepay.c3
-rw-r--r--gst/rtp/gstrtppcmudepay.c3
-rw-r--r--gst/rtp/gstrtpqcelpdepay.c3
-rw-r--r--gst/rtp/gstrtpsbcdepay.c3
-rw-r--r--gst/rtp/gstrtpsbcpay.c3
-rw-r--r--gst/rtp/gstrtpsirendepay.c3
-rw-r--r--gst/rtp/gstrtpspeexdepay.c3
-rw-r--r--gst/rtp/gstrtpspeexpay.c3
-rw-r--r--gst/rtp/gstrtpsv3vdepay.c3
-rw-r--r--gst/rtp/gstrtptheorapay.c3
-rw-r--r--gst/rtp/gstrtputils.c29
-rw-r--r--gst/rtp/gstrtputils.h15
-rw-r--r--gst/rtp/gstrtpvorbispay.c3
-rw-r--r--gst/rtp/gstrtpvp8depay.c3
-rw-r--r--gst/rtp/gstrtpvp8pay.c4
-rw-r--r--gst/rtp/gstrtpvp9depay.c3
-rw-r--r--gst/rtp/gstrtpvp9pay.c4
-rw-r--r--gst/rtp/gstrtpvrawdepay.c3
-rw-r--r--gst/rtp/gstrtpvrawpay.c4
59 files changed, 124 insertions, 142 deletions
diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c
index 10fdbca1c..186cf9ce7 100644
--- a/gst/rtp/gstrtp.c
+++ b/gst/rtp/gstrtp.c
@@ -23,6 +23,8 @@
#include <gst/tag/tag.h>
+#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 6e81946d9..601f16edc 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 9ec03499f..8b28ee831 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 50342c8d7..ec2b3baa1 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 021016def..57020dc4b 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 1c87a1a6e..7a7c79757 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 300be8f80..5e70f0a44 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 0482382b4..a0faf8320 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 3234c141f..97c17f013 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 1d5287ddf..c4988977e 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 846251e06..5a25eef52 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 2612218a3..cb6dff52a 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 41b87bbb0..7af1928aa 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 065da2860..69c1c4dfc 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 f327c8c7e..378fa64e0 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 ddde3f0e6..c87c61852 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 93888d795..ce937ff25 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 e9040c915..5d372293c 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 4b040be10..b592d1158 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 7bc0021e4..296f91787 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 3bea9b0ec..4163bcde8 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 82906148b..a1fc40c4a 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 b9bc45a6d..a73f00e37 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 83356cb3d..e5b8b0306 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 808eb1d62..0135b4ca4 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 f139dc0aa..e31b6e6f7 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 6eaf11578..da7b7c6f3 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 3df87d8b0..26de4837d 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 6f1b1b2c2..c30dd34a6 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 41e5ea6b5..f1c6c03c2 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 c4e2e8ef5..59274f111 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 7940cb6c8..fe9301684 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 5a5f34124..e537d2509 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 64b4baad8..f822ddf4b 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 49b6f0f87..c860f88b8 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 671f353ef..5e89fd85c 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 d580770ae..18506db25 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 6e6054de8..09fa8a843 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 81b5e2270..973194605 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 d16b3a009..4c4de5dbe 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 6927962e2..476a20aad 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 a15aa1b31..1a06d187a 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 924d71eff..cb5d9eb95 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 02407b5c0..4d41515b3 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 794a817ed..d04aaf296 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 15b710950..f22726810 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 a6f389eed..a2c987bd6 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 8dcd1f194..7816bd63c 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 932eb1e64..3d091c2b8 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 b6c5bde2d..f9839bced 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 28735af11..044d1b30a 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 3910aeb99..d5195f213 100644
--- a/gst/rtp/gstrtputils.h
+++ b/gst/rtp/gstrtputils.h
@@ -29,11 +29,26 @@ 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 24c8fbb12..b6bb507e9 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 9fb631a8c..7c0d707d0 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 c5494d0bc..964950208 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 15cf9e29f..c61affca5 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 945affbce..a0b01e1b4 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 28848fbf0..a02bb519c 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 9368936b1..50a482066 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) {