diff --git a/library/common/src/main/java/com/google/android/exoplayer2/util/MimeTypes.java b/library/common/src/main/java/com/google/android/exoplayer2/util/MimeTypes.java index 044dbf13a9..7922e93447 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/util/MimeTypes.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/util/MimeTypes.java @@ -96,6 +96,8 @@ public final class MimeTypes { public static final String TEXT_VTT = BASE_TYPE_TEXT + "/vtt"; public static final String TEXT_SSA = BASE_TYPE_TEXT + "/x-ssa"; + public static final String TEXT_EXOPLAYER_CUES = BASE_TYPE_TEXT + "/x-exoplayer-cues"; + // application/ MIME types public static final String APPLICATION_MP4 = BASE_TYPE_APPLICATION + "/mp4"; diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/subtitle/SubtitleExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/subtitle/SubtitleExtractor.java index d7ee336f4f..eee12e4810 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/subtitle/SubtitleExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/subtitle/SubtitleExtractor.java @@ -34,6 +34,7 @@ import com.google.android.exoplayer2.text.SubtitleDecoder; import com.google.android.exoplayer2.text.SubtitleDecoderException; import com.google.android.exoplayer2.text.SubtitleInputBuffer; import com.google.android.exoplayer2.text.SubtitleOutputBuffer; +import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.ParsableByteArray; import com.google.common.primitives.Ints; import java.io.IOException; @@ -94,7 +95,12 @@ public class SubtitleExtractor implements Extractor { this.subtitleDecoder = subtitleDecoder; cueEncoder = new CueEncoder(); subtitleData = new ParsableByteArray(); - this.format = format; + this.format = + format + .buildUpon() + .setSampleMimeType(MimeTypes.TEXT_EXOPLAYER_CUES) + .setCodecs(format.sampleMimeType) + .build(); state = STATE_CREATED; } diff --git a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/subtitle/SubtitleExtractorTest.java b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/subtitle/SubtitleExtractorTest.java index 9d516d2e2a..9366d3db43 100644 --- a/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/subtitle/SubtitleExtractorTest.java +++ b/library/extractor/src/test/java/com/google/android/exoplayer2/extractor/subtitle/SubtitleExtractorTest.java @@ -27,6 +27,7 @@ import com.google.android.exoplayer2.testutil.FakeTrackOutput; import com.google.android.exoplayer2.text.Cue; import com.google.android.exoplayer2.text.CueDecoder; import com.google.android.exoplayer2.text.webvtt.WebvttDecoder; +import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; import java.util.List; import org.junit.Test; @@ -56,12 +57,16 @@ public class SubtitleExtractorTest { .setSimulatePartialReads(true) .build(); SubtitleExtractor extractor = - new SubtitleExtractor(new WebvttDecoder(), new Format.Builder().build()); + new SubtitleExtractor( + new WebvttDecoder(), + new Format.Builder().setSampleMimeType(MimeTypes.TEXT_VTT).build()); extractor.init(output); while (extractor.read(input, null) != Extractor.RESULT_END_OF_INPUT) {} FakeTrackOutput trackOutput = output.trackOutputs.get(0); + assertThat(trackOutput.lastFormat.sampleMimeType).isEqualTo(MimeTypes.TEXT_EXOPLAYER_CUES); + assertThat(trackOutput.lastFormat.codecs).isEqualTo(MimeTypes.TEXT_VTT); assertThat(trackOutput.getSampleCount()).isEqualTo(6); // Check sample timestamps. assertThat(trackOutput.getSampleTimeUs(0)).isEqualTo(0L);