diff --git a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/ConfigurationActivity.java b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/ConfigurationActivity.java index 06d72f9200..0837c98f47 100644 --- a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/ConfigurationActivity.java +++ b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/ConfigurationActivity.java @@ -69,6 +69,7 @@ public final class ConfigurationActivity extends AppCompatActivity { public static final String TRIM_END_MS = "trim_end_ms"; public static final String ENABLE_FALLBACK = "enable_fallback"; public static final String ENABLE_DEBUG_PREVIEW = "enable_debug_preview"; + public static final String ABORT_SLOW_TRANSFORMATION = "abort_slow_transformation"; public static final String HDR_MODE = "hdr_mode"; public static final String DEMO_EFFECTS_SELECTIONS = "demo_effects_selections"; public static final String PERIODIC_VIGNETTE_CENTER_X = "periodic_vignette_center_x"; @@ -164,6 +165,7 @@ public final class ConfigurationActivity extends AppCompatActivity { private @MonotonicNonNull CheckBox trimCheckBox; private @MonotonicNonNull CheckBox enableFallbackCheckBox; private @MonotonicNonNull CheckBox enableDebugPreviewCheckBox; + private @MonotonicNonNull CheckBox abortSlowTransformationCheckBox; private @MonotonicNonNull Spinner hdrModeSpinner; private @MonotonicNonNull Button selectDemoEffectsButton; private boolean @MonotonicNonNull [] demoEffectsSelections; @@ -257,6 +259,8 @@ public final class ConfigurationActivity extends AppCompatActivity { enableFallbackCheckBox = findViewById(R.id.enable_fallback_checkbox); enableDebugPreviewCheckBox = findViewById(R.id.enable_debug_preview_checkbox); + abortSlowTransformationCheckBox = findViewById(R.id.abort_slow_transformation_checkbox); + ArrayAdapter hdrModeAdapter = new ArrayAdapter<>(/* context= */ this, R.layout.spinner_item); hdrModeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); @@ -319,6 +323,7 @@ public final class ConfigurationActivity extends AppCompatActivity { "trimCheckBox", "enableFallbackCheckBox", "enableDebugPreviewCheckBox", + "abortSlowTransformationCheckBox", "hdrModeSpinner", "demoEffectsSelections" }) @@ -357,6 +362,7 @@ public final class ConfigurationActivity extends AppCompatActivity { } bundle.putBoolean(ENABLE_FALLBACK, enableFallbackCheckBox.isChecked()); bundle.putBoolean(ENABLE_DEBUG_PREVIEW, enableDebugPreviewCheckBox.isChecked()); + bundle.putBoolean(ABORT_SLOW_TRANSFORMATION, abortSlowTransformationCheckBox.isChecked()); String selectedhdrMode = String.valueOf(hdrModeSpinner.getSelectedItem()); bundle.putInt(HDR_MODE, checkNotNull(HDR_MODE_DESCRIPTIONS.get(selectedhdrMode))); bundle.putBooleanArray(DEMO_EFFECTS_SELECTIONS, demoEffectsSelections); diff --git a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java index 8e854517a0..c780e6e3ac 100644 --- a/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java +++ b/demos/transformer/src/main/java/com/google/android/exoplayer2/transformerdemo/TransformerActivity.java @@ -49,6 +49,7 @@ import com.google.android.exoplayer2.effect.RgbFilter; import com.google.android.exoplayer2.effect.RgbMatrix; import com.google.android.exoplayer2.effect.SingleColorLut; import com.google.android.exoplayer2.transformer.DefaultEncoderFactory; +import com.google.android.exoplayer2.transformer.DefaultMuxer; import com.google.android.exoplayer2.transformer.ProgressHolder; import com.google.android.exoplayer2.transformer.TransformationException; import com.google.android.exoplayer2.transformer.TransformationRequest; @@ -285,7 +286,13 @@ public final class TransformerActivity extends AppCompatActivity { if (bundle.getBoolean(ConfigurationActivity.ENABLE_DEBUG_PREVIEW)) { transformerBuilder.setDebugViewProvider(new DemoDebugViewProvider()); } + + if (!bundle.getBoolean(ConfigurationActivity.ABORT_SLOW_TRANSFORMATION)) { + transformerBuilder.setMuxerFactory( + new DefaultMuxer.Factory(/* maxDelayBetweenSamplesMs= */ C.TIME_UNSET)); + } } + return transformerBuilder .addListener( new Transformer.Listener() { diff --git a/demos/transformer/src/main/res/layout/configuration_activity.xml b/demos/transformer/src/main/res/layout/configuration_activity.xml index f652bb8a5c..f78f57fee9 100644 --- a/demos/transformer/src/main/res/layout/configuration_activity.xml +++ b/demos/transformer/src/main/res/layout/configuration_activity.xml @@ -197,6 +197,15 @@ android:layout_gravity="end" android:checked="true"/> + + + + diff --git a/demos/transformer/src/main/res/values/strings.xml b/demos/transformer/src/main/res/values/strings.xml index 4ea1fe46a7..0e4fb6e739 100644 --- a/demos/transformer/src/main/res/values/strings.xml +++ b/demos/transformer/src/main/res/values/strings.xml @@ -29,6 +29,7 @@ Rotate video (degrees) Enable fallback Enable debug preview + Abort slow transformation Trim HDR mode Add demo effects