Added interrupt back in spider, make opt scheduler schedule next chain on interrupt...
authorWim Taymans <wim.taymans@gmail.com>
Sun, 12 Jan 2003 20:28:08 +0000 (20:28 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Sun, 12 Jan 2003 20:28:08 +0000 (20:28 +0000)
Original commit message from CVS:
Added interrupt back in spider, make opt scheduler schedule next chain
on interrupt (like basic did)

gst/autoplug/gstautoplugcache.c
gst/autoplug/gstspideridentity.c
gst/schedulers/gstoptimalscheduler.c

index adaf02f..1c18dab 100644 (file)
@@ -234,9 +234,8 @@ gst_autoplugcache_loop (GstElement *element)
       gst_object_ref (GST_OBJECT (cache));
       g_signal_emit (G_OBJECT(cache), gst_autoplugcache_signals[CACHE_EMPTY], 0, NULL);
       if (GST_STATE(cache) != oldstate) {
-        gst_object_ref (GST_OBJECT (cache));
+        gst_object_unref (GST_OBJECT (cache));
         GST_DEBUG(GST_CAT_AUTOPLUG, "state changed during signal, aborting");
-        gst_element_yield (GST_ELEMENT (cache));
        return;
       }
       gst_object_unref (GST_OBJECT (cache));
index ca306ac..a250d82 100644 (file)
@@ -400,6 +400,8 @@ gst_spider_identity_src_loop (GstSpiderIdentity *ident)
     gst_spider_identity_dumb_loop (ident);
     return;
   }
+
+  gst_element_interrupt (GST_ELEMENT (ident));
 }
 /* This loop function is only needed when typefinding.
  */
index 4a7ddc5..935ea60 100644 (file)
@@ -1590,8 +1590,8 @@ gst_opt_scheduler_iterate (GstScheduler *sched)
         scheduled = TRUE;
       }
 
-      /* don't schedule any more chains when interrupted or in error */
-      if (osched->state != GST_OPT_SCHEDULER_STATE_RUNNING)
+      /* don't schedule any more chains when in error */
+      if (osched->state == GST_OPT_SCHEDULER_STATE_ERROR)
         break;
     }