diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodecFactory.java b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodecFactory.java
index c65caf545d..ef0443a8b0 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodecFactory.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/DefaultCodecFactory.java
@@ -294,7 +294,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
mediaCodecName,
isDecoder
? TransformationException.ERROR_CODE_DECODING_FORMAT_UNSUPPORTED
- : TransformationException.ERROR_CODE_ENCODING_FORMAT_UNSUPPORTED);
+ : TransformationException.ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED);
}
return TransformationException.createForUnexpected(cause);
}
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformationException.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformationException.java
index db780db91f..270205258a 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformationException.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformationException.java
@@ -71,10 +71,9 @@ public final class TransformationException extends Exception {
ERROR_CODE_DECODING_FORMAT_UNSUPPORTED,
ERROR_CODE_ENCODER_INIT_FAILED,
ERROR_CODE_ENCODING_FAILED,
- ERROR_CODE_ENCODING_FORMAT_UNSUPPORTED,
+ ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED,
ERROR_CODE_GL_INIT_FAILED,
ERROR_CODE_GL_PROCESSING_FAILED,
- ERROR_CODE_MUXER_SAMPLE_MIME_TYPE_UNSUPPORTED,
ERROR_CODE_MUXING_FAILED,
})
public @interface ErrorCode {}
@@ -148,8 +147,13 @@ public final class TransformationException extends Exception {
public static final int ERROR_CODE_ENCODER_INIT_FAILED = 4001;
/** Caused by a failure while trying to encode media samples. */
public static final int ERROR_CODE_ENCODING_FAILED = 4002;
- /** Caused by requesting to encode content in a format that is not supported by the device. */
- public static final int ERROR_CODE_ENCODING_FORMAT_UNSUPPORTED = 4003;
+ /**
+ * Caused by the output format for a track not being supported.
+ *
+ *
Supported output formats are limited by the muxer's capabilities and the {@link
+ * Codec.DecoderFactory encoders} available.
+ */
+ public static final int ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED = 4003;
// Video editing errors (5xxx).
@@ -159,16 +163,8 @@ public final class TransformationException extends Exception {
public static final int ERROR_CODE_GL_PROCESSING_FAILED = 5002;
// Muxing errors (6xxx).
-
- /**
- * Caused by an output sample MIME type inferred from the input not being supported by the muxer.
- *
- *
Use {@link TransformationRequest.Builder#setAudioMimeType(String)} or {@link
- * TransformationRequest.Builder#setVideoMimeType(String)} to transcode to a supported MIME type.
- */
- public static final int ERROR_CODE_MUXER_SAMPLE_MIME_TYPE_UNSUPPORTED = 6001;
/** Caused by a failure while muxing media samples. */
- public static final int ERROR_CODE_MUXING_FAILED = 6002;
+ public static final int ERROR_CODE_MUXING_FAILED = 6001;
private static final ImmutableBiMap NAME_TO_ERROR_CODE =
new ImmutableBiMap.Builder()
@@ -187,12 +183,9 @@ public final class TransformationException extends Exception {
.put("ERROR_CODE_DECODING_FORMAT_UNSUPPORTED", ERROR_CODE_DECODING_FORMAT_UNSUPPORTED)
.put("ERROR_CODE_ENCODER_INIT_FAILED", ERROR_CODE_ENCODER_INIT_FAILED)
.put("ERROR_CODE_ENCODING_FAILED", ERROR_CODE_ENCODING_FAILED)
- .put("ERROR_CODE_ENCODING_FORMAT_UNSUPPORTED", ERROR_CODE_ENCODING_FORMAT_UNSUPPORTED)
+ .put("ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED", ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED)
.put("ERROR_CODE_GL_INIT_FAILED", ERROR_CODE_GL_INIT_FAILED)
.put("ERROR_CODE_GL_PROCESSING_FAILED", ERROR_CODE_GL_PROCESSING_FAILED)
- .put(
- "ERROR_CODE_MUXER_SAMPLE_MIME_TYPE_UNSUPPORTED",
- ERROR_CODE_MUXER_SAMPLE_MIME_TYPE_UNSUPPORTED)
.put("ERROR_CODE_MUXING_FAILED", ERROR_CODE_MUXING_FAILED)
.buildOrThrow();
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java
index c17285bd69..35d9c3b87d 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java
@@ -75,7 +75,7 @@ import androidx.media3.extractor.metadata.mp4.SlowMotionData;
"The output sample MIME inferred from the input format is not supported by the muxer."
+ " Sample MIME type: "
+ sampleMimeType),
- TransformationException.ERROR_CODE_MUXER_SAMPLE_MIME_TYPE_UNSUPPORTED);
+ TransformationException.ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED);
}
if (shouldPassthrough(inputFormat)) {
samplePipeline = new PassthroughSamplePipeline(inputFormat);
diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java
index cf7c3622c9..6b067bfec1 100644
--- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java
+++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java
@@ -84,7 +84,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
"The output sample MIME inferred from the input format is not supported by the muxer."
+ " Sample MIME type: "
+ sampleMimeType),
- TransformationException.ERROR_CODE_MUXER_SAMPLE_MIME_TYPE_UNSUPPORTED);
+ TransformationException.ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED);
}
if (shouldPassthrough(inputFormat)) {
samplePipeline = new PassthroughSamplePipeline(inputFormat);
diff --git a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerTest.java b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerTest.java
index bc7fe5a9cb..fffa5ba9f6 100644
--- a/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerTest.java
+++ b/libraries/transformer/src/test/java/androidx/media3/transformer/TransformerTest.java
@@ -359,7 +359,7 @@ public final class TransformerTest {
assertThat(exception).hasCauseThat().isInstanceOf(IllegalArgumentException.class);
assertThat(exception.errorCode)
- .isEqualTo(TransformationException.ERROR_CODE_ENCODING_FORMAT_UNSUPPORTED);
+ .isEqualTo(TransformationException.ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED);
}
@Test
@@ -403,7 +403,7 @@ public final class TransformerTest {
assertThat(exception).hasCauseThat().isInstanceOf(IllegalArgumentException.class);
assertThat(exception.errorCode)
- .isEqualTo(TransformationException.ERROR_CODE_ENCODING_FORMAT_UNSUPPORTED);
+ .isEqualTo(TransformationException.ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED);
}
@Test
@@ -434,7 +434,7 @@ public final class TransformerTest {
assertThat(exception).hasCauseThat().isInstanceOf(IllegalArgumentException.class);
assertThat(exception).hasCauseThat().hasMessageThat().contains("audio");
assertThat(exception.errorCode)
- .isEqualTo(TransformationException.ERROR_CODE_MUXER_SAMPLE_MIME_TYPE_UNSUPPORTED);
+ .isEqualTo(TransformationException.ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED);
}
@Test
@@ -453,7 +453,7 @@ public final class TransformerTest {
assertThat(exception).hasCauseThat().isInstanceOf(IllegalArgumentException.class);
assertThat(exception).hasCauseThat().hasMessageThat().contains("video");
assertThat(exception.errorCode)
- .isEqualTo(TransformationException.ERROR_CODE_MUXER_SAMPLE_MIME_TYPE_UNSUPPORTED);
+ .isEqualTo(TransformationException.ERROR_CODE_OUTPUT_FORMAT_UNSUPPORTED);
}
@Test