You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pixel 5 Android 13
Samsung S22 Android 13
Xiaomi mi-box 4 Android 10
and many other devices
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
In a DASH stream with the provided manifest, ExoPlayer incorrectly calculates getAvailableEndTimeInManifestUs in DashMediaSource. Specifically, when it reaches the calculation for periodStartTimeInManifestUs + index.getTimeUs(lastAvailableSegmentNum) + index.getDurationUs(lastAvailableSegmentNum, periodDurationUs), ExoPlayer calculates 68812608000000 for adaptationSetAvailableEndTimeInManifestUs in the video AdaptationSet, but 68812647999999 for the audio AdaptationSet. Due to ExoPlayer selecting the minimum of these values, it uses 68812647999999, resulting in a windowDurationUs of 86399999999 (and sometimes it changes to 86399979999) instead of 86400000000.
index.getTimeUs(lastAvailableSegmentNum) function return incorrect value and index.getDurationUs(lastAvailableSegmentNum, periodDurationUs) works fine.
This discrepancy appears when the segment number falls within the range 34359740-34999999.
Version
Media3 1.1.0 / ExoPlayer 2.19.0
More version details
No response
Devices that reproduce the issue
Pixel 5 Android 13
Samsung S22 Android 13
Xiaomi mi-box 4 Android 10
and many other devices
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
In a DASH stream with the provided manifest, ExoPlayer incorrectly calculates getAvailableEndTimeInManifestUs in DashMediaSource. Specifically, when it reaches the calculation for periodStartTimeInManifestUs + index.getTimeUs(lastAvailableSegmentNum) + index.getDurationUs(lastAvailableSegmentNum, periodDurationUs), ExoPlayer calculates 68812608000000 for adaptationSetAvailableEndTimeInManifestUs in the video AdaptationSet, but 68812647999999 for the audio AdaptationSet. Due to ExoPlayer selecting the minimum of these values, it uses 68812647999999, resulting in a windowDurationUs of 86399999999 (and sometimes it changes to 86399979999) instead of 86400000000.
index.getTimeUs(lastAvailableSegmentNum) function return incorrect value and index.getDurationUs(lastAvailableSegmentNum, periodDurationUs) works fine.
This discrepancy appears when the segment number falls within the range 34359740-34999999.
Below is the manifest used:
Expected result
windowDurationUs accurate
Actual result
the calculation of windowDurationUs is in accurate
Media
Not applicable
Bug Report
adb bugreport
to android-media-github@google.com after filing this issue.The text was updated successfully, but these errors were encountered: