decodebin2: Set the multiqueue limits to the playing limits after overrun too
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 25 Nov 2011 10:11:12 +0000 (11:11 +0100)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Fri, 25 Nov 2011 10:12:10 +0000 (11:12 +0100)
We don't expect any new pads anymore and prerolling is finished now.

gst/playback/gstdecodebin2.c

index ecf2a4d7c17a079f9ce1e5108ff12cdcb5fc83a8..2d6f8579c20a0b36e69df1b3baeace0e7ea522ed 100644 (file)
@@ -2754,6 +2754,12 @@ multi_queue_overrun_cb (GstElement * queue, GstDecodeGroup * group)
       queue);
 
   group->overrun = TRUE;
+  /* this group has prerolled enough to not need more pads,
+   * we can probably set its buffering state to playing now */
+  GST_DEBUG_OBJECT (group->dbin, "Setting group %p multiqueue to "
+      "'playing' buffering mode", group);
+  decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
+      (group->parent ? group->parent->seekable : TRUE));
 
   /* FIXME: We should make sure that everything gets exposed now
    * even if child chains are not complete because the will never