Skip to content

DASH thumbnails, where image track has large presentationTimeOffset, break when scrubbing on catchup/startover streams #3334

Description

@jrocharodrigues

Version

Media3 1.10.1

More version details

No response

Devices that reproduce the issue

Reproduced on multiple Android TV (API 28+) devices (including Chromecast with Google TV and Google Streamer) and Pixel 9 pro but the bug is device-independent.

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

  1. Apply patch on demo app
  2. Update assets.json setting Image thumbnails + presentationTimeOffset (repro) url to the one sent by email
  3. Play Image thumbnails + presentationTimeOffset
  4. Use seekbar to seek forward almost to the end of stream
  5. Use seekbar to seek backward a few times
  6. Use seekbar to seek forward a few times

media3_thumbnail_problem.patch

Expected result

Images should update both update both when seeking forward and when seeking backward.
EventLogger should log loading events both when seeking forward and when seeking back

Actual result

When seeking forward the first time, images are a update and i can see a loading event in the logs after seeking.
When seeking backward, images are not updated and i can't see a loading event in the logs after seeking.
When seeking forward the second time images are not updated and i can't see a loading event in the logs after seeking until i past the position i was before seeking backward.

If we setImageOutput on the player and add logs on onImageAvailable function, when we seek forward we can see that it reports periodTime − presentationTimeOffset, e.g. -1783403928629946, -1783403922629946. Every image sample is stamped ~56 years in the past.
When seeking backward, we can see in the onImageAvailable logs that presentationTimeUs does not change when we seek.

Media

I'll send media url by email

Bug Report

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions