Skip to content

Commit

Permalink
Default link quality stats to 100
Browse files Browse the repository at this point in the history
  • Loading branch information
lminiero committed Jun 29, 2023
1 parent cdfc0e0 commit a49a248
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/ice.c
Original file line number Diff line number Diff line change
Expand Up @@ -1871,6 +1871,10 @@ janus_ice_peerconnection_medium *janus_ice_peerconnection_medium_create(janus_ic
}
medium->rtcp_ctx[0] = g_malloc0(sizeof(janus_rtcp_context));
medium->rtcp_ctx[0]->tb = (type == JANUS_MEDIA_VIDEO ? 90000 : 48000); /* May change later */
medium->rtcp_ctx[0]->in_link_quality = 100;
medium->rtcp_ctx[0]->in_media_link_quality = 100;
medium->rtcp_ctx[0]->out_link_quality = 100;
medium->rtcp_ctx[0]->out_media_link_quality = 100;
/* We can address media by SSRC */
g_hash_table_insert(pc->media_byssrc, GINT_TO_POINTER(medium->ssrc), medium);
janus_refcount_increase(&medium->ref);
Expand Down
20 changes: 18 additions & 2 deletions src/sdp.c
Original file line number Diff line number Diff line change
Expand Up @@ -649,11 +649,15 @@ int janus_sdp_process_remote(void *ice_handle, janus_sdp *remote_sdp, gboolean r
JANUS_LOG(LOG_INFO, "[%"SCNu64"] %s SSRC (#%d) on mline #%d changed: %"SCNu32" --> %"SCNu32"\n",
handle->handle_id, m->type == JANUS_SDP_VIDEO ? "Video" : "Audio",
vindex, m->index, medium->ssrc_peer[vindex], medium->ssrc_peer_new[vindex]);
/* FIXME Reset the RTCP context */
/* Reset the RTCP context */
janus_mutex_lock(&medium->mutex);
if(medium->rtcp_ctx[vindex]) {
memset(medium->rtcp_ctx[vindex], 0, sizeof(*medium->rtcp_ctx[vindex]));
medium->rtcp_ctx[vindex]->tb = (m->type == JANUS_SDP_VIDEO ? 90000 : 48000); /* May change later */;
medium->rtcp_ctx[vindex]->in_link_quality = 100;
medium->rtcp_ctx[vindex]->in_media_link_quality = 100;
medium->rtcp_ctx[vindex]->out_link_quality = 100;
medium->rtcp_ctx[vindex]->out_media_link_quality = 100;
}
if(medium->last_seqs[vindex])
janus_seq_list_free(&medium->last_seqs[vindex]);
Expand Down Expand Up @@ -691,10 +695,18 @@ int janus_sdp_process_remote(void *ice_handle, janus_sdp *remote_sdp, gboolean r
if((medium->ssrc_peer[1] || medium->rid[1] != NULL) && medium->rtcp_ctx[1] == NULL) {
medium->rtcp_ctx[1] = g_malloc0(sizeof(rtcp_context));
medium->rtcp_ctx[1]->tb = 90000;
medium->rtcp_ctx[1]->in_link_quality = 100;
medium->rtcp_ctx[1]->in_media_link_quality = 100;
medium->rtcp_ctx[1]->out_link_quality = 100;
medium->rtcp_ctx[1]->out_media_link_quality = 100;
}
if((medium->ssrc_peer[2] || medium->rid[rids_hml ? 2 : 0] != NULL) && medium->rtcp_ctx[2] == NULL) {
medium->rtcp_ctx[2] = g_malloc0(sizeof(rtcp_context));
medium->rtcp_ctx[2]->tb = 90000;
medium->rtcp_ctx[2]->in_link_quality = 100;
medium->rtcp_ctx[2]->in_media_link_quality = 100;
medium->rtcp_ctx[2]->out_link_quality = 100;
medium->rtcp_ctx[2]->out_media_link_quality = 100;
}
}
if(m->type == JANUS_SDP_VIDEO && medium->rtx_payload_types && m->ptypes) {
Expand Down Expand Up @@ -863,7 +875,7 @@ int janus_sdp_process_local(void *ice_handle, janus_sdp *remote_sdp, gboolean up
medium->mstid = NULL;
}
if(m->direction == JANUS_SDP_INACTIVE) {
/* FIXME Reset the local SSRCs and RTCP context */
/* Reset the local SSRCs and RTCP context */
if(medium->ssrc != 0)
g_hash_table_remove(pc->media_byssrc, GINT_TO_POINTER(medium->ssrc));
medium->ssrc = 0;
Expand All @@ -876,6 +888,10 @@ int janus_sdp_process_local(void *ice_handle, janus_sdp *remote_sdp, gboolean up
int tb = medium->rtcp_ctx[vindex]->tb;
memset(medium->rtcp_ctx[vindex], 0, sizeof(janus_rtcp_context));
medium->rtcp_ctx[vindex]->tb = tb;
medium->rtcp_ctx[vindex]->in_link_quality = 100;
medium->rtcp_ctx[vindex]->in_media_link_quality = 100;
medium->rtcp_ctx[vindex]->out_link_quality = 100;
medium->rtcp_ctx[vindex]->out_media_link_quality = 100;
}
}
} else if(m->type != JANUS_SDP_APPLICATION) {
Expand Down

0 comments on commit a49a248

Please sign in to comment.