mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 17:20:36 +00:00
rtspsrc: Implement ONVIF backchannel support via TCP
This commit is contained in:
parent
befa41cdf6
commit
7512120e5d
1 changed files with 42 additions and 3 deletions
|
@ -2851,9 +2851,48 @@ gst_rtspsrc_push_backchannel_buffer (GstRTSPSrc * src, guint id,
|
|||
goto out;
|
||||
}
|
||||
|
||||
g_signal_emit_by_name (stream->rtpsrc, "push-sample", sample, &res);
|
||||
GST_DEBUG_OBJECT (src, "sent backchannel RTP sample %p: %s", sample,
|
||||
gst_flow_get_name (res));
|
||||
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);
|
||||
|
||||
if (stream->conninfo.connection)
|
||||
conninfo = &stream->conninfo;
|
||||
else
|
||||
conninfo = &src->conninfo;
|
||||
|
||||
GST_DEBUG_OBJECT (src, "sending %u bytes backchannel RTP", size);
|
||||
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);
|
||||
GST_DEBUG_OBJECT (src, "sent backchannel RTP sample %p: %s", sample,
|
||||
gst_flow_get_name (res));
|
||||
}
|
||||
|
||||
out:
|
||||
gst_sample_unref (sample);
|
||||
|
|
Loading…
Reference in a new issue