diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java index 3585f73b4a..0b25425bd9 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoTranscodingSamplePipeline.java @@ -101,7 +101,8 @@ import org.checkerframework.dataflow.qual.Pure; if (transformationRequest.enableHdrEditing || inputFormat.height != encoderSupportedFormat.height || inputFormat.width != encoderSupportedFormat.width - || scaleToFitFrameProcessor.shouldProcess()) { + || scaleToFitFrameProcessor.shouldProcess() + || shouldAlwaysUseFrameEditor()) { frameEditor = FrameEditor.create( context, @@ -275,6 +276,17 @@ import org.checkerframework.dataflow.qual.Pure; .build(); } + /** Always use {@link FrameEditor} to work around device-specific encoder issues. */ + private static boolean shouldAlwaysUseFrameEditor() { + switch (Util.MODEL) { + case "XT1635-02": + case "Nexus 5": + return true; + default: + return false; + } + } + /** * Feeds at most one decoder output frame to the next step of the pipeline. *