From 56bd32da9635299201a461871ffc00e489390d4e Mon Sep 17 00:00:00 2001 From: sheenachhabra Date: Thu, 13 Feb 2025 02:58:02 -0800 Subject: [PATCH] Add Lint.IfChange/ThenChange for muxer codec support logic Updating the list of supported codec in Mp4Muxer and FragmenetdMp4Muxer is often missed when a new codec is added in Boxes.java. PiperOrigin-RevId: 726397337 --- libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java | 3 +++ .../main/java/androidx/media3/muxer/FragmentedMp4Muxer.java | 3 +++ .../muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java | 3 +++ 3 files changed, 9 insertions(+) diff --git a/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java b/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java index 0dbecf2657..9d86e08eac 100644 --- a/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java +++ b/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java @@ -688,6 +688,7 @@ import org.checkerframework.checker.nullness.qual.PolyNull; @SuppressWarnings("MergeCases") public static ByteBuffer codecSpecificBox(Format format) { String mimeType = checkNotNull(format.sampleMimeType); + // LINT.IfChange(codec_specific_boxes) switch (mimeType) { case MimeTypes.AUDIO_AAC: case MimeTypes.AUDIO_VORBIS: @@ -717,6 +718,8 @@ import org.checkerframework.checker.nullness.qual.PolyNull; default: throw new IllegalArgumentException("Unsupported format: " + mimeType); } + // LINT.ThenChange(Mp4Muxer.java:supported_mime_types, + // FragmentedMp4Muxer.java:supported_mime_types) } /** diff --git a/libraries/muxer/src/main/java/androidx/media3/muxer/FragmentedMp4Muxer.java b/libraries/muxer/src/main/java/androidx/media3/muxer/FragmentedMp4Muxer.java index 613e6f3cca..1e96ddee23 100644 --- a/libraries/muxer/src/main/java/androidx/media3/muxer/FragmentedMp4Muxer.java +++ b/libraries/muxer/src/main/java/androidx/media3/muxer/FragmentedMp4Muxer.java @@ -143,6 +143,7 @@ public final class FragmentedMp4Muxer implements AutoCloseable { } } + // LINT.IfChange(supported_mime_types) /** A list of supported video {@linkplain MimeTypes sample MIME types}. */ public static final ImmutableList SUPPORTED_VIDEO_SAMPLE_MIME_TYPES = ImmutableList.of( @@ -162,6 +163,8 @@ public final class FragmentedMp4Muxer implements AutoCloseable { MimeTypes.AUDIO_VORBIS, MimeTypes.AUDIO_RAW); + // LINT.ThenChange(Boxes.java:codec_specific_boxes) + private final FragmentedMp4Writer fragmentedMp4Writer; private final MetadataCollector metadataCollector; private final SparseArray trackIdToTrack; diff --git a/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java b/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java index 4973e223ec..1706bf10d4 100644 --- a/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java +++ b/libraries/muxer/src/main/java/androidx/media3/muxer/Mp4Muxer.java @@ -346,6 +346,7 @@ public final class Mp4Muxer implements AutoCloseable { } } + // LINT.IfChange(supported_mime_types) /** A list of supported video {@linkplain MimeTypes sample MIME types}. */ public static final ImmutableList SUPPORTED_VIDEO_SAMPLE_MIME_TYPES = ImmutableList.of( @@ -365,6 +366,8 @@ public final class Mp4Muxer implements AutoCloseable { MimeTypes.AUDIO_VORBIS, MimeTypes.AUDIO_RAW); + // LINT.ThenChange(Boxes.java:codec_specific_boxes) + private static final String TAG = "Mp4Muxer"; private final FileOutputStream outputStream;