*** gstqueue.c.orig Mon Mar 24 11:45:12 2003 --- gstqueue.c Wed Mar 26 13:05:13 2003 *************** *** 581,586 **** --- 581,587 ---- gboolean res; gint event_type; gint flag_flush = 0; + gboolean writer = FALSE; queue = GST_QUEUE (GST_OBJECT_PARENT (pad)); *************** *** 606,615 **** --- 607,618 ---- case GST_EVENT_FLUSH: GST_DEBUG_ELEMENT (GST_CAT_DATAFLOW, queue, "FLUSH event, flushing queue\n"); gst_queue_locked_flush (queue); + writer = queue->writer; break; case GST_EVENT_SEEK: if (flag_flush) { gst_queue_locked_flush (queue); + writer = queue->writer; } default: break; *************** *** 617,622 **** --- 620,631 ---- done: g_mutex_unlock (queue->qlock); + + if (writer) + { + GST_DEBUG_ELEMENT (GST_CAT_DATAFLOW, queue, "signalling not_full following flush on src pad\n"); + g_cond_signal (queue->not_full); + } /* we have to claim success, but we don't really know */ return res;