Commit b0ac959e by kimvde Committed by Marc Baechinger

Add IntRange annotation to onTrackCount

PiperOrigin-RevId: 496942702
parent 6ffef38c
......@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.transformer;
import android.content.Context;
import android.os.Looper;
import androidx.annotation.IntRange;
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.MediaItem;
import com.google.android.exoplayer2.util.Clock;
......@@ -129,7 +130,7 @@ public interface AssetLoader {
void onDurationUs(long durationUs);
/** Called when the number of tracks output by the asset loader is known. */
void onTrackCount(int trackCount);
void onTrackCount(@IntRange(from = 1) int trackCount);
/**
* Called when the information on a track is known.
......
......@@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_BUFFER_FO
import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS;
import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_MAX_BUFFER_MS;
import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_MIN_BUFFER_MS;
import static com.google.android.exoplayer2.PlaybackException.ERROR_CODE_FAILED_RUNTIME_CHECK;
import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_AVAILABLE;
import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_NOT_STARTED;
import static com.google.android.exoplayer2.transformer.Transformer.PROGRESS_STATE_UNAVAILABLE;
......@@ -348,7 +349,15 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
if (tracks.isTypeSelected(C.TRACK_TYPE_VIDEO)) {
trackCount++;
}
assetLoaderListener.onTrackCount(trackCount);
if (trackCount == 0) {
assetLoaderListener.onError(
new PlaybackException(
"The asset loader has no track to output.",
/* cause= */ null,
ERROR_CODE_FAILED_RUNTIME_CHECK));
} else {
assetLoaderListener.onTrackCount(trackCount);
}
}
@Override
......
......@@ -401,8 +401,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@Override
public void onTrackCount(int trackCount) {
if (trackCount == 0) {
onError(new IllegalStateException("The output does not contain any tracks."));
if (trackCount <= 0) {
onError(new IllegalStateException("AssetLoader instances must provide at least 1 track."));
return;
}
this.trackCount.set(trackCount);
if (forceSilentAudio) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment