diff options
author | Vasilis Liaskovitis <vliaskov@gmail.com> | 2013-07-19 00:40:00 +0200 |
---|---|---|
committer | Thibault Saunier <thibault.saunier@collabora.com> | 2013-08-01 11:04:58 +0200 |
commit | a176ee153c71acf37c68e82035849797258bf20e (patch) | |
tree | c1689e650049369aae26e45cca56ed56afb21bc1 | |
parent | ea1d7edc8dccc7541ab43684e1d5399e4e7b88c5 (diff) |
integration: add paused pipeline seek tests
-rw-r--r-- | tests/check/ges/integration.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/check/ges/integration.c b/tests/check/ges/integration.c index 9bd51d5..be1bbcc 100644 --- a/tests/check/ges/integration.c +++ b/tests/check/ges/integration.c @@ -61,6 +61,7 @@ static gint64 seeked_position = GST_CLOCK_TIME_NONE; /* last seeked position static gint64 seek_tol = 0.05 * GST_SECOND; /* tolerance seek interval */ static GList *seeks; /* list of seeks */ static gboolean got_async_done = FALSE; +static gboolean seek_paused = FALSE; /* This allow us to run the tests multiple times with different input files */ static const gchar *testfilename1 = NULL; @@ -238,10 +239,18 @@ get_position (void) GST_TIME_ARGS (seek->position)); seeked_position = seek->position; + if (seek_paused) { + gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PAUSED); + gst_element_get_state (GST_ELEMENT (pipeline), NULL, NULL, -1); + } fail_unless (gst_element_seek_simple (GST_ELEMENT (pipeline), GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, seek->position)); + if (seek_paused) { + gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_PLAYING); + gst_element_get_state (GST_ELEMENT (pipeline), NULL, NULL, -1); + } seeks = g_list_remove_link (seeks, tmp); g_slice_free (SeekInfo, seek); g_list_free (tmp); @@ -406,6 +415,7 @@ test_seeking_audio (void) fail_unless (ges_timeline_add_track (timeline, GES_TRACK (ges_audio_track_new ()))); + seek_paused = FALSE; run_simple_seeks_test (timeline); } @@ -417,6 +427,7 @@ test_seeking_video (void) fail_unless (ges_timeline_add_track (timeline, GES_TRACK (ges_video_track_new ()))); + seek_paused = FALSE; run_simple_seeks_test (timeline); } @@ -425,6 +436,40 @@ test_seeking (void) { GESTimeline *timeline = ges_timeline_new_audio_video (); + seek_paused = FALSE; + run_simple_seeks_test (timeline); +} + +static void +test_seeking_paused_audio (void) +{ + GESTimeline *timeline = ges_timeline_new (); + + fail_unless (ges_timeline_add_track (timeline, + GES_TRACK (ges_audio_track_new ()))); + + seek_paused = TRUE; + run_simple_seeks_test (timeline); +} + +static void +test_seeking_paused_video (void) +{ + GESTimeline *timeline = ges_timeline_new (); + + fail_unless (ges_timeline_add_track (timeline, + GES_TRACK (ges_video_track_new ()))); + + seek_paused = TRUE; + run_simple_seeks_test (timeline); +} + +static void +test_seeking_paused (void) +{ + GESTimeline *timeline = ges_timeline_new_audio_video (); + + seek_paused = TRUE; run_simple_seeks_test (timeline); } @@ -695,6 +740,9 @@ CREATE_TEST_FULL(effect) CREATE_PLAYBACK_TEST(seeking) CREATE_PLAYBACK_TEST(seeking_audio) CREATE_PLAYBACK_TEST(seeking_video) +CREATE_PLAYBACK_TEST(seeking_paused) +CREATE_PLAYBACK_TEST(seeking_paused_audio) +CREATE_PLAYBACK_TEST(seeking_paused_video) CREATE_PLAYBACK_TEST(image) /* *INDENT-ON* */ @@ -719,6 +767,9 @@ ges_suite (void) ADD_PLAYBACK_TESTS (seeking_audio); ADD_PLAYBACK_TESTS (seeking_video); + ADD_PLAYBACK_TESTS (seeking_paused); + ADD_PLAYBACK_TESTS (seeking_paused_audio); + ADD_PLAYBACK_TESTS (seeking_paused_video); /* TODO : next test case : complex timeline created from project. */ /* TODO : deep checking of rendered clips */ /* TODO : might be interesting to try all profiles, and maintain a list of currently working profiles ? */ |