
The HLS Parser converts from a string decimal duration in seconds into long microseconds. Because the conversion passes through a java double type it can result in representation errors. For example: `#EXTINF:4.004` -> `Segment.durationUs` of 4003999 This matters because the first sample (which is the IDR) for a segment will be discarded following a seek because of the logic in the `SampleQueue`: ````java buffer.timeUs = timesUs[relativeReadIndex]; if (buffer.timeUs < startTimeUs) { buffer.addFlag(C.BUFFER_FLAG_DECODE_ONLY); } ````
ExoPlayer library
The ExoPlayer library is split into multiple modules. See ExoPlayer's top level README for more information about the available library modules and how to use them.