static void play_file(const char *filepath, bool_t unsupported_format, bool_t seeking_test, bool_t play_twice, int timeout) { bool_t succeed; Eof eof; MSMediaPlayer *file_player = NULL; MSSndCard *snd_card = ms_snd_card_manager_get_default_card(ms_snd_card_manager_get()); const char *display_name = video_stream_get_default_video_renderer(); eof_init(&eof); file_player = ms_media_player_new(snd_card, display_name, NULL); CU_ASSERT_PTR_NOT_NULL(file_player); if(file_player == NULL) return; CU_ASSERT_EQUAL(ms_media_player_get_state(file_player), MSPlayerClosed); ms_media_player_set_eof_callback(file_player, eof_callback, &eof); succeed = ms_media_player_open(file_player, filepath); if(unsupported_format) { CU_ASSERT_FALSE(succeed); CU_ASSERT_EQUAL(ms_media_player_get_state(file_player), MSPlayerClosed); } else { CU_ASSERT_TRUE(succeed); CU_ASSERT_EQUAL(ms_media_player_get_state(file_player), MSPlayerPaused); } if(!succeed) { ms_media_player_free(file_player); return; } succeed = ms_media_player_start(file_player); CU_ASSERT_TRUE(succeed); CU_ASSERT_EQUAL(ms_media_player_get_state(file_player), MSPlayerPlaying); if(seeking_test) { CU_ASSERT_TRUE(ms_media_player_seek(file_player, 5000)); } if(succeed) { wait_for_eof(&eof, 100, timeout); CU_ASSERT_TRUE(eof.eof); } ms_media_player_close(file_player); CU_ASSERT_EQUAL(ms_media_player_get_state(file_player), MSPlayerClosed); if(play_twice) { eof_init(&eof); CU_ASSERT_TRUE(ms_media_player_open(file_player, filepath)); CU_ASSERT_TRUE(ms_media_player_start(file_player)); wait_for_eof(&eof, 100, timeout); ms_media_player_close(file_player); CU_ASSERT_TRUE(eof.eof); } ms_media_player_free(file_player); }
static void play_file(const char *filename, bool_t unsupported_format, const char *audio_mime, const char *video_mime) { LinphoneCoreManager *lc_manager; LinphonePlayer *player; int res, time = 0; bool_t eof = FALSE; lc_manager = linphone_core_manager_new("marie_rc"); CU_ASSERT_PTR_NOT_NULL(lc_manager); if(lc_manager == NULL) return; player = linphone_core_create_local_player(lc_manager->lc, ms_snd_card_manager_get_default_card(ms_snd_card_manager_get()), video_stream_get_default_video_renderer(), 0); CU_ASSERT_PTR_NOT_NULL(player); if(player == NULL) goto fail; res = linphone_player_open(player, filename, eof_callback, &eof); if(unsupported_format || (audio_mime == NULL && video_mime == NULL) || (video_mime == NULL && audio_mime && !ms_filter_codec_supported(audio_mime)) || (audio_mime == NULL && video_mime && !ms_filter_codec_supported(video_mime))) { CU_ASSERT_EQUAL(res, -1); } else { CU_ASSERT_EQUAL(res, 0); } if(res == -1) goto fail; CU_ASSERT_EQUAL((res = linphone_player_start(player)), 0); if(res == -1) goto fail; CU_ASSERT_TRUE(wait_for_eof(&eof, &time, 100, 13000)); linphone_player_close(player); fail: if(player) linphone_player_destroy(player); if(lc_manager) linphone_core_manager_destroy(lc_manager); }