Skip to content

Re-evaluate + refine ExoPlayer's default buffer policy #2083

@WeiChungChang

Description

@WeiChungChang

Hi all:

I am testing the streaming and find the buffering mechanism is interesting.

By default, the maxBufferUs & minBufferUs are 30 & 15 seconds respectively.

accordingly,
isBuffering = bufferTimeState == BELOW_LOW_WATERMARK || (bufferTimeState == BETWEEN_WATERMARKS && isBuffering && !targetBufferSizeReached);
Typically we will continue buffering until the amount of buffering data is over 30 seconds.
Then it stops buffering to wait until the amount of buffering data is less than 15 seconds and re-fetch again when.

I am wondering what is the purpose it is designed for?
I can not figure out a scenario when it has gains from this policy...
Is it make sense if we just simply do download once the buffering data is less than 30 seconds?
Instead of current policy which waits to the buffering data is less than 15 seconds

Does someone know the intention for it?
Thanks.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions