- bufferlist = gst_buffer_list_make_writable (bufferlist);
- it = gst_buffer_list_iterate (bufferlist);
- while (gst_buffer_list_iterator_next_group (it)) {
- GstBuffer *rtpbuf;
-
- rtpbuf = gst_buffer_list_iterator_next (it);
- rtpbuf = gst_buffer_make_writable (rtpbuf);
-
- drop = !process_buffer_locked (rtp_mux, padpriv, rtpbuf);
-
- if (drop)
- break;
-
- gst_buffer_list_iterator_take (it, rtpbuf);
-
- do {
- if (GST_BUFFER_DURATION_IS_VALID (rtpbuf) &&
- GST_BUFFER_TIMESTAMP_IS_VALID (rtpbuf))
- rtp_mux->last_stop = GST_BUFFER_TIMESTAMP (rtpbuf) +
- GST_BUFFER_DURATION (rtpbuf);
- else
- rtp_mux->last_stop = GST_CLOCK_TIME_NONE;
-
- gst_buffer_list_iterator_take (it, rtpbuf);
-
- } while ((rtpbuf = gst_buffer_list_iterator_next (it)) != NULL);
-
-
- }
- gst_buffer_list_iterator_free (it);
-
- if (!drop && rtp_mux->segment_pending) {
- /*
- * We set the start at 0, because we re-timestamps to the running time
- */
- newseg_event = gst_event_new_new_segment_full (FALSE, 1.0, 1.0,
- GST_FORMAT_TIME, 0, -1, 0);