static void iterate_adaptive_stream(stream_manager_t * marielle, stream_manager_t * margaux, int timeout_ms, int* current, int expected){ int retry=0; MediaStream *marielle_ms,*margaux_ms; if (marielle->type == AudioStreamType){ marielle_ms=&marielle->audio_stream->ms; margaux_ms=&margaux->audio_stream->ms; }else{ marielle_ms=&marielle->video_stream->ms; margaux_ms=&margaux->video_stream->ms; } while ((!current||*current<expected) && retry++ <timeout_ms/100) { media_stream_iterate(marielle_ms); media_stream_iterate(margaux_ms); handle_queue_events(marielle); if (retry%10==0) { ms_message("stream [%p] bandwidth usage: [d=%.1f,u=%.1f] kbit/sec" , marielle_ms, media_stream_get_down_bw(marielle_ms)/1000, media_stream_get_up_bw(marielle_ms)/1000); ms_message("stream [%p] bandwidth usage: [d=%.1f,u=%.1f] kbit/sec" , margaux_ms, media_stream_get_down_bw(margaux_ms)/1000, media_stream_get_up_bw(margaux_ms)/1000); } ms_usleep(100000); } }
bool_t wait_for_list_with_parse_events(MSList *mss, int *counter, int value, int timeout_ms, MSList *cbs, MSList *ptrs) { MSList *msi; MSList *cbi; MSList *ptri; int retry = 0; while ((*counter < value) && (retry++ < (timeout_ms / 100))) { for (msi = mss, cbi = cbs, ptri = ptrs; msi != NULL; msi = msi->next) { MediaStream *stream = (MediaStream *)msi->data; ms_tester_iterate_cb cb = NULL; media_stream_iterate(stream); if ((retry % 10) == 0) { ms_message("stream [%p] bandwidth usage: [d=%.1f,u=%.1f] kbit/sec", stream, media_stream_get_down_bw(stream) / 1000, media_stream_get_up_bw(stream) / 1000); } if (cbi && ptri) { cb = (ms_tester_iterate_cb)cbi->data; cb(stream, ptri->data); } if (cbi) cbi = cbi->next; if (ptri) ptri = ptri->next; } ms_usleep(100000); } if (*counter < value) return FALSE; return TRUE; }
void audio_stream_iterate(AudioStream *stream){ if (stream->ms.evq){ OrtpEvent *ev=ortp_ev_queue_get(stream->ms.evq); if (ev!=NULL){ OrtpEventType evt=ortp_event_get_type(ev); if (evt==ORTP_EVENT_RTCP_PACKET_RECEIVED){ audio_stream_process_rtcp(stream,ortp_event_get_data(ev)->packet); stream->last_packet_time=ms_time(NULL); }else if (evt==ORTP_EVENT_RTCP_PACKET_EMITTED){ ms_message("audio_stream_iterate(): local statistics available\n\tLocal's current jitter buffer size:%f ms",rtp_session_get_jitter_stats(stream->ms.session)->jitter_buffer_size_ms); }else if ((evt==ORTP_EVENT_STUN_PACKET_RECEIVED)&&(stream->ms.ice_check_list)){ ice_handle_stun_packet(stream->ms.ice_check_list,stream->ms.session,ortp_event_get_data(ev)); } ortp_event_destroy(ev); } } media_stream_iterate(&stream->ms); }
void video_stream_iterate(VideoStream *stream){ /* if (stream->output!=NULL) ms_filter_call_method_noarg(stream->output, MS_VIDEO_OUT_HANDLE_RESIZING); */ if (stream->ms.evq){ OrtpEvent *ev; while (NULL != (ev=ortp_ev_queue_get(stream->ms.evq))) { OrtpEventType evt=ortp_event_get_type(ev); if (evt == ORTP_EVENT_RTCP_PACKET_RECEIVED){ OrtpEventData *evd=ortp_event_get_data(ev); video_steam_process_rtcp(stream,evd->packet); }else if ((evt == ORTP_EVENT_STUN_PACKET_RECEIVED) && (stream->ms.ice_check_list)) { ice_handle_stun_packet(stream->ms.ice_check_list,stream->ms.session,ortp_event_get_data(ev)); } ortp_event_destroy(ev); } } media_stream_iterate(&stream->ms); }
void video_stream_iterate(VideoStream *stream){ media_stream_iterate(&stream->ms); }
void text_stream_iterate(TextStream *stream) { media_stream_iterate(&stream->ms); }