|
|
|
|
@ -2922,13 +2922,13 @@ void call_destroy(struct call *c) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
k = g_hash_table_get_values(ml->ssrc_hash->ht);
|
|
|
|
|
for (l = k; l; l = l->next) {
|
|
|
|
|
struct ssrc_entry_call *se = l->data;
|
|
|
|
|
while (k) {
|
|
|
|
|
struct ssrc_entry_call *se = k->data;
|
|
|
|
|
|
|
|
|
|
// stats output only - no cleanups
|
|
|
|
|
|
|
|
|
|
if (!se->stats_blocks.length || !se->lowest_mos || !se->highest_mos)
|
|
|
|
|
continue;
|
|
|
|
|
goto next_k;
|
|
|
|
|
int mos_samples = (se->stats_blocks.length - se->no_mos_count);
|
|
|
|
|
if (mos_samples < 1) mos_samples = 1;
|
|
|
|
|
|
|
|
|
|
@ -2947,8 +2947,9 @@ void call_destroy(struct call *c) {
|
|
|
|
|
(unsigned int) (timeval_diff(&se->highest_mos->reported, &c->created) / 1000000) / 60,
|
|
|
|
|
(unsigned int) (timeval_diff(&se->highest_mos->reported, &c->created) / 1000000) % 60,
|
|
|
|
|
se->packets_lost);
|
|
|
|
|
next_k:
|
|
|
|
|
k = g_list_delete_link(k, k);
|
|
|
|
|
}
|
|
|
|
|
g_list_free(k);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|