Merge branch 'master' into 0.11
authorWim Taymans <wim.taymans@collabora.co.uk>
Sun, 10 Jul 2011 09:42:37 +0000 (11:42 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Sun, 10 Jul 2011 09:42:37 +0000 (11:42 +0200)
1  2 
gst/multifile/gstmultifilesrc.c

@@@ -136,9 -160,12 +155,11 @@@ gst_multi_file_src_class_init (GstMulti
  }
  
  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;
  }
@@@ -321,10 -379,15 +380,14 @@@ gst_multi_file_src_create (GstPushSrc 
  
    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;