gst/schedulers/gstoptimalscheduler.c: Aplied patch #154061. Running a pipeline in...
authorWim Taymans <wim.taymans@gmail.com>
Tue, 2 Nov 2004 13:08:41 +0000 (13:08 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Tue, 2 Nov 2004 13:08:41 +0000 (13:08 +0000)
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_group),
(gst_opt_scheduler_iterate):
Aplied patch #154061. Running a pipeline in which an element
calls GST_ELEMENT_ERROR in the chain function, the opt
scheduler doesn't unref the chain so it never gets freed.

ChangeLog
gst/schedulers/gstoptimalscheduler.c

index 3e3b828..0e6973d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-11-02  Sebastien Cote <sc5 at hermes.usherb.ca>
+
+       * gst/schedulers/gstoptimalscheduler.c: (add_to_group),
+       (gst_opt_scheduler_iterate):
+       Aplied patch #154061. Running a pipeline in which an element 
+       calls GST_ELEMENT_ERROR in the chain function, the opt 
+       scheduler doesn't unref the chain so it never gets freed.
+
 2004-11-02  Wim Taymans  <wim@fluendo.com>
 
        * gst/gststructure.c: (gst_structure_get_abbrs),
index b2246e2..da699b9 100644 (file)
@@ -2607,6 +2607,8 @@ gst_opt_scheduler_iterate (GstScheduler * sched)
       /* don't schedule any more chains when in error */
       if (osched->state == GST_OPT_SCHEDULER_STATE_ERROR) {
         GST_ERROR_OBJECT (sched, "in error state");
+        /* unref the chain here as we move out of the while loop */
+        unref_chain (chain);
         break;
       } else if (osched->state == GST_OPT_SCHEDULER_STATE_INTERRUPTED) {
         GST_DEBUG_OBJECT (osched, "got interrupted, continue with next chain");