stream-transport: add method to handle RTP/RTCP

Call new methods instead of poking into the structures directly.
This commit is contained in:
Wim Taymans 2012-11-12 17:06:42 +01:00
parent 883cf794e4
commit 75473fc88d
3 changed files with 53 additions and 4 deletions

View file

@ -170,3 +170,49 @@ gst_rtsp_stream_transport_set_transport (GstRTSPStreamTransport * trans,
gst_rtsp_transport_free (trans->transport);
trans->transport = tr;
}
/**
* gst_rtsp_stream_transport_send_rtp:
* @trans: a #GstRTSPStreamTransport
* @buffer: a #GstBuffer
*
* Send @buffer to the installed RTP callback for @trans.
*
* Returns: %TRUE on success
*/
gboolean
gst_rtsp_stream_transport_send_rtp (GstRTSPStreamTransport * trans,
GstBuffer * buffer)
{
gboolean res = FALSE;
if (trans->send_rtp)
res =
trans->send_rtp (buffer, trans->transport->interleaved.min,
trans->user_data);
return res;
}
/**
* gst_rtsp_stream_transport_send_rtcp:
* @trans: a #GstRTSPStreamTransport
* @buffer: a #GstBuffer
*
* Send @buffer to the installed RTCP callback for @trans.
*
* Returns: %TRUE on success
*/
gboolean
gst_rtsp_stream_transport_send_rtcp (GstRTSPStreamTransport * trans,
GstBuffer * buffer)
{
gboolean res = FALSE;
if (trans->send_rtcp)
res =
trans->send_rtcp (buffer, trans->transport->interleaved.max,
trans->user_data);
return res;
}

View file

@ -105,6 +105,11 @@ void gst_rtsp_stream_transport_set_keepalive (GstRTSPStreamT
gpointer user_data,
GDestroyNotify notify);
gboolean gst_rtsp_stream_transport_send_rtp (GstRTSPStreamTransport *trans,
GstBuffer *buffer);
gboolean gst_rtsp_stream_transport_send_rtcp (GstRTSPStreamTransport *trans,
GstBuffer *buffer);
G_END_DECLS
#endif /* __GST_RTSP_STREAM_TRANSPORT_H__ */

View file

@ -524,11 +524,9 @@ handle_new_sample (GstAppSink * sink, gpointer user_data)
GstRTSPStreamTransport *tr = (GstRTSPStreamTransport *) walk->data;
if (GST_ELEMENT_CAST (sink) == stream->appsink[0]) {
if (tr->send_rtp)
tr->send_rtp (buffer, tr->transport->interleaved.min, tr->user_data);
gst_rtsp_stream_transport_send_rtp (tr, buffer);
} else {
if (tr->send_rtcp)
tr->send_rtcp (buffer, tr->transport->interleaved.max, tr->user_data);
gst_rtsp_stream_transport_send_rtcp (tr, buffer);
}
}
gst_sample_unref (sample);