Skip to content

Value returned by Player.getCurrentPosition incorrect after scrubbing in HLS video #356

Closed
@micahrollinsmlb

Description

@micahrollinsmlb

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

  1. [Optional] Update the demo app to skip backwards by 30 seconds instead of 5 seconds
  2. [Optional] Update the demo app to keep the video controls/playhead visible to make it easier to watch the playhead
  3. [Optional] Update the demo app to automatically seek to 920000ms into the video (15:20 in the timeline)
  4. Play the attached media (https://vr-assets.mlb.com/AWS/DEV/6da78dc5-2142-4bd6-adc9-b654d4750635/camA.m3u8) in the demo app
  5. If Repro Step 3 was omitted, skip to approximately 15:20
  6. Allow to play until 15:40, right when the announcer says: "It's a chance for him to spend a..."
  7. Skip backward 30 seconds, which should take the playhead to 15:10
  8. Allow to play normally back until 15:40 observing the content of the audio/video in relation to the playhead

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions