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) {