}
static void
-gst_multi_file_src_init (GstMultiFileSrc * multifilesrc,
- GstMultiFileSrcClass * g_class)
+gst_multi_file_src_init (GstMultiFileSrc * multifilesrc)
{
+ multifilesrc->start_index = DEFAULT_INDEX;
multifilesrc->index = DEFAULT_INDEX;
+ multifilesrc->stop_index = -1;
multifilesrc->filename = g_strdup (DEFAULT_LOCATION);
multifilesrc->successful_read = FALSE;
}
multifilesrc->successful_read = TRUE;
multifilesrc->index++;
+ if (multifilesrc->stop_index != -1 &&
+ multifilesrc->index >= multifilesrc->stop_index) {
+ multifilesrc->index = multifilesrc->start_index;
+ }
buf = gst_buffer_new ();
- GST_BUFFER_DATA (buf) = (unsigned char *) data;
- GST_BUFFER_MALLOCDATA (buf) = GST_BUFFER_DATA (buf);
- GST_BUFFER_SIZE (buf) = size;
+ gst_buffer_take_memory (buf, -1,
+ gst_memory_new_wrapped (0, data, g_free, size, 0, size));
GST_BUFFER_OFFSET (buf) = multifilesrc->offset;
GST_BUFFER_OFFSET_END (buf) = multifilesrc->offset + size;
multifilesrc->offset += size;