-
Notifications
You must be signed in to change notification settings - Fork 416
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Value returned by Player.getCurrentPosition incorrect after scrubbing in HLS video #356
Comments
Hello @micahrollinsmlb, Thank you for reporting this issue and providing detailed instructions to replicate it. I can verify that this occurs when using the specified media source. @tianyif, could you kindly investigate this further? I could not find a similar issue with the media items existing in our demo app. |
Hello again, @tianyif! I was curious if you had any update on this issue? |
Hi @micahrollinsmlb, Sorry for the late update! It really took us long to figure out this issue. But don't worry, we like this interesting issue and we are happy to share the update! Firstly, we have a class For example, if you are seeking to the position 15:10, then the video segment index where the seek position 15:10 located is 228. While debugging we know the start time (in microseconds) of the segment 228 is While we don't expect the That is to say, we set the This is a bug in our HLS code to take the timestamp from emsg to calculate
Notice that in the return line, we do I will leave this issue open and mark this issue as a bug since we should fix it. Thanks so much for reporting this issue! |
And forgot to mention in the last reply. The |
That is really great to hear! Thank you for the hard work in tracking that down! |
Media3 Version
ExoPlayer 2.18.6
Devices that reproduce the issue
Oculus Quest 2
Galaxy Note 20
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
Expected result
The content of the audio/video is consistent for any point in the timeline
Actual result
It's not 100% repro, but with some decent consistency when timed right, the content of the audio/video will be off from the current position as reported by Player.getCurrentPosition. In my screen capture, for example, after I scrubbed backward, you can hear the announcer say "...is very comfortable in this venue" when the timeline says 15:10. However if you watch the source media (camA.m3u8), the announcer doesn't say that until 15:12, almost 15:13. Futhermore, prior to the backward scrub, you can hear the crack of the bat at 15:37, but after the backward scrub, the crack of the bat occurs at 15:35. This inconsistency is not limited to the audio, it's just harder to demonstrate the video inconsistency on a phone screen in the demo app. In VR, the video inconsistency is very noticeable.
The first three steps in the Repro Steps are optional, the bug will manifest without them. However, reproducing this bug is much easier with those changes.
Once the audio/video gets out of sync with the timeline, it will stay out of sync until another scrub is performed. At which point, it usually goes back in sync with the correct timeline.
Media
The source media is: https://vr-assets.mlb.com/AWS/DEV/6da78dc5-2142-4bd6-adc9-b654d4750635/camA.m3u8
I made a screen recording of this issue on a Galaxy Note 20: https://drive.google.com/file/d/1V5ouTLwnIAmEX_F7X9A6LTOt_Ip86ycx/view?usp=sharing
Bug Report
adb bugreport
to [email protected] after filing this issue.The text was updated successfully, but these errors were encountered: