From 6dbfdecbe00c8a09f97935889b530697074ea7cb Mon Sep 17 00:00:00 2001 From: ccwu Date: Fri, 18 Nov 2016 14:56:39 -0800 Subject: [PATCH] Let the mp4 extractor support "camm" metadata tracks. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=139626848 --- .../com/google/android/exoplayer2/extractor/mp4/Atom.java | 1 + .../android/exoplayer2/extractor/mp4/AtomParsers.java | 6 ++++++ .../java/com/google/android/exoplayer2/util/MimeTypes.java | 1 + 3 files changed, 8 insertions(+) diff --git a/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java b/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java index 8291fd5efc..2eac7926e7 100644 --- a/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java +++ b/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java @@ -133,6 +133,7 @@ import java.util.List; public static final int TYPE_vp08 = Util.getIntegerCodeForString("vp08"); public static final int TYPE_vp09 = Util.getIntegerCodeForString("vp09"); public static final int TYPE_vpcC = Util.getIntegerCodeForString("vpcC"); + public static final int TYPE_camm = Util.getIntegerCodeForString("camm"); public final int type; diff --git a/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java b/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java index b8d5d634ed..4272cdaa11 100644 --- a/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java +++ b/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java @@ -50,6 +50,7 @@ import java.util.List; private static final int TYPE_subt = Util.getIntegerCodeForString("subt"); private static final int TYPE_clcp = Util.getIntegerCodeForString("clcp"); private static final int TYPE_cenc = Util.getIntegerCodeForString("cenc"); + private static final int TYPE_meta = Util.getIntegerCodeForString("meta"); /** * Parses a trak atom (defined in 14496-12). @@ -541,6 +542,8 @@ import java.util.List; } else if (trackType == TYPE_text || trackType == TYPE_sbtl || trackType == TYPE_subt || trackType == TYPE_clcp) { return C.TRACK_TYPE_TEXT; + } else if (trackType == TYPE_meta) { + return C.TRACK_TYPE_METADATA; } else { return C.TRACK_TYPE_UNKNOWN; } @@ -621,6 +624,9 @@ import java.util.List; out.format = Format.createTextSampleFormat(Integer.toString(trackId), MimeTypes.APPLICATION_CEA608, null, Format.NO_VALUE, 0, language, drmInitData); out.requiredSampleTransformation = Track.TRANSFORMATION_CEA608_CDAT; + } else if (childAtomType == Atom.TYPE_camm) { + out.format = Format.createSampleFormat(Integer.toString(trackId), + MimeTypes.APPLICATION_CAMERA_MOTION, null, Format.NO_VALUE, drmInitData); } stsd.setPosition(childStartPosition + childAtomSize); } diff --git a/library/src/main/java/com/google/android/exoplayer2/util/MimeTypes.java b/library/src/main/java/com/google/android/exoplayer2/util/MimeTypes.java index 641dd670af..b690362fb7 100644 --- a/library/src/main/java/com/google/android/exoplayer2/util/MimeTypes.java +++ b/library/src/main/java/com/google/android/exoplayer2/util/MimeTypes.java @@ -75,6 +75,7 @@ public final class MimeTypes { public static final String APPLICATION_VOBSUB = BASE_TYPE_APPLICATION + "/vobsub"; public static final String APPLICATION_PGS = BASE_TYPE_APPLICATION + "/pgs"; public static final String APPLICATION_SCTE35 = BASE_TYPE_APPLICATION + "/x-scte35"; + public static final String APPLICATION_CAMERA_MOTION = BASE_TYPE_APPLICATION + "/x-camera-motion"; private MimeTypes() {}