bool_t rtp_session_rtcp_psfb_scheduled(RtpSession *session, rtcp_psfb_type_t type) { mblk_t *m = session->rtcp.send_algo.fb_packets; while (m != NULL) { if ((rtcp_is_PSFB_internal(m) == TRUE) && (rtcp_PSFB_get_type(m) == type)) { return TRUE; } m = m->b_cont; } return FALSE; }
static void event_queue_cb(MediaStream *ms, void *user_pointer) { video_stream_tester_stats_t *st = (video_stream_tester_stats_t *)user_pointer; OrtpEvent *ev = NULL; if (st->q != NULL) { while ((ev = ortp_ev_queue_get(st->q)) != NULL) { OrtpEventType evt = ortp_event_get_type(ev); OrtpEventData *d = ortp_event_get_data(ev); if (evt == ORTP_EVENT_RTCP_PACKET_EMITTED) { do { if (rtcp_is_RR(d->packet)) { st->number_of_RR++; } else if (rtcp_is_SR(d->packet)) { st->number_of_SR++; } else if (rtcp_is_SDES(d->packet)) { st->number_of_SDES++; } else if (rtcp_is_PSFB(d->packet)) { switch (rtcp_PSFB_get_type(d->packet)) { case RTCP_PSFB_PLI: st->number_of_PLI++; break; case RTCP_PSFB_SLI: st->number_of_SLI++; break; case RTCP_PSFB_RPSI: st->number_of_RPSI++; break; default: break; } } } while (rtcp_next_packet(d->packet)); } ortp_event_destroy(ev); } } }