From d1eb43ad62b24b6a78227480f9faf020111d9bc6 Mon Sep 17 00:00:00 2001 From: eguven Date: Mon, 25 Apr 2016 05:53:11 -0700 Subject: [PATCH] V2 Extension fixes ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=120699171 --- .../exoplayer/ext/flac/LibflacAudioTrackRenderer.java | 2 +- .../exoplayer/ext/opus/LibopusAudioTrackRenderer.java | 2 +- .../exoplayer/ext/vp9/LibvpxVideoTrackRenderer.java | 2 +- .../google/android/exoplayer/ext/vp9/VpxOutputBuffer.java | 6 +++--- .../exoplayer/extractor/ExtractorSampleSource.java | 8 ++++++++ 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer/ext/flac/LibflacAudioTrackRenderer.java b/extensions/flac/src/main/java/com/google/android/exoplayer/ext/flac/LibflacAudioTrackRenderer.java index 8da0a30bc3..9d6f438df7 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer/ext/flac/LibflacAudioTrackRenderer.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer/ext/flac/LibflacAudioTrackRenderer.java @@ -52,7 +52,7 @@ public class LibflacAudioTrackRenderer extends AudioDecoderTrackRenderer { } @Override protected int supportsFormat(Format format) { - return MimeTypes.AUDIO_FLAC.equalsIgnoreCase(format.sampleMimeType) + return isLibflacAvailable() && MimeTypes.AUDIO_FLAC.equalsIgnoreCase(format.sampleMimeType) ? FORMAT_HANDLED : FORMAT_UNSUPPORTED_TYPE; } diff --git a/extensions/opus/src/main/java/com/google/android/exoplayer/ext/opus/LibopusAudioTrackRenderer.java b/extensions/opus/src/main/java/com/google/android/exoplayer/ext/opus/LibopusAudioTrackRenderer.java index 02df69da1e..aa91044606 100644 --- a/extensions/opus/src/main/java/com/google/android/exoplayer/ext/opus/LibopusAudioTrackRenderer.java +++ b/extensions/opus/src/main/java/com/google/android/exoplayer/ext/opus/LibopusAudioTrackRenderer.java @@ -60,7 +60,7 @@ public final class LibopusAudioTrackRenderer extends AudioDecoderTrackRenderer { @Override protected int supportsFormat(Format format) { - return MimeTypes.AUDIO_OPUS.equalsIgnoreCase(format.sampleMimeType) + return isLibopusAvailable() && MimeTypes.AUDIO_OPUS.equalsIgnoreCase(format.sampleMimeType) ? FORMAT_HANDLED : FORMAT_UNSUPPORTED_TYPE; } 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 c27e03333e..46f3e81530 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 @@ -186,7 +186,7 @@ public final class LibvpxVideoTrackRenderer extends TrackRenderer { @Override protected int supportsFormat(Format format) { - return MimeTypes.VIDEO_VP9.equalsIgnoreCase(format.sampleMimeType) + return isLibvpxAvailable() && MimeTypes.VIDEO_VP9.equalsIgnoreCase(format.sampleMimeType) ? FORMAT_HANDLED : FORMAT_UNSUPPORTED_TYPE; } diff --git a/extensions/vp9/src/main/java/com/google/android/exoplayer/ext/vp9/VpxOutputBuffer.java b/extensions/vp9/src/main/java/com/google/android/exoplayer/ext/vp9/VpxOutputBuffer.java index dd2f9e5f9d..d8d3da82f5 100644 --- a/extensions/vp9/src/main/java/com/google/android/exoplayer/ext/vp9/VpxOutputBuffer.java +++ b/extensions/vp9/src/main/java/com/google/android/exoplayer/ext/vp9/VpxOutputBuffer.java @@ -83,7 +83,6 @@ public final class VpxOutputBuffer extends OutputBuffer { yuvPlanes = new ByteBuffer[3]; } // Rewrapping has to be done on every frame since the stride might have changed. - data.position(0); yuvPlanes[0] = data.slice(); yuvPlanes[0].limit(yLength); data.position(yLength); @@ -103,9 +102,10 @@ public final class VpxOutputBuffer extends OutputBuffer { private void initData(int size) { if (data == null || data.capacity() < size) { data = ByteBuffer.allocateDirect(size); + } else { + data.position(0); + data.limit(size); } - data.position(0); - data.limit(size); } } diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/ExtractorSampleSource.java b/library/src/main/java/com/google/android/exoplayer/extractor/ExtractorSampleSource.java index 9b3b667067..24a8e64b62 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/ExtractorSampleSource.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/ExtractorSampleSource.java @@ -59,6 +59,7 @@ import java.util.List; *
  • MPEG PS ({@link com.google.android.exoplayer.extractor.ts.PsExtractor})
  • *
  • FLV ({@link com.google.android.exoplayer.extractor.flv.FlvExtractor})
  • *
  • WAV ({@link com.google.android.exoplayer.extractor.wav.WavExtractor})
  • + *
  • FLAC (only available if the FLAC extension is built and included)
  • * * *

    Seeking in AAC, MPEG TS and FLV streams is not supported. @@ -188,6 +189,13 @@ public final class ExtractorSampleSource implements SampleSource, ExtractorOutpu } catch (ClassNotFoundException e) { // Extractor not found. } + try { + DEFAULT_EXTRACTOR_CLASSES.add( + Class.forName("com.google.android.exoplayer.ext.flac.FlacExtractor") + .asSubclass(Extractor.class)); + } catch (ClassNotFoundException e) { + // Extractor not found. + } } private final Loader loader;