summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThiago Santos <thiagoss@osg.samsung.com>2015-12-23 15:25:29 -0300
committerThiago Santos <thiagoss@osg.samsung.com>2016-01-06 10:23:13 -0300
commit5bc6769532156c4595024d0a5bfc161cfc5e5bd8 (patch)
tree56801413d1256400900bf12fcbe81eb899de9766 /tests
parent2784ff669395913f9c0e88a0ee579fc0249cf772 (diff)
downloadgstreamer-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.c16
-rw-r--r--tests/check/elements/adaptive_demux_common.h1
-rw-r--r--tests/check/elements/dash_demux.c9
-rw-r--r--tests/check/elements/hls_demux.c8
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,