* after the source that measures the datarate and scales this
* queue of encoded data instead.
*/
- g_object_set (G_OBJECT (preroll),
- "max-size-buffers", 0, "max-size-bytes",
- ((type == GST_STREAM_TYPE_VIDEO) ? 25 : 2) * 1024 * 1024,
- "max-size-time", play_base_bin->queue_size, NULL);
+ if (play_base_bin->raw_decoding_mode) {
+ if (type == GST_STREAM_TYPE_VIDEO) {
+ g_object_set (G_OBJECT (preroll),
+ "max-size-buffers", 2, "max-size-bytes", 0,
+ "max-size-time", (guint64) 0, NULL);
+ } else {
+ g_object_set (G_OBJECT (preroll),
+ "max-size-buffers", 0, "max-size-bytes",
+ 2 * 1024 * 1024, "max-size-time", play_base_bin->queue_size, NULL);
+ }
+ } else {
+ g_object_set (G_OBJECT (preroll),
+ "max-size-buffers", 0, "max-size-bytes",
+ ((type == GST_STREAM_TYPE_VIDEO) ? 25 : 2) * 1024 * 1024,
+ "max-size-time", play_base_bin->queue_size, NULL);
+ }
/* the overrun signal is always attached and serves two purposes:
*
GST_DEBUG_PAD_NAME (pad), GST_ELEMENT_NAME (element));
/* if this is a pad with all raw caps, we can expose it */
+ bin->raw_decoding_mode = TRUE;
if (has_all_raw_caps (pad, &is_raw) && is_raw) {
/* it's all raw, create output pads. */
new_decoded_pad_full (element, pad, FALSE, bin, FALSE);
if (!play_base_bin->need_rebuild)
return TRUE;
+ play_base_bin->raw_decoding_mode = FALSE;
GST_DEBUG_OBJECT (play_base_bin, "setup source");