diff --git a/libraries/common/src/main/java/androidx/media3/common/C.java b/libraries/common/src/main/java/androidx/media3/common/C.java index 75e5f66437..bf465116ed 100644 --- a/libraries/common/src/main/java/androidx/media3/common/C.java +++ b/libraries/common/src/main/java/androidx/media3/common/C.java @@ -625,6 +625,7 @@ public final class C { flag = true, value = {SELECTION_FLAG_DEFAULT, SELECTION_FLAG_FORCED, SELECTION_FLAG_AUTOSELECT}) public @interface SelectionFlags {} + // LINT.IfChange(selection_flags) /** Indicates that the track should be selected if user preferences do not state otherwise. */ public static final int SELECTION_FLAG_DEFAULT = 1; /** @@ -1103,6 +1104,7 @@ public final class C { ROLE_FLAG_TRICK_PLAY }) public @interface RoleFlags {} + // LINT.IfChange(role_flags) /** Indicates a main track. */ public static final int ROLE_FLAG_MAIN = 1; /** diff --git a/libraries/common/src/main/java/androidx/media3/common/Format.java b/libraries/common/src/main/java/androidx/media3/common/Format.java index 0fdff12234..bb6cfc86f7 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Format.java +++ b/libraries/common/src/main/java/androidx/media3/common/Format.java @@ -1321,7 +1321,9 @@ public final class Format implements Bundleable { schemes.add("unknown (" + schemeUuid + ")"); } } - builder.append(", drm=[").append(Joiner.on(',').join(schemes)).append(']'); + builder.append(", drm=["); + Joiner.on(',').appendTo(builder, schemes); + builder.append(']'); } if (format.width != NO_VALUE && format.height != NO_VALUE) { builder.append(", res=").append(format.width).append("x").append(format.height); @@ -1341,8 +1343,73 @@ public final class Format implements Bundleable { if (format.label != null) { builder.append(", label=").append(format.label); } - if ((format.roleFlags & C.ROLE_FLAG_TRICK_PLAY) != 0) { - builder.append(", trick-play-track"); + if (format.selectionFlags != 0) { + List selectionFlags = new ArrayList<>(); + // LINT.IfChange(selection_flags) + if ((format.selectionFlags & C.SELECTION_FLAG_AUTOSELECT) != 0) { + selectionFlags.add("auto"); + } + if ((format.selectionFlags & C.SELECTION_FLAG_DEFAULT) != 0) { + selectionFlags.add("default"); + } + if ((format.selectionFlags & C.SELECTION_FLAG_FORCED) != 0) { + selectionFlags.add("forced"); + } + builder.append(", selectionFlags=["); + Joiner.on(',').appendTo(builder, selectionFlags); + builder.append("]"); + } + if (format.roleFlags != 0) { + // LINT.IfChange(role_flags) + List roleFlags = new ArrayList<>(); + if ((format.roleFlags & C.ROLE_FLAG_MAIN) != 0) { + roleFlags.add("main"); + } + if ((format.roleFlags & C.ROLE_FLAG_ALTERNATE) != 0) { + roleFlags.add("alt"); + } + if ((format.roleFlags & C.ROLE_FLAG_SUPPLEMENTARY) != 0) { + roleFlags.add("supplementary"); + } + if ((format.roleFlags & C.ROLE_FLAG_COMMENTARY) != 0) { + roleFlags.add("commentary"); + } + if ((format.roleFlags & C.ROLE_FLAG_DUB) != 0) { + roleFlags.add("dub"); + } + if ((format.roleFlags & C.ROLE_FLAG_EMERGENCY) != 0) { + roleFlags.add("emergency"); + } + if ((format.roleFlags & C.ROLE_FLAG_CAPTION) != 0) { + roleFlags.add("caption"); + } + if ((format.roleFlags & C.ROLE_FLAG_SUBTITLE) != 0) { + roleFlags.add("subtitle"); + } + if ((format.roleFlags & C.ROLE_FLAG_SIGN) != 0) { + roleFlags.add("sign"); + } + if ((format.roleFlags & C.ROLE_FLAG_DESCRIBES_VIDEO) != 0) { + roleFlags.add("describes-video"); + } + if ((format.roleFlags & C.ROLE_FLAG_DESCRIBES_MUSIC_AND_SOUND) != 0) { + roleFlags.add("describes-music"); + } + if ((format.roleFlags & C.ROLE_FLAG_ENHANCED_DIALOG_INTELLIGIBILITY) != 0) { + roleFlags.add("enhanced-intelligibility"); + } + if ((format.roleFlags & C.ROLE_FLAG_TRANSCRIBES_DIALOG) != 0) { + roleFlags.add("transcribes-dialog"); + } + if ((format.roleFlags & C.ROLE_FLAG_EASY_TO_READ) != 0) { + roleFlags.add("easy-read"); + } + if ((format.roleFlags & C.ROLE_FLAG_TRICK_PLAY) != 0) { + roleFlags.add("trick-play"); + } + builder.append(", roleFlags=["); + Joiner.on(',').appendTo(builder, roleFlags); + builder.append("]"); } return builder.toString(); }