From 86ec5c1031cab9e5fc51580d334c393a14ca43f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 5 Aug 2019 19:35:36 +0300 Subject: [PATCH] rtspsrc: Use new GstRTSPMessage API to set message body from a buffer directly --- gst/rtsp/gstrtspsrc.c | 33 ++++++--------------------------- 1 file changed, 6 insertions(+), 27 deletions(-) diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index e058b912b0..b3b3aa0bda 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -3088,9 +3088,6 @@ gst_rtspsrc_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) GstRTSPSrc *src; GstRTSPStream *stream; GstFlowReturn res = GST_FLOW_OK; - GstMapInfo map; - guint8 *data; - guint size; GstRTSPResult ret; GstRTSPMessage message = { 0 }; GstRTSPConnInfo *conninfo; @@ -3098,30 +3095,23 @@ gst_rtspsrc_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer) stream = (GstRTSPStream *) gst_pad_get_element_private (pad); src = stream->parent; - gst_buffer_map (buffer, &map, GST_MAP_READ); - size = map.size; - data = map.data; - gst_rtsp_message_init_data (&message, stream->channel[1]); /* lend the body data to the message */ - gst_rtsp_message_take_body (&message, data, size); + gst_rtsp_message_set_body_buffer (&message, buffer); if (stream->conninfo.connection) conninfo = &stream->conninfo; else conninfo = &src->conninfo; - GST_DEBUG_OBJECT (src, "sending %u bytes RTCP", size); + GST_DEBUG_OBJECT (src, "sending %u bytes RTCP", + (guint) gst_buffer_get_size (buffer)); ret = gst_rtspsrc_connection_send (src, conninfo, &message, NULL); GST_DEBUG_OBJECT (src, "sent RTCP, %d", ret); - /* and steal it away again because we will free it when unreffing the - * buffer */ - gst_rtsp_message_steal_body (&message, &data, &size); gst_rtsp_message_unset (&message); - gst_buffer_unmap (buffer, &map); gst_buffer_unref (buffer); return res; @@ -3145,40 +3135,29 @@ gst_rtspsrc_push_backchannel_buffer (GstRTSPSrc * src, guint id, if (src->interleaved) { GstBuffer *buffer; - GstMapInfo map; - guint8 *data; - guint size; GstRTSPResult ret; GstRTSPMessage message = { 0 }; GstRTSPConnInfo *conninfo; buffer = gst_sample_get_buffer (sample); - gst_buffer_map (buffer, &map, GST_MAP_READ); - size = map.size; - data = map.data; - gst_rtsp_message_init_data (&message, stream->channel[0]); /* lend the body data to the message */ - gst_rtsp_message_take_body (&message, data, size); + gst_rtsp_message_set_body_buffer (&message, buffer); if (stream->conninfo.connection) conninfo = &stream->conninfo; else conninfo = &src->conninfo; - GST_DEBUG_OBJECT (src, "sending %u bytes backchannel RTP", size); + GST_DEBUG_OBJECT (src, "sending %u bytes backchannel RTP", + (guint) gst_buffer_get_size (buffer)); ret = gst_rtspsrc_connection_send (src, conninfo, &message, NULL); GST_DEBUG_OBJECT (src, "sent backchannel RTP, %d", ret); - /* and steal it away again because we will free it when unreffing the - * buffer */ - gst_rtsp_message_steal_body (&message, &data, &size); gst_rtsp_message_unset (&message); - gst_buffer_unmap (buffer, &map); - res = GST_FLOW_OK; } else { g_signal_emit_by_name (stream->rtpsrc, "push-sample", sample, &res);