From 643e16ca8fae28404075bcba8f44c58680c06695 Mon Sep 17 00:00:00 2001 From: sheenachhabra Date: Tue, 15 Oct 2024 05:32:42 -0700 Subject: [PATCH] Handle invalid language codes in Boxes.java When an invalid language code is give, write default value instead of throwing. This behaviour aligns with `MediaMuxer`. PiperOrigin-RevId: 686066088 --- .../src/main/java/androidx/media3/muxer/Boxes.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 1f9b7246f5..03f374894a 100644 --- a/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java +++ b/libraries/muxer/src/main/java/androidx/media3/muxer/Boxes.java @@ -1853,16 +1853,21 @@ import org.checkerframework.checker.nullness.qual.PolyNull; return BoxUtils.wrapIntoBox("dOps", contents); } - /** Packs a three-letter language code into a short, packing 3x5 bits. */ + /** + * Packs a three-letter language code into a short, packing 3x5 bits. + * + *

A default value 0 is returned if the {@code code} is not recognized. + */ private static short languageCodeFromString(@Nullable String code) { + short defaultLanguageCode = 0; if (code == null) { - return 0; + return defaultLanguageCode; } byte[] bytes = Util.getUtf8Bytes(code); if (bytes.length != 3) { - throw new IllegalArgumentException("Non-length-3 language code: " + code); + return defaultLanguageCode; } // Take only last 5 bits of each letter.