Class ChunkIndex

  • All Implemented Interfaces:
    SeekMap

    public final class ChunkIndex
    extends Object
    implements SeekMap
    Defines chunks of samples within a media stream.
    • Field Detail

      • length

        public final int length
        The number of chunks.
      • sizes

        public final int[] sizes
        The chunk sizes, in bytes.
      • offsets

        public final long[] offsets
        The chunk byte offsets.
      • durationsUs

        public final long[] durationsUs
        The chunk durations, in microseconds.
      • timesUs

        public final long[] timesUs
        The start time of each chunk, in microseconds.
    • Constructor Detail

      • ChunkIndex

        public ChunkIndex​(int[] sizes,
                          long[] offsets,
                          long[] durationsUs,
                          long[] timesUs)
        Parameters:
        sizes - The chunk sizes, in bytes.
        offsets - The chunk byte offsets.
        durationsUs - The chunk durations, in microseconds.
        timesUs - The start time of each chunk, in microseconds.
    • Method Detail

      • getChunkIndex

        public int getChunkIndex​(long timeUs)
        Obtains the index of the chunk corresponding to a given time.
        Parameters:
        timeUs - The time, in microseconds.
        Returns:
        The index of the corresponding chunk.
      • isSeekable

        public boolean isSeekable()
        Description copied from interface: SeekMap
        Returns whether seeking is supported.
        Specified by:
        isSeekable in interface SeekMap
        Returns:
        Whether seeking is supported.
      • getDurationUs

        public long getDurationUs()
        Description copied from interface: SeekMap
        Returns the duration of the stream in microseconds.
        Specified by:
        getDurationUs in interface SeekMap
        Returns:
        The duration of the stream in microseconds, or C.TIME_UNSET if the duration is unknown.
      • getSeekPoints

        public SeekMap.SeekPoints getSeekPoints​(long timeUs)
        Description copied from interface: SeekMap
        Obtains seek points for the specified seek time in microseconds. The returned SeekMap.SeekPoints will contain one or two distinct seek points.

        Two seek points [A, B] are returned in the case that seeking can only be performed to discrete points in time, there does not exist a seek point at exactly the requested time, and there exist seek points on both sides of it. In this case A and B are the closest seek points before and after the requested time. A single seek point is returned in all other cases.

        Specified by:
        getSeekPoints in interface SeekMap
        Parameters:
        timeUs - A seek time in microseconds.
        Returns:
        The corresponding seek points.