Add the GST_ELEMENT_NO_ENTRY flag, which when set will force the scheduler to skip over an element as an option for t...

Original commit message from CVS:
Add the GST_ELEMENT_NO_ENTRY flag, which when set will force the scheduler
to skip over an element as an option for the first cothread jump.  This is
needed because libraries like mad don't ever seem to want to quit.  Thus
they ignore COTHREAD_STOPPING and can't be trusted to be the entry.
This commit is contained in:
Erik Walthinsen 2001-05-04 22:14:35 +00:00
parent 649c98a5f7
commit 9bc5f785d7
2 changed files with 6 additions and 1 deletions

View file

@ -106,6 +106,9 @@ typedef enum {
/***** !!!!! need to have a flag that says that an element must
*not* be an entry into a scheduling chain !!!!! *****/
/* this element for some reason doesn't obey COTHREAD_STOPPING, or
has some other reason why it can't be the entry */
GST_ELEMENT_NO_ENTRY,
/* there is a new loopfunction ready for placement */
GST_ELEMENT_NEW_LOOPFUNC,
@ -118,7 +121,7 @@ typedef enum {
GST_ELEMENT_EOS,
/* use some padding for future expansion */
GST_ELEMENT_FLAG_LAST = GST_OBJECT_FLAG_LAST + 8,
GST_ELEMENT_FLAG_LAST = GST_OBJECT_FLAG_LAST + 12,
} GstElementFlags;
#define GST_ELEMENT_IS_THREAD_SUGGESTED(obj) (GST_FLAG_IS_SET(obj,GST_ELEMENT_THREAD_SUGGESTED))

View file

@ -1310,6 +1310,8 @@ GST_DEBUG(GST_CAT_SCHEDULING,"there are %d elements in this chain\n",chain->num_
elements = g_list_next(elements);
if (GST_FLAG_IS_SET(entry,GST_ELEMENT_DECOUPLED))
GST_DEBUG(GST_CAT_SCHEDULING,"entry \"%s\" is DECOUPLED, skipping\n",GST_ELEMENT_NAME(entry));
else if (GST_FLAG_IS_SET(entry,GST_ELEMENT_NO_ENTRY))
GST_DEBUG(GST_CAT_SCHEDULING,"entry \"%s\" is not valid, skipping\n",GST_ELEMENT_NAME(entry));
else
break;
}