static void event_queue_cb(MediaStream *ms, void *user_pointer) { stats_t *st = (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_TMMBR_RECEIVED) { do { if (rtcp_is_RTPFB(d->packet)) { switch (rtcp_RTPFB_get_type(d->packet)) { case RTCP_RTPFB_TMMBR: st->number_of_TMMBR++; break; default: break; } } } while (rtcp_next_packet(d->packet)); } ortp_event_destroy(ev); } } }
bool_t rtp_session_rtcp_rtpfb_scheduled(RtpSession *session, rtcp_rtpfb_type_t type) { mblk_t *m = session->rtcp.send_algo.fb_packets; while (m != NULL) { if ((rtcp_is_RTPFB_internal(m) == TRUE) && (rtcp_RTPFB_get_type(m) == type)) { return TRUE; } m = m->b_cont; } return FALSE; }