Skip to content

ExoPlayer doesn't apply presentationTimeOffset of the DASH EventStream #10460

Closed

Description

@vkoehler

ExoPlayer Version

2.18.0

Devices that reproduce the issue

device independent

Devices that do not reproduce the issue

No response

Reproducible in the demo app?

Yes

Reproduction steps

  1. Play the attached media in the demo apply
  2. Seek to the position shortly before the end of the media
  3. Wait until the end of the media

Expected result

Player changes the playback state to Player.STATE_ENDED at the end of the media

Actual result

Player stays in the playback state Player.STATE_READY

This happens because MetadataRenderer gets stuck right after the start of the playback and can't output pending metadata with pendingMetadataTimestampUs=1657987406382857. This timestamp corresponds to the presentationTime of the Event in the EventStream in the mpd.

When removing EventStream from the mpd or setting presentationTime of the Event to presentationTime - presentationTimeOffset in the mpd, issue disappears.

Media

by email

Bug Report

Activity

  1. ojw28 commented on Jul 21, 2022

    @ojw28
    Contributor

    The DASH specification doesn't define presentationTimeOffset on EventStream [*], so I think it's correct that the player is ignoring it. The Event elements should just have the correct timestamps specified on them directly. You indicate that if you change the manifest to make this the case then the issue goes away, so I think this is a content problem.

    As a related note, when an Event has a timestamp that's (incorrectly) past the end of the period duration, we would ideally drop it rather than delaying the transition to STATE_ENDED. Fixing this is tracked by #9969.

    Closing this both as "bad media" and as a duplicate of #9969.

    [*] I looked at ISO/IEC 23009-1:2019(E) to reach this conclusion. If there's a newer revision that does include presentationTimeOffset attribute on EventStream, then please let us know!

  2. self-assigned this
    on Jul 21, 2022
  3. vkoehler commented on Jul 22, 2022

    @vkoehler
    Author

    @ojw28 There are two editions of ISO/IEC 23009-1:2019(E)
    3rd edition 2019-08
    4th edition 2019-12
    presentationTimeOffset on EventStream has been introduced in the 4th edition. Would you check it again please? https://standards.iso.org/ittf/PubliclyAvailableStandards/c079329_ISO_IEC_23009-1_2019(E).zip

  4. reopened this on Jul 25, 2022
  5. ojw28 commented on Jul 25, 2022

    @ojw28
    Contributor

    Thanks for the pointer. We will update DashManifestParser to parse and apply EventStream@presentationTimeOffset .

  6. locked and limited conversation to collaborators on Sep 24, 2022
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