diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParsers.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParser.java similarity index 99% rename from libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParsers.java rename to libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParser.java index 029fb299b7..a4eb4b5adb 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParsers.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParser.java @@ -64,7 +64,7 @@ import java.util.Objects; /** Utility methods for parsing MP4 format box payloads according to ISO/IEC 14496-12. */ @SuppressWarnings("ConstantField") @UnstableApi -public final class BoxParsers { +public final class BoxParser { private static final String TAG = "BoxParsers"; @@ -2276,7 +2276,7 @@ public final class BoxParsers { && editEndTime <= duration; } - private BoxParsers() { + private BoxParser() { // Prevent instantiation. } diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java index a4b25cbcdd..3a556970ba 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/FragmentedMp4Extractor.java @@ -19,7 +19,7 @@ import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.common.util.Assertions.checkState; import static androidx.media3.common.util.Util.castNonNull; import static androidx.media3.common.util.Util.nullSafeArrayCopy; -import static androidx.media3.extractor.mp4.BoxParsers.parseTraks; +import static androidx.media3.extractor.mp4.BoxParser.parseTraks; import static java.lang.Math.max; import static java.lang.annotation.ElementType.TYPE_USE; @@ -778,7 +778,7 @@ public class FragmentedMp4Extractor implements Extractor { } atom.setPosition(Mp4Box.HEADER_SIZE); int fullAtom = atom.readInt(); - int version = BoxParsers.parseFullBoxVersion(fullAtom); + int version = BoxParser.parseFullBoxVersion(fullAtom); String schemeIdUri; String value; long timescale; @@ -884,7 +884,7 @@ public class FragmentedMp4Extractor implements Extractor { private static long parseMehd(ParsableByteArray mehd) { mehd.setPosition(Mp4Box.HEADER_SIZE); int fullAtom = mehd.readInt(); - int version = BoxParsers.parseFullBoxVersion(fullAtom); + int version = BoxParser.parseFullBoxVersion(fullAtom); return version == 0 ? mehd.readUnsignedInt() : mehd.readUnsignedLongToLong(); } @@ -1006,7 +1006,7 @@ public class FragmentedMp4Extractor implements Extractor { int vectorSize = encryptionBox.perSampleIvSize; saiz.setPosition(Mp4Box.HEADER_SIZE); int fullAtom = saiz.readInt(); - int flags = BoxParsers.parseFullBoxFlags(fullAtom); + int flags = BoxParser.parseFullBoxFlags(fullAtom); if ((flags & 0x01) == 1) { saiz.skipBytes(8); } @@ -1050,7 +1050,7 @@ public class FragmentedMp4Extractor implements Extractor { private static void parseSaio(ParsableByteArray saio, TrackFragment out) throws ParserException { saio.setPosition(Mp4Box.HEADER_SIZE); int fullAtom = saio.readInt(); - int flags = BoxParsers.parseFullBoxFlags(fullAtom); + int flags = BoxParser.parseFullBoxFlags(fullAtom); if ((flags & 0x01) == 1) { saio.skipBytes(8); } @@ -1062,7 +1062,7 @@ public class FragmentedMp4Extractor implements Extractor { "Unexpected saio entry count: " + entryCount, /* cause= */ null); } - int version = BoxParsers.parseFullBoxVersion(fullAtom); + int version = BoxParser.parseFullBoxVersion(fullAtom); out.auxiliaryDataPosition += version == 0 ? saio.readUnsignedInt() : saio.readUnsignedLongToLong(); } @@ -1084,7 +1084,7 @@ public class FragmentedMp4Extractor implements Extractor { ParsableByteArray tfhd, SparseArray trackBundles, boolean haveSideloadedTrack) { tfhd.setPosition(Mp4Box.HEADER_SIZE); int fullAtom = tfhd.readInt(); - int atomFlags = BoxParsers.parseFullBoxFlags(fullAtom); + int atomFlags = BoxParser.parseFullBoxFlags(fullAtom); int trackId = tfhd.readInt(); @Nullable TrackBundle trackBundle = @@ -1133,7 +1133,7 @@ public class FragmentedMp4Extractor implements Extractor { private static long parseTfdt(ParsableByteArray tfdt) { tfdt.setPosition(Mp4Box.HEADER_SIZE); int fullAtom = tfdt.readInt(); - int version = BoxParsers.parseFullBoxVersion(fullAtom); + int version = BoxParser.parseFullBoxVersion(fullAtom); return version == 1 ? tfdt.readUnsignedLongToLong() : tfdt.readUnsignedInt(); } @@ -1176,7 +1176,7 @@ public class FragmentedMp4Extractor implements Extractor { throws ParserException { trun.setPosition(Mp4Box.HEADER_SIZE); int fullAtom = trun.readInt(); - int atomFlags = BoxParsers.parseFullBoxFlags(fullAtom); + int atomFlags = BoxParser.parseFullBoxFlags(fullAtom); Track track = trackBundle.moovSampleTable.track; TrackFragment fragment = trackBundle.fragment; @@ -1287,7 +1287,7 @@ public class FragmentedMp4Extractor implements Extractor { throws ParserException { senc.setPosition(Mp4Box.HEADER_SIZE + offset); int fullAtom = senc.readInt(); - int flags = BoxParsers.parseFullBoxFlags(fullAtom); + int flags = BoxParser.parseFullBoxFlags(fullAtom); if ((flags & 0x01 /* override_track_encryption_box_parameters */) != 0) { // TODO: Implement this. @@ -1340,7 +1340,7 @@ public class FragmentedMp4Extractor implements Extractor { } sbgp.setPosition(Mp4Box.HEADER_SIZE); - int sbgpVersion = BoxParsers.parseFullBoxVersion(sbgp.readInt()); + int sbgpVersion = BoxParser.parseFullBoxVersion(sbgp.readInt()); sbgp.skipBytes(4); // grouping_type == seig. if (sbgpVersion == 1) { sbgp.skipBytes(4); // grouping_type_parameter. @@ -1351,7 +1351,7 @@ public class FragmentedMp4Extractor implements Extractor { } sgpd.setPosition(Mp4Box.HEADER_SIZE); - int sgpdVersion = BoxParsers.parseFullBoxVersion(sgpd.readInt()); + int sgpdVersion = BoxParser.parseFullBoxVersion(sgpd.readInt()); sgpd.skipBytes(4); // grouping_type == seig. if (sgpdVersion == 1) { if (sgpd.readUnsignedInt() == 0) { @@ -1408,7 +1408,7 @@ public class FragmentedMp4Extractor implements Extractor { throws ParserException { atom.setPosition(Mp4Box.HEADER_SIZE); int fullAtom = atom.readInt(); - int version = BoxParsers.parseFullBoxVersion(fullAtom); + int version = BoxParser.parseFullBoxVersion(fullAtom); atom.skipBytes(4); long timescale = atom.readUnsignedInt(); diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java index ac024aa5af..9d3f13bb66 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/MetadataUtil.java @@ -372,7 +372,7 @@ import com.google.common.collect.ImmutableList; int atomType = data.readInt(); if (atomType == Mp4Box.TYPE_data) { int fullVersionInt = data.readInt(); - int flags = BoxParsers.parseFullBoxFlags(fullVersionInt); + int flags = BoxParser.parseFullBoxFlags(fullVersionInt); @Nullable String mimeType = flags == 13 ? "image/jpeg" : flags == 14 ? "image/png" : null; if (mimeType == null) { Log.w(TAG, "Unrecognized cover art flags: " + flags); diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java index ca0836378a..3593c4cba9 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java @@ -28,7 +28,7 @@ import static androidx.media3.container.Mp4Util.EDITABLE_TRACK_TYPE_DEPTH_INVERS import static androidx.media3.container.Mp4Util.EDITABLE_TRACK_TYPE_DEPTH_LINEAR; import static androidx.media3.container.Mp4Util.EDITABLE_TRACK_TYPE_DEPTH_METADATA; import static androidx.media3.container.Mp4Util.EDITABLE_TRACK_TYPE_SHARP; -import static androidx.media3.extractor.mp4.BoxParsers.parseTraks; +import static androidx.media3.extractor.mp4.BoxParser.parseTraks; import static androidx.media3.extractor.mp4.MetadataUtil.findMdtaMetadataEntryWithKey; import static androidx.media3.extractor.mp4.Sniffer.BRAND_HEIC; import static androidx.media3.extractor.mp4.Sniffer.BRAND_QUICKTIME; @@ -657,7 +657,7 @@ public final class Mp4Extractor implements Extractor, SeekMap { List<@C.AuxiliaryTrackType Integer> auxiliaryTrackTypesForEditableVideoTracks = new ArrayList<>(); if (meta != null) { - mdtaMetadata = BoxParsers.parseMdtaFromMeta(meta); + mdtaMetadata = BoxParser.parseMdtaFromMeta(meta); if (readingEditableVideoTracks) { checkStateNotNull(mdtaMetadata); maybeSetDefaultSampleOffsetForEditableVideoTracks(mdtaMetadata); @@ -678,13 +678,13 @@ public final class Mp4Extractor implements Extractor, SeekMap { @Nullable Metadata udtaMetadata = null; @Nullable Mp4Box.LeafBox udta = moov.getLeafBoxOfType(Mp4Box.TYPE_udta); if (udta != null) { - udtaMetadata = BoxParsers.parseUdta(udta); + udtaMetadata = BoxParser.parseUdta(udta); gaplessInfoHolder.setFromMetadata(udtaMetadata); } Metadata mvhdMetadata = new Metadata( - BoxParsers.parseMvhd(checkNotNull(moov.getLeafBoxOfType(Mp4Box.TYPE_mvhd)).data)); + BoxParser.parseMvhd(checkNotNull(moov.getLeafBoxOfType(Mp4Box.TYPE_mvhd)).data)); boolean ignoreEditLists = (flags & FLAG_WORKAROUND_IGNORE_EDIT_LISTS) != 0; List trackSampleTables = @@ -1056,7 +1056,7 @@ public final class Mp4Extractor implements Extractor, SeekMap { private void maybeSkipRemainingMetaAtomHeaderBytes(ExtractorInput input) throws IOException { scratch.reset(8); input.peekFully(scratch.getData(), 0, 8); - BoxParsers.maybeSkipRemainingMetaBoxHeaderBytes(scratch); + BoxParser.maybeSkipRemainingMetaBoxHeaderBytes(scratch); input.skipFully(scratch.getPosition()); input.resetPeekPosition(); } diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/PsshAtomUtil.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/PsshAtomUtil.java index 00157ff533..fc4f24ce67 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/PsshAtomUtil.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/PsshAtomUtil.java @@ -176,7 +176,7 @@ public final class PsshAtomUtil { Log.w(TAG, "Atom type is not pssh: " + atomType); return null; } - int atomVersion = BoxParsers.parseFullBoxVersion(atomData.readInt()); + int atomVersion = BoxParser.parseFullBoxVersion(atomData.readInt()); if (atomVersion > 1) { Log.w(TAG, "Unsupported pssh version: " + atomVersion); return null; diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/BoxParsersTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/BoxParserTest.java similarity index 94% rename from libraries/extractor/src/test/java/androidx/media3/extractor/mp4/BoxParsersTest.java rename to libraries/extractor/src/test/java/androidx/media3/extractor/mp4/BoxParserTest.java index 023d2c08be..5a0c694058 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/BoxParsersTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/BoxParserTest.java @@ -26,9 +26,9 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; -/** Tests for {@link BoxParsers}. */ +/** Tests for {@link BoxParser}. */ @RunWith(AndroidJUnit4.class) -public final class BoxParsersTest { +public final class BoxParserTest { private static final String ATOM_HEADER = "000000000000000000000000"; private static final String SAMPLE_COUNT = "00000004"; @@ -248,7 +248,7 @@ public final class BoxParsersTest { 0, 0, 0, 0, 88, 88, 88, 88 }; // version (1), flags (3), 'xxxx' (4) assertThat( - BoxParsers.parseCommonEncryptionSinfFromParent( + BoxParser.parseCommonEncryptionSinfFromParent( new ParsableByteArray(cencSinf), 0, cencSinf.length)) .isNull(); } @@ -271,17 +271,17 @@ public final class BoxParsersTest { @Test public void vexuParsings() throws ParserException { - BoxParsers.VexuData vexuData = null; + BoxParser.VexuData vexuData = null; assertThat( vexuData = - BoxParsers.parseVideoExtendedUsageBox( + BoxParser.parseVideoExtendedUsageBox( new ParsableByteArray(VEXU_DATA0), 0, VEXU_DATA0.length)) .isNotNull(); assertThat(vexuData).isNotNull(); assertThat(vexuData.hasBothEyeViews()).isTrue(); assertThat( vexuData = - BoxParsers.parseVideoExtendedUsageBox( + BoxParser.parseVideoExtendedUsageBox( new ParsableByteArray(VEXU_DATA1), 0, VEXU_DATA1.length)) .isNotNull(); assertThat(vexuData).isNotNull(); @@ -289,7 +289,7 @@ public final class BoxParsersTest { } private static void verifyStz2Parsing(Mp4Box.LeafBox stz2Atom) { - BoxParsers.Stz2SampleSizeBox box = new BoxParsers.Stz2SampleSizeBox(stz2Atom); + BoxParser.Stz2SampleSizeBox box = new BoxParser.Stz2SampleSizeBox(stz2Atom); assertThat(box.getSampleCount()).isEqualTo(4); assertThat(box.getFixedSampleSize()).isEqualTo(C.LENGTH_UNSET); for (int i = 0; i < box.getSampleCount(); i++) { diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/PsshAtomUtilTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/PsshAtomUtilTest.java index a46adfabee..593151607e 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/PsshAtomUtilTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/PsshAtomUtilTest.java @@ -17,8 +17,8 @@ package androidx.media3.extractor.mp4; import static androidx.media3.common.C.WIDEVINE_UUID; import static androidx.media3.container.Mp4Box.TYPE_pssh; -import static androidx.media3.extractor.mp4.BoxParsers.parseFullBoxFlags; -import static androidx.media3.extractor.mp4.BoxParsers.parseFullBoxVersion; +import static androidx.media3.extractor.mp4.BoxParser.parseFullBoxFlags; +import static androidx.media3.extractor.mp4.BoxParser.parseFullBoxVersion; import static com.google.common.truth.Truth.assertThat; import androidx.media3.common.C;