mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
source: small cleanups
This commit is contained in:
parent
566b0dce40
commit
c795b72988
2 changed files with 10 additions and 20 deletions
|
@ -1176,34 +1176,24 @@ rtp_source_send_rtp (RTPSource * src, gpointer data, gboolean is_list,
|
|||
guint32 rtptime;
|
||||
guint64 ext_rtptime;
|
||||
guint64 rt_diff, rtp_diff;
|
||||
GstBufferList *list = NULL;
|
||||
GstBuffer *buffer = NULL;
|
||||
guint packets;
|
||||
GstRTPBuffer rtp = { NULL };
|
||||
|
||||
g_return_val_if_fail (RTP_IS_SOURCE (src), GST_FLOW_ERROR);
|
||||
g_return_val_if_fail (is_list || GST_IS_BUFFER (data), GST_FLOW_ERROR);
|
||||
|
||||
if (is_list) {
|
||||
list = GST_BUFFER_LIST_CAST (data);
|
||||
|
||||
/* We can grab the caps from the first group, since all
|
||||
* groups of a buffer list have same caps. */
|
||||
buffer = gst_buffer_list_get (list, 0);
|
||||
if (!buffer)
|
||||
goto no_buffer;
|
||||
} else {
|
||||
buffer = GST_BUFFER_CAST (data);
|
||||
}
|
||||
|
||||
/* we are a sender now */
|
||||
src->is_sender = TRUE;
|
||||
|
||||
if (is_list) {
|
||||
GstBufferList *list = GST_BUFFER_LIST_CAST (data);
|
||||
gint i;
|
||||
|
||||
/* Each group makes up a network packet. */
|
||||
packets = gst_buffer_list_length (list);
|
||||
if (packets == 0)
|
||||
goto no_buffer;
|
||||
|
||||
for (i = 0, len = 0; i < packets; i++) {
|
||||
if (!gst_rtp_buffer_map (gst_buffer_list_get (list, i), GST_MAP_READ,
|
||||
&rtp))
|
||||
|
@ -1215,6 +1205,7 @@ rtp_source_send_rtp (RTPSource * src, gpointer data, gboolean is_list,
|
|||
/* subsequent info taken from first list member */
|
||||
gst_rtp_buffer_map (gst_buffer_list_get (list, 0), GST_MAP_READ, &rtp);
|
||||
} else {
|
||||
GstBuffer *buffer = GST_BUFFER_CAST (data);
|
||||
packets = 1;
|
||||
if (!gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp))
|
||||
goto invalid_packet;
|
||||
|
@ -1230,6 +1221,8 @@ rtp_source_send_rtp (RTPSource * src, gpointer data, gboolean is_list,
|
|||
do_bitrate_estimation (src, running_time, &src->bytes_sent);
|
||||
|
||||
rtptime = gst_rtp_buffer_get_timestamp (&rtp);
|
||||
gst_rtp_buffer_unmap (&rtp);
|
||||
|
||||
ext_rtptime = src->last_rtptime;
|
||||
ext_rtptime = gst_rtp_buffer_ext_timestamp (&ext_rtptime, rtptime);
|
||||
|
||||
|
@ -1253,11 +1246,8 @@ rtp_source_send_rtp (RTPSource * src, gpointer data, gboolean is_list,
|
|||
src->last_rtptime = ext_rtptime;
|
||||
|
||||
/* push packet */
|
||||
if (!src->callbacks.push_rtp) {
|
||||
gst_rtp_buffer_unmap (&rtp);
|
||||
if (!src->callbacks.push_rtp)
|
||||
goto no_callback;
|
||||
}
|
||||
gst_rtp_buffer_unmap (&rtp);
|
||||
|
||||
GST_LOG ("pushing RTP %s %" G_GUINT64_FORMAT, is_list ? "list" : "packet",
|
||||
src->stats.packets_sent);
|
||||
|
|
|
@ -72,7 +72,7 @@ typedef struct _RTPSourceClass RTPSourceClass;
|
|||
/**
|
||||
* RTPSourcePushRTP:
|
||||
* @src: an #RTPSource
|
||||
* @buffer: the RTP buffer ready for processing
|
||||
* @data: the RTP buffer or buffer list ready for processing
|
||||
* @user_data: user data specified when registering
|
||||
*
|
||||
* This callback will be called when @src has @buffer ready for further
|
||||
|
@ -80,7 +80,7 @@ typedef struct _RTPSourceClass RTPSourceClass;
|
|||
*
|
||||
* Returns: a #GstFlowReturn.
|
||||
*/
|
||||
typedef GstFlowReturn (*RTPSourcePushRTP) (RTPSource *src, GstBuffer *buffer,
|
||||
typedef GstFlowReturn (*RTPSourcePushRTP) (RTPSource *src, gpointer data,
|
||||
gpointer user_data);
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue