diff --git a/extensions/vp9/src/main/java/com/google/android/exoplayer/ext/vp9/LibvpxVideoTrackRenderer.java b/extensions/vp9/src/main/java/com/google/android/exoplayer/ext/vp9/LibvpxVideoTrackRenderer.java index bbc31b38f0..10bf5c5f6a 100644 --- a/extensions/vp9/src/main/java/com/google/android/exoplayer/ext/vp9/LibvpxVideoTrackRenderer.java +++ b/extensions/vp9/src/main/java/com/google/android/exoplayer/ext/vp9/LibvpxVideoTrackRenderer.java @@ -15,6 +15,7 @@ */ package com.google.android.exoplayer.ext.vp9; +import com.google.android.exoplayer.C; import com.google.android.exoplayer.CodecCounters; import com.google.android.exoplayer.DecoderInputBuffer; import com.google.android.exoplayer.ExoPlaybackException; @@ -184,6 +185,11 @@ public final class LibvpxVideoTrackRenderer extends TrackRenderer { return isLibvpxAvailable() ? VpxDecoder.getLibvpxVersion() : null; } + @Override + protected int getTrackType() { + return C.TRACK_TYPE_VIDEO; + } + @Override protected int supportsFormat(Format format) { return isLibvpxAvailable() && MimeTypes.VIDEO_VP9.equalsIgnoreCase(format.sampleMimeType) diff --git a/library/src/main/java/com/google/android/exoplayer/C.java b/library/src/main/java/com/google/android/exoplayer/C.java index dad3b93ae4..f9b089a1a2 100644 --- a/library/src/main/java/com/google/android/exoplayer/C.java +++ b/library/src/main/java/com/google/android/exoplayer/C.java @@ -145,8 +145,13 @@ public final class C { public static final int TRACK_TYPE_TEXT = 3; /** - * A default size in bytes for an individual allocation that forms part of a larger buffer. + * A type constant for metadata tracks. */ + public static final int TRACK_TYPE_METADATA = 4; + + /** + * A default size in bytes for an individual allocation that forms part of a larger buffer. + */ public static final int DEFAULT_BUFFER_SEGMENT_SIZE = 64 * 1024; /** diff --git a/library/src/main/java/com/google/android/exoplayer/DummyTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/DummyTrackRenderer.java deleted file mode 100644 index 8f223fc33d..0000000000 --- a/library/src/main/java/com/google/android/exoplayer/DummyTrackRenderer.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2014 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 com.google.android.exoplayer; - -/** - * A {@link TrackRenderer} that does nothing. - */ -public final class DummyTrackRenderer extends TrackRenderer { - - @Override - protected int supportsFormat(Format format) throws ExoPlaybackException { - return TrackRenderer.FORMAT_UNSUPPORTED_TYPE; - } - - @Override - protected boolean isEnded() { - throw new IllegalStateException(); - } - - @Override - protected boolean isReady() { - throw new IllegalStateException(); - } - - @Override - protected void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException { - throw new IllegalStateException(); - } - - @Override - protected void reset(long positionUs) throws ExoPlaybackException { - throw new IllegalStateException(); - } - -} diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java index 493ea08b0e..e10a3583d6 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecAudioTrackRenderer.java @@ -181,6 +181,11 @@ public class MediaCodecAudioTrackRenderer extends MediaCodecTrackRenderer implem this.audioTrack = new AudioTrack(audioCapabilities, streamType); } + @Override + protected int getTrackType() { + return C.TRACK_TYPE_AUDIO; + } + @Override protected int supportsFormat(MediaCodecSelector mediaCodecSelector, Format format) throws DecoderQueryException { diff --git a/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java index daa98eb6e9..7eddd930f4 100644 --- a/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java @@ -220,6 +220,11 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer { lastReportedPixelWidthHeightRatio = -1; } + @Override + protected int getTrackType() { + return C.TRACK_TYPE_VIDEO; + } + @Override protected int supportsFormat(MediaCodecSelector mediaCodecSelector, Format format) throws DecoderQueryException { diff --git a/library/src/main/java/com/google/android/exoplayer/TrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/TrackRenderer.java index 30c0c7edcd..2ba559b379 100644 --- a/library/src/main/java/com/google/android/exoplayer/TrackRenderer.java +++ b/library/src/main/java/com/google/android/exoplayer/TrackRenderer.java @@ -294,6 +294,15 @@ public abstract class TrackRenderer implements ExoPlayerComponent { // Abstract methods. + /** + * Returns the track type that the renderer handles. For example, a video renderer will return + * {@link C#TRACK_TYPE_VIDEO}, an audio renderer will return {@link C#TRACK_TYPE_AUDIO}, a text + * renderer will return {@link C#TRACK_TYPE_TEXT}, and so on. + * + * @return One of the TRACK_TYPE_* constants defined in {@link C}. + */ + protected abstract int getTrackType(); + /** * Returns the extent to which the renderer supports a given format. *
diff --git a/library/src/main/java/com/google/android/exoplayer/metadata/MetadataTrackRenderer.java b/library/src/main/java/com/google/android/exoplayer/metadata/MetadataTrackRenderer.java
index d2f7845dd0..c36809b2e4 100644
--- a/library/src/main/java/com/google/android/exoplayer/metadata/MetadataTrackRenderer.java
+++ b/library/src/main/java/com/google/android/exoplayer/metadata/MetadataTrackRenderer.java
@@ -15,6 +15,7 @@
*/
package com.google.android.exoplayer.metadata;
+import com.google.android.exoplayer.C;
import com.google.android.exoplayer.DecoderInputBuffer;
import com.google.android.exoplayer.ExoPlaybackException;
import com.google.android.exoplayer.Format;
@@ -84,6 +85,11 @@ public final class MetadataTrackRenderer