X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=test%2Flibvlc%2Fmedia_list_player.c;h=9084ce7968d7762b21921427630ce420914fa01b;hb=ad3a30059635060be68935d167f8d9887a0a7bd9;hp=35f8be5595d1ac0134080bf3f20fb508480ff046;hpb=556953c4c2ec361c1d5508702083b76edf89cb4d;p=vlc diff --git a/test/libvlc/media_list_player.c b/test/libvlc/media_list_player.c index 35f8be5595..9084ce7968 100644 --- a/test/libvlc/media_list_player.c +++ b/test/libvlc/media_list_player.c @@ -61,7 +61,25 @@ static inline void wait_queued_items(struct check_items_order_data *check) { // Wait dummily for check_items_order_callback() to flag 'done_playing': while (!check->done_playing) - msleep(100000); + sched_yield(); +} + +static inline void wait_playing(libvlc_media_list_player_t *mlp) +{ + while (!libvlc_media_list_player_is_playing (mlp)) + sched_yield(); +} + +static inline void wait_stopped(libvlc_media_list_player_t *mlp) +{ + while (libvlc_media_list_player_is_playing (mlp)) + sched_yield(); +} + +static inline void stop_and_wait(libvlc_media_list_player_t *mlp) +{ + libvlc_media_list_player_stop (mlp); + wait_stopped (mlp); } static void check_items_order_callback(const libvlc_event_t * p_event, void * user_data) @@ -100,21 +118,19 @@ static void test_media_list_player_items_queue(const char** argv, int argc) log ("Testing media player item queue-ing\n"); - libvlc_exception_init (&ex); - vlc = libvlc_new (argc, argv, &ex); - catch (); + vlc = libvlc_new (argc, argv); + assert (vlc != NULL); - md = libvlc_media_new (vlc, file, &ex); - catch (); + md = libvlc_media_new_path (vlc, file); + assert(md); - ml = libvlc_media_list_new (vlc, &ex); - catch (); + ml = libvlc_media_list_new (vlc); + assert (ml != NULL); - mlp = libvlc_media_list_player_new (vlc, &ex); - catch (); + mlp = libvlc_media_list_player_new (vlc); + assert(mlp); - libvlc_media_list_add_media (ml, md, &ex); - catch (); + libvlc_media_list_add_media (ml, md); static struct check_items_order_data check; check_data_init(&check); @@ -126,10 +142,9 @@ static void test_media_list_player_items_queue(const char** argv, int argc) queue_expected_item(&check, media_list_add_file_path (vlc, ml, file)); // Add a node - libvlc_media_t *node = libvlc_media_new_as_node(vlc, "node", &ex); - catch (); - libvlc_media_list_add_media(ml, node, &ex); - catch (); + libvlc_media_t *node = libvlc_media_new_as_node(vlc, "node"); + assert(node); + libvlc_media_list_add_media(ml, node); queue_expected_item(&check, node); // Add items to that node @@ -146,15 +161,12 @@ static void test_media_list_player_items_queue(const char** argv, int argc) check_items_order_callback, &check); assert(val == 0); - libvlc_media_list_player_play(mlp, &ex); - catch (); + libvlc_media_list_player_play(mlp); // Wait until all item are read wait_queued_items(&check); - libvlc_media_list_player_stop (mlp); - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + stop_and_wait (mlp); libvlc_media_list_player_release (mlp); libvlc_release (vlc); @@ -171,21 +183,19 @@ static void test_media_list_player_previous(const char** argv, int argc) log ("Testing media player previous()\n"); - libvlc_exception_init (&ex); - vlc = libvlc_new (argc, argv, &ex); - catch (); + vlc = libvlc_new (argc, argv); + assert (vlc != NULL); - md = libvlc_media_new (vlc, file, &ex); - catch (); + md = libvlc_media_new_path (vlc, file); + assert(md); - ml = libvlc_media_list_new (vlc, &ex); - catch (); + ml = libvlc_media_list_new (vlc); + assert (ml != NULL); - mlp = libvlc_media_list_player_new (vlc, &ex); - catch (); + mlp = libvlc_media_list_player_new (vlc); + assert(mlp);; - libvlc_media_list_add_media (ml, md, &ex); - catch (); + libvlc_media_list_add_media (ml, md); // Add three media media_list_add_file_path (vlc, ml, file); @@ -194,44 +204,28 @@ static void test_media_list_player_previous(const char** argv, int argc) libvlc_media_list_player_set_media_list (mlp, ml); - libvlc_media_list_player_play_item (mlp, md, &ex); - catch (); + libvlc_media_list_player_play_item (mlp, md); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + wait_playing (mlp); libvlc_media_release (md); - libvlc_media_list_player_previous (mlp, &ex); - catch (); + libvlc_media_list_player_previous (mlp); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); - - libvlc_media_list_player_pause (mlp, &ex); - catch(); - - libvlc_media_list_player_previous (mlp, &ex); - catch (); - - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + wait_playing (mlp); - libvlc_media_list_player_stop (mlp); + libvlc_media_list_player_pause (mlp); + libvlc_media_list_player_previous (mlp); - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + wait_playing (mlp); - libvlc_media_list_player_previous (mlp, &ex); - catch (); + stop_and_wait (mlp); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + libvlc_media_list_player_previous (mlp); - libvlc_media_list_player_stop (mlp); + wait_playing (mlp); - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + stop_and_wait (mlp); libvlc_media_list_player_release (mlp); libvlc_release (vlc); @@ -248,21 +242,19 @@ static void test_media_list_player_next(const char** argv, int argc) log ("Testing media player next()\n"); - libvlc_exception_init (&ex); - vlc = libvlc_new (argc, argv, &ex); - catch (); + vlc = libvlc_new (argc, argv); + assert (vlc != NULL); - md = libvlc_media_new (vlc, file, &ex); - catch (); + md = libvlc_media_new_path (vlc, file); + assert(md); - ml = libvlc_media_list_new (vlc, &ex); - catch (); + ml = libvlc_media_list_new (vlc); + assert (ml != NULL); - mlp = libvlc_media_list_player_new (vlc, &ex); - catch (); + mlp = libvlc_media_list_player_new (vlc); + assert(mlp); - libvlc_media_list_add_media (ml, md, &ex); - catch (); + libvlc_media_list_add_media (ml, md); // Add three media media_list_add_file_path (vlc, ml, file); @@ -271,43 +263,28 @@ static void test_media_list_player_next(const char** argv, int argc) libvlc_media_list_player_set_media_list (mlp, ml); - libvlc_media_list_player_play_item (mlp, md, &ex); - catch (); + libvlc_media_list_player_play_item (mlp, md); libvlc_media_release (md); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); - - libvlc_media_list_player_next (mlp, &ex); - catch (); - - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + wait_playing (mlp); - libvlc_media_list_player_pause (mlp, &ex); - catch(); + libvlc_media_list_player_next (mlp); - libvlc_media_list_player_next (mlp, &ex); - catch (); + wait_playing (mlp); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + libvlc_media_list_player_pause (mlp); + libvlc_media_list_player_next (mlp); - libvlc_media_list_player_stop (mlp); + wait_playing (mlp); - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + stop_and_wait (mlp); - libvlc_media_list_player_next (mlp, &ex); - catch (); + libvlc_media_list_player_next (mlp); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + wait_playing (mlp); - libvlc_media_list_player_stop (mlp); - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + stop_and_wait (mlp); libvlc_media_list_player_release (mlp); libvlc_release (vlc); @@ -324,36 +301,29 @@ static void test_media_list_player_pause_stop(const char** argv, int argc) log ("Testing play and pause of %s using the media list.\n", file); - libvlc_exception_init (&ex); - vlc = libvlc_new (argc, argv, &ex); - catch (); + vlc = libvlc_new (argc, argv); + assert (vlc != NULL); - md = libvlc_media_new (vlc, file, &ex); - catch (); + md = libvlc_media_new_path (vlc, file); + assert(md); - ml = libvlc_media_list_new (vlc, &ex); - catch (); + ml = libvlc_media_list_new (vlc); + assert (ml != NULL); - mlp = libvlc_media_list_player_new (vlc, &ex); + mlp = libvlc_media_list_player_new (vlc); + assert(mlp); - libvlc_media_list_add_media( ml, md, &ex ); - catch (); + libvlc_media_list_add_media( ml, md); libvlc_media_list_player_set_media_list( mlp, ml ); - libvlc_media_list_player_play_item( mlp, md, &ex ); - catch (); + libvlc_media_list_player_play_item( mlp, md ); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); - - libvlc_media_list_player_pause (mlp, &ex); - catch(); + wait_playing (mlp); - libvlc_media_list_player_stop (mlp); + libvlc_media_list_player_pause (mlp); - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + stop_and_wait (mlp); libvlc_media_release (md); libvlc_media_list_player_release (mlp); @@ -371,36 +341,27 @@ static void test_media_list_player_play_item_at_index(const char** argv, int arg log ("Testing play_item_at_index of %s using the media list.\n", file); - libvlc_exception_init (&ex); - vlc = libvlc_new (argc, argv, &ex); - catch (); + vlc = libvlc_new (argc, argv); + assert (vlc != NULL); - md = libvlc_media_new (vlc, file, &ex); - catch (); + md = libvlc_media_new_path (vlc, file); + assert(md); - ml = libvlc_media_list_new (vlc, &ex); - catch (); + ml = libvlc_media_list_new (vlc); + assert (ml != NULL); - mlp = libvlc_media_list_player_new (vlc, &ex); + mlp = libvlc_media_list_player_new (vlc); + assert(mlp); for (unsigned i = 0; i < 5; i++) - { - libvlc_media_list_add_media( ml, md, &ex ); - catch (); - } + libvlc_media_list_add_media( ml, md ); libvlc_media_list_player_set_media_list( mlp, ml ); + libvlc_media_list_player_play_item_at_index( mlp, 0 ); - libvlc_media_list_player_play_item_at_index( mlp, 0, &ex ); - catch (); + wait_playing (mlp); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); - - libvlc_media_list_player_stop (mlp); - - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + stop_and_wait (mlp); libvlc_media_release (md); libvlc_media_list_player_release (mlp); @@ -427,9 +388,8 @@ static void test_media_list_player_playback_options (const char** argv, int argc log ("Testing media player playback options()\n"); - libvlc_exception_init (&ex); - vlc = libvlc_new (argc, argv, &ex); - catch (); + vlc = libvlc_new (argc, argv); + assert (vlc != NULL); /* * Create the following media tree: @@ -443,51 +403,49 @@ static void test_media_list_player_playback_options (const char** argv, int argc * ml5&6: 0 0 -- 1 */ - md = libvlc_media_new (vlc, file, &ex); - catch (); + md = libvlc_media_new_path (vlc, file); + assert(md); - md2 = libvlc_media_new (vlc, file, &ex); - catch (); + md2 = libvlc_media_new_path (vlc, file); + assert(md2); - md3 = libvlc_media_new (vlc, file, &ex); - catch (); + md3 = libvlc_media_new_path (vlc, file); + assert(md3); - md4 = libvlc_media_new (vlc, file, &ex); - catch (); + md4 = libvlc_media_new_path (vlc, file); + assert(md4); - md5 = libvlc_media_new (vlc, file, &ex); - catch (); + md5 = libvlc_media_new_path (vlc, file); + assert(md5); - ml = libvlc_media_list_new (vlc, &ex); - catch (); + ml = libvlc_media_list_new (vlc); + assert (ml != NULL); - ml2 = libvlc_media_list_new (vlc, &ex); - catch (); + ml2 = libvlc_media_list_new (vlc); + assert (ml2 != NULL); - ml3 = libvlc_media_list_new (vlc, &ex); - catch (); + ml3 = libvlc_media_list_new (vlc); + assert (ml3 != NULL); - ml4 = libvlc_media_list_new (vlc, &ex); - catch (); + ml4 = libvlc_media_list_new (vlc); + assert (ml4 != NULL); - ml5 = libvlc_media_list_new (vlc, &ex); - catch (); + ml5 = libvlc_media_list_new (vlc); + assert (ml5 != NULL); - ml6 = libvlc_media_list_new (vlc, &ex); - catch (); + ml6 = libvlc_media_list_new (vlc); + assert (ml6 != NULL); media_list_add_file_path (vlc, ml2, file); media_list_add_file_path (vlc, ml2, file); media_list_add_file_path (vlc, ml3, file); media_list_add_file_path (vlc, ml3, file); - libvlc_media_list_add_media (ml3, md4, &ex); - catch (); + libvlc_media_list_add_media (ml3, md4); media_list_add_file_path (vlc, ml3, file); media_list_add_file_path (vlc, ml3, file); media_list_add_file_path (vlc, ml3, file); - libvlc_media_list_add_media (ml3, md5, &ex); - catch (); + libvlc_media_list_add_media (ml3, md5); media_list_add_file_path (vlc, ml4, file); media_list_add_file_path (vlc, ml4, file); @@ -504,28 +462,21 @@ static void test_media_list_player_playback_options (const char** argv, int argc md4->p_subitems = ml5; md5->p_subitems = ml6; - libvlc_media_list_add_media (ml, md, &ex); - catch (); - - libvlc_media_list_add_media (ml, md2, &ex); - catch (); + libvlc_media_list_add_media (ml, md); + libvlc_media_list_add_media (ml, md2); + libvlc_media_list_add_media (ml, md3); - libvlc_media_list_add_media (ml, md3, &ex); - catch (); - - mlp = libvlc_media_list_player_new (vlc, &ex); - catch (); + mlp = libvlc_media_list_player_new (vlc); + assert(mlp); libvlc_media_list_player_set_media_list (mlp, ml); // Test default playback mode libvlc_media_list_player_set_playback_mode(mlp, libvlc_playback_mode_default); - libvlc_media_list_player_play_item (mlp, md, &ex); - catch (); + libvlc_media_list_player_play_item (mlp, md); - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + wait_playing (mlp); libvlc_media_release (md); libvlc_media_release (md2); @@ -542,31 +493,21 @@ static void test_media_list_player_playback_options (const char** argv, int argc log ("Testing media player playback option - Loop\n"); libvlc_media_list_player_set_playback_mode(mlp, libvlc_playback_mode_loop); - libvlc_media_list_player_play_item (mlp, md, &ex); - catch (); - - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + libvlc_media_list_player_play_item (mlp, md); - libvlc_media_list_player_stop (mlp); + wait_playing (mlp); - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + stop_and_wait (mlp); // Test repeat playback mode log ("Testing media player playback option - Repeat\n"); libvlc_media_list_player_set_playback_mode(mlp, libvlc_playback_mode_repeat); - libvlc_media_list_player_play_item (mlp, md, &ex); - catch (); - - while (!libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + libvlc_media_list_player_play_item (mlp, md); - libvlc_media_list_player_stop (mlp); + wait_playing (mlp); - while (libvlc_media_list_player_is_playing (mlp)) - sched_yield(); + stop_and_wait (mlp); libvlc_media_list_player_release (mlp); libvlc_release (vlc);