summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-06-30 10:37:27 +0200
committerSebastian Dröge <sebastian@centricular.com>2015-06-30 10:39:01 +0200
commit353fb82ea18b7b4d100188b81211aee0a213b6ea (patch)
tree579dbbd80f06923075e13628a7fb27d0684f7d82 /gst-libs
parent49d00834567eb311a34e18765d1768d992b7bf34 (diff)
rtpbaseaudiopayload: Don't copy memory if not needed, just append payload to the RTP buffer
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/rtp/gstrtpbaseaudiopayload.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c
index b1bedf1d2..0e5ed8a61 100644
--- a/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c
+++ b/gst-libs/gst/rtp/gstrtpbaseaudiopayload.c
@@ -484,7 +484,6 @@ gst_rtp_base_audio_payload_push_buffer (GstRTPBaseAudioPayload *
GstRTPBasePayload *basepayload;
GstRTPBaseAudioPayloadPrivate *priv;
GstBuffer *outbuf;
- guint8 *payload;
guint payload_len;
GstFlowReturn ret;
@@ -496,13 +495,8 @@ gst_rtp_base_audio_payload_push_buffer (GstRTPBaseAudioPayload *
GST_DEBUG_OBJECT (baseaudiopayload, "Pushing %d bytes ts %" GST_TIME_FORMAT,
payload_len, GST_TIME_ARGS (timestamp));
- if (priv->buffer_list) {
- /* create just the RTP header buffer */
- outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
- } else {
- /* create buffer to hold the payload */
- outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0);
- }
+ /* create just the RTP header buffer */
+ outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
/* set metadata */
gst_rtp_base_audio_payload_set_meta (baseaudiopayload, outbuf, payload_len,
@@ -525,15 +519,8 @@ gst_rtp_base_audio_payload_push_buffer (GstRTPBaseAudioPayload *
GST_DEBUG_OBJECT (baseaudiopayload, "Pushing list %p", list);
ret = gst_rtp_base_payload_push_list (basepayload, list);
} else {
- GstRTPBuffer rtp = { NULL };
-
/* copy payload */
- gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
- payload = gst_rtp_buffer_get_payload (&rtp);
- gst_buffer_extract (buffer, 0, payload, payload_len);
- gst_rtp_buffer_unmap (&rtp);
-
- gst_buffer_unref (buffer);
+ outbuf = gst_buffer_append (outbuf, buffer);
GST_DEBUG_OBJECT (baseaudiopayload, "Pushing buffer %p", outbuf);
ret = gst_rtp_base_payload_push (basepayload, outbuf);