mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
make gst_thread_change_state more forgiving
Original commit message from CVS: make gst_thread_change_state more forgiving
This commit is contained in:
parent
ca709618f9
commit
ef37a388d0
1 changed files with 6 additions and 2 deletions
|
@ -256,7 +256,6 @@ gst_thread_change_state (GstElement *element)
|
||||||
gboolean stateset = GST_STATE_SUCCESS;
|
gboolean stateset = GST_STATE_SUCCESS;
|
||||||
gint transition;
|
gint transition;
|
||||||
pthread_t self = pthread_self();
|
pthread_t self = pthread_self();
|
||||||
GstElement *peerelement;
|
|
||||||
|
|
||||||
g_return_val_if_fail (GST_IS_THREAD(element), FALSE);
|
g_return_val_if_fail (GST_IS_THREAD(element), FALSE);
|
||||||
// GST_DEBUG_ENTER("(\"%s\")",GST_ELEMENT_NAME(element));
|
// GST_DEBUG_ENTER("(\"%s\")",GST_ELEMENT_NAME(element));
|
||||||
|
@ -394,10 +393,15 @@ gst_thread_change_state (GstElement *element)
|
||||||
GList *pads = GST_ELEMENT_PADS(e);
|
GList *pads = GST_ELEMENT_PADS(e);
|
||||||
while (pads)
|
while (pads)
|
||||||
{
|
{
|
||||||
|
GstRealPad *peer;
|
||||||
|
GstElement *peerelement;
|
||||||
GstPad *p = GST_PAD(pads->data);
|
GstPad *p = GST_PAD(pads->data);
|
||||||
pads = g_list_next(pads);
|
pads = g_list_next(pads);
|
||||||
|
|
||||||
peerelement = GST_PAD_PARENT(GST_PAD_PEER(p));
|
peer = GST_PAD_PEER(p);
|
||||||
|
if (!peer) continue;
|
||||||
|
|
||||||
|
peerelement = GST_PAD_PARENT(peer);
|
||||||
if (!peerelement) continue; // deal with case where there's no peer
|
if (!peerelement) continue; // deal with case where there's no peer
|
||||||
|
|
||||||
if (!GST_FLAG_IS_SET(peerelement,GST_ELEMENT_DECOUPLED)) {
|
if (!GST_FLAG_IS_SET(peerelement,GST_ELEMENT_DECOUPLED)) {
|
||||||
|
|
Loading…
Reference in a new issue