I would like to know the following things, Kindly help me to understand why we use these components in ExoPlayer?
return new DashMediaSource.Factory(
new DefaultDashChunkSource.Factory(mediaDataSourceFactory),
buildDataSourceFactory(false))
.setLoadErrorHandlingPolicy(new DefaultLoadErrorHandlingPolicy())
.setLivePresentationDelayMs(LIVE_PRESENTATION_DELAY)
.setDrmSessionManager(drmSessionManager)
.setManifestParser(new TvGoDashManifestParser())
.createMediaSource(mediaItem);
LIVE_PRESENTATION_DELAY = 10000
Here, what is the use of Live presentation delay in the above code if we reduce its value what would be the potential impact.
Also, we are setting the following buffering duration for load control. If we do changes on these items what would happen.
defaultLoadControl = new DefaultLoadControl.Builder()
.setAllocator(new DefaultAllocator(true, C.DEFAULT_BUFFER_SEGMENT_SIZE))
.setBufferDurationsMs(DEFAULT_MIN_BUFFER_MS,
DEFAULT_MAX_BUFFER_MS,
DEFAULT_BUFFER_FOR_PLAYBACK_MS,
DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS).build();
DEFAULT_MIN_BUFFER_MS = 15000
DEFAULT_MAX_BUFFER_MS = 50000
DEFAULT_BUFFER_FOR_PLAYBACK_MS = 1500
DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS = 3000
And if we didn't define load control for the ExoPlayer, then how does it handle these parameters by default?