Skip to content

Catch up playback problem, questions #2760

@alfonsoramosa

Description

@alfonsoramosa

Exoplayer 2.2.0
Device: Nexus player
Android 7.1.1

I'm trying to play Smooth Streaming Rolling Buffer CatchUp (CDN buffer) assets with Exoplayer.
The time reference for the chanks is not starting at 0, as happens with VOD assets, but for example at 14931911990078373, see manifest example:

<SmoothStreamingMedia MajorVersion="2" MinorVersion="0" TimeScale="10000000" Duration="15020292799">
<StreamIndex Type="audio" QualityLevels="1" TimeScale="10000000" Language="nor" Subtype="AACL" Name="audio_nor" Chunks="751" Url="QualityLevels({bitrate})/Fragments(audio_nor={start time})">
<QualityLevel Index="0" Bitrate="96000" CodecPrivateData="1190" SamplingRate="48000" Channels="2" BitsPerSample="16" PacketSize="4" AudioTag="255" FourCC="AACL"/>
<c t="14931911990078373" d="20053333"/>
<c d="20053334"/>
...

I'm having some problems in the Exoplayer wrapper, as it's expecting position received and passed to SimpleExoPlayer in the interval (0, duration), but for this asset it's in the interval (14931911990078373, 14931911990078373+duration), affected methods are:

player.getCurrentPosition();
player.seekTo(positionMs);

My questions are:

  1. Is it correct to receive current position player.getCurrentPosition() in the interval (14931911990078373, 14931911990078373+duration)? I mean, this position is relative to the manifest time or to the asset duration?
  2. If I need to do this "translation" in the wrapper, how can I get the starting time for the first chunk to use it in the wrapper?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions