diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/mp4/Atom.java b/library/src/main/java/com/google/android/exoplayer/extractor/mp4/Atom.java index d1d14e5efe..be354dc122 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/mp4/Atom.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/mp4/Atom.java @@ -41,6 +41,8 @@ import java.util.List; public static final int TYPE_avc3 = Util.getIntegerCodeForString("avc3"); public static final int TYPE_hvc1 = Util.getIntegerCodeForString("hvc1"); public static final int TYPE_hev1 = Util.getIntegerCodeForString("hev1"); + public static final int TYPE_s263 = Util.getIntegerCodeForString("s263"); + public static final int TYPE_d263 = Util.getIntegerCodeForString("d263"); public static final int TYPE_mdat = Util.getIntegerCodeForString("mdat"); public static final int TYPE_mp4a = Util.getIntegerCodeForString("mp4a"); public static final int TYPE_ac_3 = Util.getIntegerCodeForString("ac-3"); @@ -92,8 +94,6 @@ import java.util.List; public static final int TYPE_stco = Util.getIntegerCodeForString("stco"); public static final int TYPE_co64 = Util.getIntegerCodeForString("co64"); public static final int TYPE_tx3g = Util.getIntegerCodeForString("tx3g"); - public static final int TYPE_s263 = Util.getIntegerCodeForString("s263"); - public static final int TYPE_d263 = Util.getIntegerCodeForString("d263"); public final int type; diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/webm/WebmExtractor.java b/library/src/main/java/com/google/android/exoplayer/extractor/webm/WebmExtractor.java index 9b3e56c45c..94eea8a4cd 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/webm/WebmExtractor.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/webm/WebmExtractor.java @@ -1069,14 +1069,14 @@ public final class WebmExtractor implements Extractor { break; case CODEC_ID_H264: mimeType = MimeTypes.VIDEO_H264; - Pair, Integer> h264Data = parseH264CodecPrivate( + Pair, Integer> h264Data = parseAvcCodecPrivate( new ParsableByteArray(codecPrivate)); initializationData = h264Data.first; nalUnitLengthFieldLength = h264Data.second; break; case CODEC_ID_H265: mimeType = MimeTypes.VIDEO_H265; - Pair, Integer> hevcData = parseHEVCCodecPrivate( + Pair, Integer> hevcData = parseHevcCodecPrivate( new ParsableByteArray(codecPrivate)); initializationData = hevcData.first; nalUnitLengthFieldLength = hevcData.second; @@ -1121,12 +1121,12 @@ public final class WebmExtractor implements Extractor { } /** - * Builds initialization data for a {@link MediaFormat} from H.264 codec private data. + * Builds initialization data for a {@link MediaFormat} from H.264 (AVC) codec private data. * * @return The initialization data for the {@link MediaFormat}. * @throws ParserException If the initialization data could not be built. */ - private static Pair, Integer> parseH264CodecPrivate(ParsableByteArray buffer) + private static Pair, Integer> parseAvcCodecPrivate(ParsableByteArray buffer) throws ParserException { try { // TODO: Deduplicate with AtomParsers.parseAvcCFromParent. @@ -1144,7 +1144,7 @@ public final class WebmExtractor implements Extractor { } return Pair.create(initializationData, nalUnitLengthFieldLength); } catch (ArrayIndexOutOfBoundsException e) { - throw new ParserException("Error parsing vorbis codec private"); + throw new ParserException("Error parsing AVC codec private"); } } @@ -1154,10 +1154,10 @@ public final class WebmExtractor implements Extractor { * @return The initialization data for the {@link MediaFormat}. * @throws ParserException If the initialization data could not be built. */ - private static Pair, Integer> parseHEVCCodecPrivate(ParsableByteArray parent) + private static Pair, Integer> parseHevcCodecPrivate(ParsableByteArray parent) throws ParserException { try { - // TODO: Deduplicate with AtomParsers.parseAvcCFromParent. + // TODO: Deduplicate with AtomParsers.parseHvcCFromParent. parent.setPosition(21); int lengthSizeMinusOne = parent.readUnsignedByte() & 0x03; @@ -1197,7 +1197,7 @@ public final class WebmExtractor implements Extractor { List initializationData = csdLength == 0 ? null : Collections.singletonList(buffer); return Pair.create(initializationData, lengthSizeMinusOne + 1); } catch (ArrayIndexOutOfBoundsException e) { - throw new ParserException("Error parsing vorbis codec private"); + throw new ParserException("Error parsing HEVC codec private"); } } diff --git a/library/src/main/java/com/google/android/exoplayer/util/MimeTypes.java b/library/src/main/java/com/google/android/exoplayer/util/MimeTypes.java index cc6db55533..61f268be21 100644 --- a/library/src/main/java/com/google/android/exoplayer/util/MimeTypes.java +++ b/library/src/main/java/com/google/android/exoplayer/util/MimeTypes.java @@ -32,12 +32,12 @@ public class MimeTypes { public static final String VIDEO_MP4 = BASE_TYPE_VIDEO + "/mp4"; public static final String VIDEO_WEBM = BASE_TYPE_VIDEO + "/webm"; + public static final String VIDEO_H263 = BASE_TYPE_VIDEO + "/3gpp"; public static final String VIDEO_H264 = BASE_TYPE_VIDEO + "/avc"; public static final String VIDEO_H265 = BASE_TYPE_VIDEO + "/hevc"; public static final String VIDEO_VP8 = BASE_TYPE_VIDEO + "/x-vnd.on2.vp8"; public static final String VIDEO_VP9 = BASE_TYPE_VIDEO + "/x-vnd.on2.vp9"; public static final String VIDEO_MP4V = BASE_TYPE_VIDEO + "/mp4v-es"; - public static final String VIDEO_H263 = BASE_TYPE_VIDEO + "/3gpp"; public static final String AUDIO_MP4 = BASE_TYPE_AUDIO + "/mp4"; public static final String AUDIO_AAC = BASE_TYPE_AUDIO + "/mp4a-latm";