gint rate, bps, bpf;
gboolean had_mute = FALSE;
gboolean is_eos = TRUE;
+ gboolean is_discont = FALSE;
adder = GST_ADDER (user_data);
GstEvent *event;
GST_INFO_OBJECT (adder->srcpad, "send pending stream start event");
- /* FIXME: create id based on input ids, we can't use
+ /* FIXME: create id based on input ids, we can't use
* gst_pad_create_stream_id() though as that only handles 0..1 sink-pad
*/
g_snprintf (s_id, sizeof (s_id), "adder-%08x", g_random_int ());
FALSE)) {
GstEvent *event;
- /*
+ /*
* When seeking we set the start and stop positions as given in the seek
* event. We also adjust offset & timestamp accordingly.
* This basically ignores all newsegments sent by upstream.
"start:%" G_GINT64_FORMAT " end:%" G_GINT64_FORMAT " failed",
adder->segment.start, adder->segment.stop);
}
+ is_discont = TRUE;
}
/* get available bytes for reading, this can be 0 which could mean empty
GST_BUFFER_OFFSET_END (outbuf) = adder->offset;
GST_BUFFER_DURATION (outbuf) = adder->segment.position - next_timestamp;
}
+ if (is_discont) {
+ GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+ } else {
+ GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_DISCONT);
+ }
adder->offset = next_offset;
adder->segment.position = next_timestamp;