diff options
author | Thiago Santos <thiagoss@osg.samsung.com> | 2015-12-23 15:25:29 -0300 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2016-01-06 10:23:13 -0300 |
commit | 5bc6769532156c4595024d0a5bfc161cfc5e5bd8 (patch) | |
tree | 56801413d1256400900bf12fcbe81eb899de9766 /tests | |
parent | 2784ff669395913f9c0e88a0ee579fc0249cf772 (diff) | |
download | gstreamer-plugins-bad-5bc6769532156c4595024d0a5bfc161cfc5e5bd8.tar.gz |
tests: adaptive: update to allow more flexible seeking tests
Allows defining a seek event to be able to change seeking parameters
and create more seeking test scenarios
Diffstat (limited to 'tests')
-rw-r--r-- | tests/check/elements/adaptive_demux_common.c | 16 | ||||
-rw-r--r-- | tests/check/elements/adaptive_demux_common.h | 1 | ||||
-rw-r--r-- | tests/check/elements/dash_demux.c | 9 | ||||
-rw-r--r-- | tests/check/elements/hls_demux.c | 8 |
4 files changed, 26 insertions, 8 deletions
diff --git a/tests/check/elements/adaptive_demux_common.c b/tests/check/elements/adaptive_demux_common.c index 67d724d82..0fedfb9c2 100644 --- a/tests/check/elements/adaptive_demux_common.c +++ b/tests/check/elements/adaptive_demux_common.c @@ -77,6 +77,7 @@ gst_adaptive_demux_test_case_clear (GstAdaptiveDemuxTestCase * testData) testData->signal_context = NULL; testData->test_task_state = TEST_TASK_STATE_NOT_STARTED; testData->threshold_for_seek = 0; + gst_event_replace (&testData->seek_event, NULL); testData->signal_context = NULL; } @@ -251,6 +252,7 @@ typedef struct _SeekTaskContext { GstElement *pipeline; GstTask *task; + GstEvent *seek_event; } SeekTaskContext; /* function to generate a seek event. Will be run in a separate thread */ @@ -262,15 +264,12 @@ testSeekTaskDoSeek (gpointer user_data) GST_DEBUG ("testSeekTaskDoSeek calling seek"); - /* seek to 5ms. - * Because there is only one fragment, we expect the whole file to be - * downloaded again - */ - if (!gst_element_seek_simple (GST_ELEMENT (context->pipeline), - GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, - 5 * GST_MSECOND)) { + fail_unless (GST_IS_EVENT (context->seek_event)); + fail_unless (GST_EVENT_TYPE (context->seek_event) == GST_EVENT_SEEK); + + if (!gst_element_send_event (GST_ELEMENT (context->pipeline), + context->seek_event)) fail ("Seek failed!\n"); - } GST_DEBUG ("seek ok"); task = context->task; g_slice_free (SeekTaskContext, context); @@ -317,6 +316,7 @@ testSeekAdaptiveDemuxSendsData (GstAdaptiveDemuxTestEngine * engine, seekContext = g_slice_new (SeekTaskContext); seekContext->pipeline = engine->pipeline; + seekContext->seek_event = gst_event_ref (testData->seek_event); testData->test_task = seekContext->task = gst_task_new ((GstTaskFunction) testSeekTaskDoSeek, seekContext, NULL); gst_task_set_lock (testData->test_task, &testData->test_task_lock); diff --git a/tests/check/elements/adaptive_demux_common.h b/tests/check/elements/adaptive_demux_common.h index 3969582b3..ed7317c75 100644 --- a/tests/check/elements/adaptive_demux_common.h +++ b/tests/check/elements/adaptive_demux_common.h @@ -105,6 +105,7 @@ typedef struct _GstAdaptiveDemuxTestCase * demux to AppSink before triggering a seek request */ guint64 threshold_for_seek; + GstEvent *seek_event; gpointer signal_context; } GstAdaptiveDemuxTestCase; diff --git a/tests/check/elements/dash_demux.c b/tests/check/elements/dash_demux.c index ce7556fb7..b628b0d12 100644 --- a/tests/check/elements/dash_demux.c +++ b/tests/check/elements/dash_demux.c @@ -486,6 +486,15 @@ GST_START_TEST (testSeek) */ testData->threshold_for_seek = 4687 + 1; + /* seek to 5ms. + * Because there is only one fragment, we expect the whole file to be + * downloaded again + */ + testData->seek_event = + gst_event_new_seek (1.0, GST_FORMAT_TIME, + GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, GST_SEEK_TYPE_SET, + 5 * GST_MSECOND, GST_SEEK_TYPE_NONE, 0); + gst_test_http_src_install_callbacks (&http_src_callbacks, inputTestData); gst_adaptive_demux_test_seek (DEMUX_ELEMENT_NAME, "http://unit.test/test.mpd", testData); diff --git a/tests/check/elements/hls_demux.c b/tests/check/elements/hls_demux.c index 0918766ad..8953458ba 100644 --- a/tests/check/elements/hls_demux.c +++ b/tests/check/elements/hls_demux.c @@ -374,7 +374,15 @@ GST_START_TEST (testSeek) http_src_callbacks.src_start = gst_hlsdemux_test_src_start; http_src_callbacks.src_create = gst_hlsdemux_test_src_create; + /* seek to 5ms. + * Because there is only one fragment, we expect the whole file to be + * downloaded again + */ engineTestData->threshold_for_seek = 20 * TS_PACKET_LEN; + engineTestData->seek_event = + gst_event_new_seek (1.0, GST_FORMAT_TIME, + GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT, GST_SEEK_TYPE_SET, + 5 * GST_MSECOND, GST_SEEK_TYPE_NONE, 0); gst_test_http_src_install_callbacks (&http_src_callbacks, &hlsTestCase); gst_adaptive_demux_test_seek (DEMUX_ELEMENT_NAME, |