else
adder->segment_position = 0;
adder->segment_pending = TRUE;
+ adder->flush_stop_pending =
+ ((flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH);
GST_OBJECT_UNLOCK (adder->collect);
GST_DEBUG_OBJECT (adder, "forwarding seek event: %" GST_PTR_FORMAT,
event);
* and downstream (using our source pad, the bastard!).
*/
adder->segment_pending = TRUE;
+ adder->flush_stop_pending = FALSE;
break;
default:
break;
adder->timestamp, adder->segment_position);
}
}
+ if (adder->flush_stop_pending) {
+ gst_pad_push_event (adder->srcpad, gst_event_new_flush_stop ());
+ adder->flush_stop_pending = FALSE;
+ }
/* set timestamps on the output buffer */
GST_BUFFER_TIMESTAMP (outbuf) = adder->timestamp;
gboolean segment_pending;
guint64 segment_position;
gdouble segment_rate;
+ /* src event handling */
+ gboolean flush_stop_pending;
};
struct _GstAdderClass {