Buffering settings for playbin are not optimal. Currently we have buffer-size set to 5MB and buffer-duration set to 5 seconds. When one of this values is reached durring buffering than buffering stops.
This means that buffer-size of 5MB is almost never filled, since buffer-duration is too low.
For example:
SD media(45min - 350MB) : ~650KB/5s
HD media(90min - 4000MB) : ~3700KB/5s
This causes prefill buffer mode to be almost unusable, because of incessant re-buffering, since buffer is immediately drained after reaching 100% to bigger HW buffer.
So either we should increase buffer duration to some reasonable limit ~40s or turn it off, meaning that buffering will always stop after it reaches 5MB, which significantnly reduces re-buffering.
I did tests on et6500 with gst1.0:
There is no bottleneck on source's side
buffer-duration 5s:
- default buffer mode - 410MB/50min(SD) sometimes stuttering
- default buffer mode - 900MB/50min(HD) stuttering
- prefill buffer mode - 410MB/50min(SD) endless re-buffering
- prefill buffer mode - 900MB/50min(HD) endless re-buffering
buffer-duration turned off:
- default buffer mode - 410MB/50min(SD) seamless playback
- default buffer mode - 900MB/50min(HD) stuttering
- prefill buffer mode - 410MB/50min(SD) seamless playback
- prefill buffer mode - 900MB/50min(HD) one time re-buffering, then seamless playback
So it improves buffering performance, mainly in prefill buffer mode.