Class IndexSeekMap

  • All Implemented Interfaces:
    SeekMap

    public final class IndexSeekMap
    extends Object
    implements SeekMap
    A SeekMap implementation based on a mapping between times and positions in the input stream.
    • Constructor Detail

      • IndexSeekMap

        public IndexSeekMap​(long[] positions,
                            long[] timesUs,
                            long durationUs)
        Creates an instance.
        Parameters:
        positions - The positions in the stream corresponding to timesUs, in bytes.
        timesUs - The times corresponding to positions, in microseconds.
        durationUs - The duration of the input stream, or C.TIME_UNSET if it is unknown.
    • Method Detail

      • 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.