public interface

TimestampIterator

 androidx.media3.common.util.TimestampIterator

Subclasses:

ConstantRateTimestampIterator

Gradle dependencies

compile group: 'androidx.media3', name: 'media3-common', version: '1.5.0-alpha01'

  • groupId: androidx.media3
  • artifactId: media3-common
  • version: 1.5.0-alpha01

Artifact androidx.media3:media3-common:1.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Overview

A primitive long iterator used for generating sequences of timestamps.

Summary

Methods
public TimestampIteratorcopyOf()

Returns fresh copy of the iterator.

public longgetLastTimestampUs()

Returns the last (final) timestamp this iterator generates, in microseconds.

public booleanhasNext()

Returns whether there is another element.

public longnext()

Returns the next timestamp.

Methods

public boolean hasNext()

Returns whether there is another element.

public long next()

Returns the next timestamp.

public TimestampIterator copyOf()

Returns fresh copy of the iterator.

public long getLastTimestampUs()

Returns the last (final) timestamp this iterator generates, in microseconds.

This method returns C.TIME_UNSET if the last timestamp is unknown, or when no timestamp will be generated.

Source

/*
 * Copyright 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package androidx.media3.common.util;

import androidx.media3.common.C;

/** A primitive long iterator used for generating sequences of timestamps. */
@UnstableApi
public interface TimestampIterator {

  /** Returns whether there is another element. */
  boolean hasNext();

  /** Returns the next timestamp. */
  long next();

  /** Returns fresh copy of the iterator. */
  TimestampIterator copyOf();

  /**
   * Returns the last (final) timestamp this iterator generates, in microseconds.
   *
   * <p>This method returns {@link C#TIME_UNSET} if the last timestamp is unknown, or when no
   * timestamp will be generated.
   */
  default long getLastTimestampUs() {
    return C.TIME_UNSET;
  }
}