gst/gstqueue.c: Fix nasty refcount bug.

Original commit message from CVS:
* gst/gstqueue.c: (gst_queue_handle_sink_event):
Fix nasty refcount bug.
This commit is contained in:
Wim Taymans 2005-07-17 22:22:52 +00:00
parent cb5b884215
commit e5c9ef1341
3 changed files with 11 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2005-07-18 Wim Taymans <wim@fluendo.com>
* gst/gstqueue.c: (gst_queue_handle_sink_event):
Fix nasty refcount bug.
2005-07-16 Philippe Khalaf <burger@speedy.org>
* gst/elements/gstfdsrc.c:
* gst/elements/gstfdsrc.h:

View file

@ -26,8 +26,6 @@
#include "gst_private.h"
#include "gstqueue.h"
#include "gstscheduler.h"
#include "gstpipeline.h"
#include "gstevent.h"
#include "gstinfo.h"
#include "gsterror.h"
@ -471,7 +469,8 @@ gst_queue_handle_sink_event (GstPad * pad, GstEvent * event)
case GST_EVENT_FLUSH:
STATUS (queue, "received flush event");
/* forward event */
gst_pad_event_default (pad, event);
gst_event_ref (event);
gst_pad_push_event (queue->srcpad, event);
if (GST_EVENT_FLUSH_DONE (event)) {
GST_QUEUE_MUTEX_LOCK;
queue->flushing = FALSE;
@ -493,6 +492,7 @@ gst_queue_handle_sink_event (GstPad * pad, GstEvent * event)
gst_pad_pause_task (queue->srcpad);
GST_CAT_LOG_OBJECT (queue_dataflow, queue, "loop stopped");
}
gst_event_unref (event);
goto done;
case GST_EVENT_EOS:
STATUS (queue, "received EOS");

View file

@ -26,8 +26,6 @@
#include "gst_private.h"
#include "gstqueue.h"
#include "gstscheduler.h"
#include "gstpipeline.h"
#include "gstevent.h"
#include "gstinfo.h"
#include "gsterror.h"
@ -471,7 +469,8 @@ gst_queue_handle_sink_event (GstPad * pad, GstEvent * event)
case GST_EVENT_FLUSH:
STATUS (queue, "received flush event");
/* forward event */
gst_pad_event_default (pad, event);
gst_event_ref (event);
gst_pad_push_event (queue->srcpad, event);
if (GST_EVENT_FLUSH_DONE (event)) {
GST_QUEUE_MUTEX_LOCK;
queue->flushing = FALSE;
@ -493,6 +492,7 @@ gst_queue_handle_sink_event (GstPad * pad, GstEvent * event)
gst_pad_pause_task (queue->srcpad);
GST_CAT_LOG_OBJECT (queue_dataflow, queue, "loop stopped");
}
gst_event_unref (event);
goto done;
case GST_EVENT_EOS:
STATUS (queue, "received EOS");