mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-24 02:31:03 +00:00
session: reorganize the report block code
This commit is contained in:
parent
7335b81c47
commit
5b0298c63e
1 changed files with 34 additions and 24 deletions
|
@ -2800,33 +2800,43 @@ static void
|
||||||
session_report_blocks (const gchar * key, RTPSource * source, ReportData * data)
|
session_report_blocks (const gchar * key, RTPSource * source, ReportData * data)
|
||||||
{
|
{
|
||||||
GstRTCPPacket *packet = &data->packet;
|
GstRTCPPacket *packet = &data->packet;
|
||||||
|
guint8 fractionlost;
|
||||||
|
gint32 packetslost;
|
||||||
|
guint32 exthighestseq, jitter;
|
||||||
|
guint32 lsr, dlsr;
|
||||||
|
|
||||||
if (gst_rtcp_packet_get_rb_count (packet) < GST_RTCP_MAX_RB_COUNT) {
|
/* only report about other sender */
|
||||||
/* only report about other sender sources */
|
if (source == data->source)
|
||||||
if (source != data->source && RTP_SOURCE_IS_SENDER (source)) {
|
return;
|
||||||
guint8 fractionlost;
|
|
||||||
gint32 packetslost;
|
|
||||||
guint32 exthighestseq, jitter;
|
|
||||||
guint32 lsr, dlsr;
|
|
||||||
|
|
||||||
/* get new stats */
|
if (gst_rtcp_packet_get_rb_count (packet) == GST_RTCP_MAX_RB_COUNT) {
|
||||||
rtp_source_get_new_rb (source, data->current_time, &fractionlost,
|
GST_DEBUG ("max RB count reached");
|
||||||
&packetslost, &exthighestseq, &jitter, &lsr, &dlsr);
|
return;
|
||||||
|
|
||||||
/* store last generated RR packet */
|
|
||||||
source->last_rr.is_valid = TRUE;
|
|
||||||
source->last_rr.fractionlost = fractionlost;
|
|
||||||
source->last_rr.packetslost = packetslost;
|
|
||||||
source->last_rr.exthighestseq = exthighestseq;
|
|
||||||
source->last_rr.jitter = jitter;
|
|
||||||
source->last_rr.lsr = lsr;
|
|
||||||
source->last_rr.dlsr = dlsr;
|
|
||||||
|
|
||||||
/* packet is not yet filled, add report block for this source. */
|
|
||||||
gst_rtcp_packet_add_rb (packet, source->ssrc, fractionlost, packetslost,
|
|
||||||
exthighestseq, jitter, lsr, dlsr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!RTP_SOURCE_IS_SENDER (source)) {
|
||||||
|
GST_DEBUG ("source %08x not sender", source->ssrc);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_DEBUG ("create RB for SSRC %08x", source->ssrc);
|
||||||
|
|
||||||
|
/* get new stats */
|
||||||
|
rtp_source_get_new_rb (source, data->current_time, &fractionlost,
|
||||||
|
&packetslost, &exthighestseq, &jitter, &lsr, &dlsr);
|
||||||
|
|
||||||
|
/* store last generated RR packet */
|
||||||
|
source->last_rr.is_valid = TRUE;
|
||||||
|
source->last_rr.fractionlost = fractionlost;
|
||||||
|
source->last_rr.packetslost = packetslost;
|
||||||
|
source->last_rr.exthighestseq = exthighestseq;
|
||||||
|
source->last_rr.jitter = jitter;
|
||||||
|
source->last_rr.lsr = lsr;
|
||||||
|
source->last_rr.dlsr = dlsr;
|
||||||
|
|
||||||
|
/* packet is not yet filled, add report block for this source. */
|
||||||
|
gst_rtcp_packet_add_rb (packet, source->ssrc, fractionlost, packetslost,
|
||||||
|
exthighestseq, jitter, lsr, dlsr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* perform cleanup of sources that timed out */
|
/* perform cleanup of sources that timed out */
|
||||||
|
|
Loading…
Reference in a new issue