diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2015-06-30 10:37:27 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-06-30 10:39:01 +0200 |
commit | 353fb82ea18b7b4d100188b81211aee0a213b6ea (patch) | |
tree | 579dbbd80f06923075e13628a7fb27d0684f7d82 /gst-libs | |
parent | 49d00834567eb311a34e18765d1768d992b7bf34 (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.c | 19 |
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); |