summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFlorin Apostol <florin.apostol@oregan.net>2016-01-07 12:50:06 +0000
committerThiago Santos <thiagoss@osg.samsung.com>2016-02-09 10:21:57 -0300
commit13f66a68edfc54f51c7743ac671d1a3eea164d38 (patch)
treed6db0fedd6411690062734a4eaaef5813215f01c /tests
parent7ed4f6f03fb374828dad06810c01341537cf4f92 (diff)
downloadgstreamer-plugins-bad-13f66a68edfc54f51c7743ac671d1a3eea164d38.tar.gz
adaptive_demux: tests: improved validation of pads
When removing a pad, the on_demuxPadRemoved function must find a stream for that pad. https://bugzilla.gnome.org/show_bug.cgi?id=760328
Diffstat (limited to 'tests')
-rw-r--r--tests/check/elements/adaptive_demux_engine.c38
1 files changed, 17 insertions, 21 deletions
diff --git a/tests/check/elements/adaptive_demux_engine.c b/tests/check/elements/adaptive_demux_engine.c
index 6bef4161c..b571fe336 100644
--- a/tests/check/elements/adaptive_demux_engine.c
+++ b/tests/check/elements/adaptive_demux_engine.c
@@ -344,33 +344,29 @@ on_demuxPadRemoved (GstElement * demux, GstPad * pad, gpointer user_data)
GstAdaptiveDemuxTestEnginePrivate *priv =
(GstAdaptiveDemuxTestEnginePrivate *) user_data;
GstAdaptiveDemuxTestOutputStream *stream = NULL;
+ GstStateChangeReturn ret;
+ GstState currentState, pending;
+ GstElement *appSink;
fail_unless (priv != NULL);
GST_DEBUG ("Pad removed: %" GST_PTR_FORMAT, pad);
GST_TEST_LOCK (priv);
- stream = getTestOutputDataByPad (priv, pad, FALSE);
- if (stream) {
- GstStateChangeReturn ret;
- GstState currentState, pending;
- GstElement *appSink;
-
- if (priv->callbacks->demux_pad_removed) {
- priv->callbacks->demux_pad_removed (&priv->engine, stream,
- priv->user_data);
- }
- fail_unless (stream->appsink != NULL);
- fail_unless (stream->internal_pad != NULL);
- gst_object_unref (stream->internal_pad);
- stream->internal_pad = NULL;
- appSink = GST_ELEMENT (stream->appsink);
- ret = gst_element_get_state (appSink, &currentState, &pending, 0);
- if ((ret == GST_STATE_CHANGE_SUCCESS && currentState == GST_STATE_PLAYING)
- || (ret == GST_STATE_CHANGE_ASYNC && pending == GST_STATE_PLAYING)) {
- GST_DEBUG ("Changing AppSink element to PAUSED");
- gst_element_set_state (appSink, GST_STATE_PAUSED);
- }
+ stream = getTestOutputDataByPad (priv, pad, TRUE);
+ if (priv->callbacks->demux_pad_removed) {
+ priv->callbacks->demux_pad_removed (&priv->engine, stream, priv->user_data);
+ }
+ fail_unless (stream->appsink != NULL);
+ fail_unless (stream->internal_pad != NULL);
+ gst_object_unref (stream->internal_pad);
+ stream->internal_pad = NULL;
+ appSink = GST_ELEMENT (stream->appsink);
+ ret = gst_element_get_state (appSink, &currentState, &pending, 0);
+ if ((ret == GST_STATE_CHANGE_SUCCESS && currentState == GST_STATE_PLAYING)
+ || (ret == GST_STATE_CHANGE_ASYNC && pending == GST_STATE_PLAYING)) {
+ GST_DEBUG ("Changing AppSink element to PAUSED");
+ gst_element_set_state (appSink, GST_STATE_PAUSED);
}
GST_TEST_UNLOCK (priv);
}