static void call_multicast_base(bool_t video) { LinphoneCoreManager *marie, *pauline; int begin; int leaked_objects; LinphoneVideoPolicy marie_policy, pauline_policy; belle_sip_object_enable_leak_detector(TRUE); begin=belle_sip_object_get_object_count(); marie = linphone_core_manager_new( "marie_rc"); pauline = linphone_core_manager_new( "pauline_rc"); if (video) { linphone_core_enable_video_capture(marie->lc, TRUE); linphone_core_enable_video_display(marie->lc, TRUE); linphone_core_enable_video_capture(pauline->lc, TRUE); linphone_core_enable_video_display(pauline->lc, FALSE); marie_policy.automatically_initiate=TRUE; marie_policy.automatically_accept=TRUE; pauline_policy.automatically_initiate=TRUE; pauline_policy.automatically_accept=TRUE; linphone_core_set_video_policy(marie->lc,&marie_policy); linphone_core_set_video_policy(pauline->lc,&pauline_policy); linphone_core_set_video_multicast_addr(pauline->lc,"224.1.2.3"); linphone_core_enable_video_multicast(pauline->lc,TRUE); } linphone_core_set_audio_multicast_addr(pauline->lc,"224.1.2.3"); linphone_core_enable_audio_multicast(pauline->lc,TRUE); CU_ASSERT_TRUE(call(pauline,marie)); wait_for_until(marie->lc, pauline->lc, NULL, 1, 3000); if (linphone_core_get_current_call(marie->lc)) { CU_ASSERT_TRUE(linphone_call_get_audio_stats(linphone_core_get_current_call(marie->lc))->download_bandwidth>70); if (video) { /*check video path*/ linphone_call_set_next_video_frame_decoded_callback(linphone_core_get_current_call(marie->lc),linphone_call_cb,marie->lc); linphone_call_send_vfu_request(linphone_core_get_current_call(marie->lc)); CU_ASSERT_TRUE( wait_for(marie->lc,pauline->lc,&marie->stat.number_of_IframeDecoded,1)); } end_call(marie,pauline); } linphone_core_manager_destroy(marie); linphone_core_manager_destroy(pauline); leaked_objects=belle_sip_object_get_object_count()-begin; CU_ASSERT_TRUE(leaked_objects==0); if (leaked_objects>0){ belle_sip_object_dump_active_objects(); } belle_sip_object_enable_leak_detector(FALSE); }
static void video_stream_event_cb(void *user_pointer, const MSFilter *f, const unsigned int event_id, const void *args){ ms_warning("In linphonecall.c: video_stream_event_cb"); switch (event_id) { case MS_VIDEO_DECODER_DECODING_ERRORS: ms_warning("Case is MS_VIDEO_DECODER_DECODING_ERRORS"); linphone_call_send_vfu_request((LinphoneCall*) user_pointer); break; default: ms_warning("Unhandled event %i", event_id); break; } }
static void call_multicast_base(bool_t video) { LinphoneCoreManager *marie, *pauline; int begin; int leaked_objects; LinphoneVideoPolicy marie_policy, pauline_policy; belle_sip_object_enable_leak_detector(TRUE); begin=belle_sip_object_get_object_count(); marie = linphone_core_manager_new( "marie_rc"); pauline = linphone_core_manager_new( "pauline_tcp_rc"); if (video) { linphone_core_enable_video_capture(marie->lc, TRUE); linphone_core_enable_video_display(marie->lc, TRUE); linphone_core_enable_video_capture(pauline->lc, TRUE); linphone_core_enable_video_display(pauline->lc, FALSE); marie_policy.automatically_initiate=TRUE; marie_policy.automatically_accept=TRUE; pauline_policy.automatically_initiate=TRUE; pauline_policy.automatically_accept=TRUE; linphone_core_set_video_policy(marie->lc,&marie_policy); linphone_core_set_video_policy(pauline->lc,&pauline_policy); linphone_core_set_video_multicast_addr(pauline->lc,"224.1.2.3"); linphone_core_enable_video_multicast(pauline->lc,TRUE); } linphone_core_set_audio_multicast_addr(pauline->lc,"224.1.2.3"); linphone_core_enable_audio_multicast(pauline->lc,TRUE); BC_ASSERT_TRUE(call(pauline,marie)); wait_for_until(marie->lc, pauline->lc, NULL, 1, 6000); if (linphone_core_get_current_call(marie->lc)) { BC_ASSERT_GREATER(linphone_core_manager_get_max_audio_down_bw(marie),70,int,"%d"); if (video) { /*check video path*/ linphone_call_set_next_video_frame_decoded_callback(linphone_core_get_current_call(marie->lc),linphone_call_iframe_decoded_cb,marie->lc); linphone_call_send_vfu_request(linphone_core_get_current_call(marie->lc)); BC_ASSERT_TRUE( wait_for(marie->lc,pauline->lc,&marie->stat.number_of_IframeDecoded,1)); } end_call(marie,pauline); }