diff options
author | Florin Apostol <florin.apostol@oregan.net> | 2016-01-07 12:50:06 +0000 |
---|---|---|
committer | Thiago Santos <thiagoss@osg.samsung.com> | 2016-02-09 10:21:57 -0300 |
commit | 13f66a68edfc54f51c7743ac671d1a3eea164d38 (patch) | |
tree | d6db0fedd6411690062734a4eaaef5813215f01c /tests | |
parent | 7ed4f6f03fb374828dad06810c01341537cf4f92 (diff) | |
download | gstreamer-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.c | 38 |
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, ¤tState, &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, ¤tState, &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); } |