mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Undeprecate startTransformation(MediaItem, String)
This overload is helpful to apps transcoding a MediaItem without edits. PiperOrigin-RevId: 505987852
This commit is contained in:
parent
d5035123b4
commit
2c690618e5
@ -211,6 +211,20 @@ public class TransformerAndroidTestRunner {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms the {@link MediaItem}, saving a summary of the transformation to the application
|
||||
* cache.
|
||||
*
|
||||
* @param testId A unique identifier for the transformer test run.
|
||||
* @param mediaItem The {@link MediaItem} to transform.
|
||||
* @return The {@link TransformationTestResult}.
|
||||
* @throws Exception The cause of the transformation not completing.
|
||||
*/
|
||||
public TransformationTestResult run(String testId, MediaItem mediaItem) throws Exception {
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
return run(testId, editedMediaItem);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms the {@link EditedMediaItem}.
|
||||
*
|
||||
|
@ -101,12 +101,11 @@ public class TransformerEndToEndTest {
|
||||
.setEndPositionMs(clippingEndMs)
|
||||
.build())
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
TransformationTestResult result =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(/* testId= */ "clippedMedia_completesWithClippedDuration", editedMediaItem);
|
||||
.run(/* testId= */ "clippedMedia_completesWithClippedDuration", mediaItem);
|
||||
|
||||
assertThat(result.transformationResult.durationMs).isAtMost(clippingEndMs - clippingStartMs);
|
||||
}
|
||||
|
@ -27,7 +27,6 @@ import androidx.media3.common.C;
|
||||
import androidx.media3.common.MediaItem;
|
||||
import androidx.media3.common.util.Log;
|
||||
import androidx.media3.transformer.AndroidTestUtil;
|
||||
import androidx.media3.transformer.EditedMediaItem;
|
||||
import androidx.media3.transformer.TransformationException;
|
||||
import androidx.media3.transformer.TransformationRequest;
|
||||
import androidx.media3.transformer.TransformationTestResult;
|
||||
@ -68,14 +67,12 @@ public class ForceInterpretHdrVideoAsSdrTest {
|
||||
TransformationRequest.HDR_MODE_EXPERIMENTAL_FORCE_INTERPRET_HDR_AS_SDR)
|
||||
.build())
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10));
|
||||
try {
|
||||
TransformationTestResult transformationTestResult =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR);
|
||||
Log.i(TAG, "Transformed.");
|
||||
} catch (TransformationException exception) {
|
||||
@ -107,14 +104,12 @@ public class ForceInterpretHdrVideoAsSdrTest {
|
||||
TransformationRequest.HDR_MODE_EXPERIMENTAL_FORCE_INTERPRET_HDR_AS_SDR)
|
||||
.build())
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10));
|
||||
try {
|
||||
TransformationTestResult transformationTestResult =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR);
|
||||
Log.i(TAG, "Transformed.");
|
||||
} catch (TransformationException exception) {
|
||||
|
@ -74,15 +74,13 @@ public class HdrEditingTest {
|
||||
Context context = ApplicationProvider.getApplicationContext();
|
||||
|
||||
Transformer transformer = new Transformer.Builder(context).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10));
|
||||
|
||||
try {
|
||||
TransformationTestResult transformationTestResult =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
Log.i(TAG, "Transformed.");
|
||||
assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_ST2084);
|
||||
} catch (TransformationException exception) {
|
||||
@ -99,15 +97,13 @@ public class HdrEditingTest {
|
||||
Context context = ApplicationProvider.getApplicationContext();
|
||||
|
||||
Transformer transformer = new Transformer.Builder(context).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10));
|
||||
|
||||
try {
|
||||
TransformationTestResult transformationTestResult =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
Log.i(TAG, "Transformed.");
|
||||
assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_HLG);
|
||||
} catch (TransformationException exception) {
|
||||
@ -295,10 +291,7 @@ public class HdrEditingTest {
|
||||
Transformer transformer = new Transformer.Builder(context).build();
|
||||
MediaItem mediaItem =
|
||||
MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_1_SECOND_HDR10_VIDEO_SDR_CONTAINER));
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer).build().run(testId, mediaItem);
|
||||
}
|
||||
|
||||
private static boolean deviceSupportsHdrEditing(String mimeType, ColorInfo colorInfo) {
|
||||
|
@ -75,15 +75,13 @@ public class ToneMapHdrToSdrUsingMediaCodecTest {
|
||||
}
|
||||
})
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10));
|
||||
|
||||
try {
|
||||
TransformationTestResult transformationTestResult =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
Log.i(TAG, "Tone mapped.");
|
||||
assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR);
|
||||
} catch (TransformationException exception) {
|
||||
@ -121,15 +119,13 @@ public class ToneMapHdrToSdrUsingMediaCodecTest {
|
||||
}
|
||||
})
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10));
|
||||
|
||||
try {
|
||||
TransformationTestResult transformationTestResult =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
Log.i(TAG, "Tone mapped.");
|
||||
assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR);
|
||||
} catch (TransformationException exception) {
|
||||
|
@ -32,7 +32,6 @@ import androidx.media3.common.util.GlUtil;
|
||||
import androidx.media3.common.util.Log;
|
||||
import androidx.media3.common.util.Util;
|
||||
import androidx.media3.transformer.AndroidTestUtil;
|
||||
import androidx.media3.transformer.EditedMediaItem;
|
||||
import androidx.media3.transformer.TransformationException;
|
||||
import androidx.media3.transformer.TransformationRequest;
|
||||
import androidx.media3.transformer.TransformationTestResult;
|
||||
@ -86,14 +85,12 @@ public class ToneMapHdrToSdrUsingOpenGlTest {
|
||||
.setHdrMode(TransformationRequest.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL)
|
||||
.build())
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_5_SECOND_HLG10));
|
||||
try {
|
||||
TransformationTestResult transformationTestResult =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
Log.i(TAG, "Tone mapped.");
|
||||
assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR);
|
||||
} catch (TransformationException exception) {
|
||||
@ -139,14 +136,12 @@ public class ToneMapHdrToSdrUsingOpenGlTest {
|
||||
.setHdrMode(TransformationRequest.HDR_MODE_TONE_MAP_HDR_TO_SDR_USING_OPEN_GL)
|
||||
.build())
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_ASSET_1080P_4_SECOND_HDR10));
|
||||
try {
|
||||
TransformationTestResult transformationTestResult =
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
Log.i(TAG, "Tone mapped.");
|
||||
assertFileHasColorTransfer(transformationTestResult.filePath, C.COLOR_TRANSFER_SDR);
|
||||
} catch (TransformationException exception) {
|
||||
|
@ -60,11 +60,10 @@ public class TransformationTest {
|
||||
.build();
|
||||
MediaItem mediaItem =
|
||||
MediaItem.fromUri(Uri.parse(MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING));
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.setRequestCalculateSsim(true)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -74,11 +73,8 @@ public class TransformationTest {
|
||||
Transformer transformer = new Transformer.Builder(context).build();
|
||||
MediaItem mediaItem =
|
||||
MediaItem.fromUri(Uri.parse(MP4_ASSET_WITH_INCREASING_TIMESTAMPS_URI_STRING));
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
// No need to calculate SSIM because no decode/encoding, so input frames match output frames.
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer).build().run(testId, mediaItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -122,12 +118,11 @@ public class TransformationTest {
|
||||
.setEncoderFactory(new ForceEncodeEncoderFactory(context))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_REMOTE_4K60_PORTRAIT_URI_STRING));
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.setRequestCalculateSsim(true)
|
||||
.setTimeoutSeconds(180)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -146,14 +141,12 @@ public class TransformationTest {
|
||||
new Transformer.Builder(context)
|
||||
.setEncoderFactory(new ForceEncodeEncoderFactory(context))
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(Uri.parse(MP4_REMOTE_8K24_URI_STRING)))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(Uri.parse(MP4_REMOTE_8K24_URI_STRING));
|
||||
new TransformerAndroidTestRunner.Builder(context, transformer)
|
||||
.setRequestCalculateSsim(true)
|
||||
.setTimeoutSeconds(180)
|
||||
.build()
|
||||
.run(testId, editedMediaItem);
|
||||
.run(testId, mediaItem);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -664,7 +664,6 @@ public final class Transformer {
|
||||
* it.
|
||||
* @param path The path to the output file.
|
||||
* @throws IllegalArgumentException If the path is invalid.
|
||||
* @throws IllegalArgumentException If the {@link MediaItem} is not supported.
|
||||
* @throws IllegalStateException If this method is called from the wrong thread.
|
||||
* @throws IllegalStateException If a transformation is already in progress.
|
||||
*/
|
||||
@ -673,9 +672,30 @@ public final class Transformer {
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #startTransformation(EditedMediaItem, String)} instead.
|
||||
* Starts an asynchronous operation to transform the given {@link MediaItem}.
|
||||
*
|
||||
* <p>The transformation state is notified through the {@linkplain Builder#addListener(Listener)
|
||||
* listener}.
|
||||
*
|
||||
* <p>Concurrent transformations on the same Transformer object are not allowed.
|
||||
*
|
||||
* <p>If no custom {@link Muxer.Factory} is specified, the output is an MP4 file.
|
||||
*
|
||||
* <p>The output can contain at most one video track and one audio track. Other track types are
|
||||
* ignored. For adaptive bitrate, if no custom {@link AssetLoader.Factory} is specified, the
|
||||
* highest bitrate video and audio streams are selected.
|
||||
*
|
||||
* <p>If encoding the output's video track is needed, the output frames' dimensions will be
|
||||
* swapped if the height is larger than the width. This is to improve compatibility among
|
||||
* different device encoders.
|
||||
*
|
||||
* @param mediaItem The {@link MediaItem} to transform.
|
||||
* @param path The path to the output file.
|
||||
* @throws IllegalArgumentException If the path is invalid.
|
||||
* @throws IllegalArgumentException If the {@link MediaItem} is not supported.
|
||||
* @throws IllegalStateException If this method is called from the wrong thread.
|
||||
* @throws IllegalStateException If a transformation is already in progress.
|
||||
*/
|
||||
@Deprecated
|
||||
public void startTransformation(MediaItem mediaItem, String path) {
|
||||
if (!mediaItem.clippingConfiguration.equals(MediaItem.ClippingConfiguration.UNSET)
|
||||
&& flattenForSlowMotion) {
|
||||
|
@ -129,10 +129,9 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void startTransformation_videoOnlyPassthrough_completesSuccessfully() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_VIDEO_ONLY));
|
||||
@ -142,9 +141,8 @@ public final class TransformerEndToEndTest {
|
||||
public void startTransformation_audioOnlyPassthrough_completesSuccessfully() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_ENCODER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -161,9 +159,8 @@ public final class TransformerEndToEndTest {
|
||||
.build())
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_ENCODER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -173,10 +170,9 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void startTransformation_audioAndVideo_completesSuccessfully() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_AUDIO_VIDEO));
|
||||
@ -196,9 +192,8 @@ public final class TransformerEndToEndTest {
|
||||
.setStartsAtKeyFrame(true)
|
||||
.build())
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -214,11 +209,9 @@ public final class TransformerEndToEndTest {
|
||||
.setTransformationRequest(
|
||||
new TransformationRequest.Builder().setAudioMimeType(MimeTypes.AUDIO_AAC).build())
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_WITH_SUBTITLES))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_WITH_SUBTITLES);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_WITH_SUBTITLES));
|
||||
@ -228,16 +221,15 @@ public final class TransformerEndToEndTest {
|
||||
public void startTransformation_successiveTransformations_completesSuccessfully()
|
||||
throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
// Transform first media item.
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
Files.delete(Paths.get(outputPath));
|
||||
|
||||
// Transform second media item.
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_AUDIO_VIDEO));
|
||||
@ -246,14 +238,12 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void startTransformation_concurrentTransformations_throwsError() {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
|
||||
assertThrows(
|
||||
IllegalStateException.class,
|
||||
() -> transformer.startTransformation(editedMediaItem, outputPath));
|
||||
IllegalStateException.class, () -> transformer.startTransformation(mediaItem, outputPath));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -293,9 +283,8 @@ public final class TransformerEndToEndTest {
|
||||
.experimentalSetGenerateSilentAudio(true)
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_ENCODER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -308,10 +297,9 @@ public final class TransformerEndToEndTest {
|
||||
createTransformerBuilder(/* enableFallback= */ false)
|
||||
.experimentalSetGenerateSilentAudio(true)
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_AUDIO_VIDEO));
|
||||
@ -358,10 +346,9 @@ public final class TransformerEndToEndTest {
|
||||
createTransformerBuilder(/* enableFallback= */ false)
|
||||
.experimentalSetGenerateSilentAudio(true)
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
@ -397,15 +384,14 @@ public final class TransformerEndToEndTest {
|
||||
.addListener(mockListener2)
|
||||
.addListener(mockListener3)
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
verify(mockListener1).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
|
||||
verify(mockListener2).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
|
||||
verify(mockListener3).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
|
||||
verify(mockListener1).onTransformationCompleted(eq(mediaItem), any());
|
||||
verify(mockListener2).onTransformationCompleted(eq(mediaItem), any());
|
||||
verify(mockListener3).onTransformationCompleted(eq(mediaItem), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -422,19 +408,15 @@ public final class TransformerEndToEndTest {
|
||||
new TransformationRequest.Builder().setAudioMimeType(MimeTypes.AUDIO_AAC).build())
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_DECODER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformationException exception =
|
||||
assertThrows(
|
||||
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
|
||||
|
||||
verify(mockListener1)
|
||||
.onTransformationError(eq(editedMediaItem.mediaItem), any(), eq(exception));
|
||||
verify(mockListener2)
|
||||
.onTransformationError(eq(editedMediaItem.mediaItem), any(), eq(exception));
|
||||
verify(mockListener3)
|
||||
.onTransformationError(eq(editedMediaItem.mediaItem), any(), eq(exception));
|
||||
verify(mockListener1).onTransformationError(eq(mediaItem), any(), eq(exception));
|
||||
verify(mockListener2).onTransformationError(eq(mediaItem), any(), eq(exception));
|
||||
verify(mockListener3).onTransformationError(eq(mediaItem), any(), eq(exception));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -453,26 +435,16 @@ public final class TransformerEndToEndTest {
|
||||
.addListener(mockListener3)
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_MUXER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
verify(mockListener1)
|
||||
.onFallbackApplied(
|
||||
editedMediaItem.mediaItem,
|
||||
originalTransformationRequest,
|
||||
fallbackTransformationRequest);
|
||||
.onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
|
||||
verify(mockListener2)
|
||||
.onFallbackApplied(
|
||||
editedMediaItem.mediaItem,
|
||||
originalTransformationRequest,
|
||||
fallbackTransformationRequest);
|
||||
.onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
|
||||
verify(mockListener3)
|
||||
.onFallbackApplied(
|
||||
editedMediaItem.mediaItem,
|
||||
originalTransformationRequest,
|
||||
fallbackTransformationRequest);
|
||||
.onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -488,15 +460,14 @@ public final class TransformerEndToEndTest {
|
||||
.addListener(mockListener3)
|
||||
.build();
|
||||
Transformer transformer2 = transformer1.buildUpon().removeListener(mockListener2).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer2.startTransformation(editedMediaItem, outputPath);
|
||||
transformer2.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer2);
|
||||
|
||||
verify(mockListener1).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
|
||||
verify(mockListener2, never()).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
|
||||
verify(mockListener3).onTransformationCompleted(eq(editedMediaItem.mediaItem), any());
|
||||
verify(mockListener1).onTransformationCompleted(eq(mediaItem), any());
|
||||
verify(mockListener2, never()).onTransformationCompleted(eq(mediaItem), any());
|
||||
verify(mockListener3).onTransformationCompleted(eq(mediaItem), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -516,10 +487,9 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void startTransformation_completesWithValidBitrate() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformationResult result = TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
assertThat(result.averageAudioBitrate).isGreaterThan(0);
|
||||
@ -537,9 +507,8 @@ public final class TransformerEndToEndTest {
|
||||
.build())
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_MUXER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformationException exception =
|
||||
assertThrows(
|
||||
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
|
||||
@ -558,9 +527,8 @@ public final class TransformerEndToEndTest {
|
||||
.build())
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_DECODER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformationException exception =
|
||||
assertThrows(
|
||||
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
|
||||
@ -572,10 +540,9 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void startTransformation_withIoError_completesWithError() {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri("asset:///non-existing-path.mp4")).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri("asset:///non-existing-path.mp4");
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformationException exception =
|
||||
assertThrows(
|
||||
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
|
||||
@ -595,18 +562,14 @@ public final class TransformerEndToEndTest {
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(/* enableFallback= */ false).addListener(mockListener).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_MUXER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
context, testMuxer, getDumpFileName(FILE_AUDIO_UNSUPPORTED_BY_MUXER + ".fallback"));
|
||||
verify(mockListener)
|
||||
.onFallbackApplied(
|
||||
editedMediaItem.mediaItem,
|
||||
originalTransformationRequest,
|
||||
fallbackTransformationRequest);
|
||||
.onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -620,18 +583,14 @@ public final class TransformerEndToEndTest {
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(/* enableFallback= */ true).addListener(mockListener).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_UNSUPPORTED_BY_MUXER);
|
||||
EditedMediaItem editedMediaItem = new EditedMediaItem.Builder(mediaItem).build();
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(
|
||||
context, testMuxer, getDumpFileName(FILE_AUDIO_UNSUPPORTED_BY_MUXER + ".fallback"));
|
||||
verify(mockListener)
|
||||
.onFallbackApplied(
|
||||
editedMediaItem.mediaItem,
|
||||
originalTransformationRequest,
|
||||
fallbackTransformationRequest);
|
||||
.onFallbackApplied(mediaItem, originalTransformationRequest, fallbackTransformationRequest);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -648,10 +607,9 @@ public final class TransformerEndToEndTest {
|
||||
.setAssetLoaderFactory(assetLoaderFactory)
|
||||
.setMuxerFactory(muxerFactory)
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformationException exception =
|
||||
assertThrows(
|
||||
TransformationException.class, () -> TransformerTestRunner.runLooper(transformer));
|
||||
@ -665,10 +623,9 @@ public final class TransformerEndToEndTest {
|
||||
Muxer.Factory muxerFactory = new TestMuxerFactory(/* maxDelayBetweenSamplesMs= */ C.TIME_UNSET);
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(/* enableFallback= */ false).setMuxerFactory(muxerFactory).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
DumpFileAsserts.assertOutput(context, testMuxer, getDumpFileName(FILE_AUDIO_VIDEO));
|
||||
@ -677,15 +634,14 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void startTransformation_afterCancellation_completesSuccessfully() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
transformer.cancel();
|
||||
Files.delete(Paths.get(outputPath));
|
||||
|
||||
// This would throw if the previous transformation had not been cancelled.
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformationResult transformationResult = TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
// TODO(b/264974805): Make transformation output deterministic and check it against dump file.
|
||||
@ -699,8 +655,7 @@ public final class TransformerEndToEndTest {
|
||||
Looper looper = anotherThread.getLooper();
|
||||
Transformer transformer =
|
||||
createTransformerBuilder(/* enableFallback= */ false).setLooper(looper).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
AtomicReference<Exception> exception = new AtomicReference<>();
|
||||
CountDownLatch countDownLatch = new CountDownLatch(1);
|
||||
|
||||
@ -708,7 +663,7 @@ public final class TransformerEndToEndTest {
|
||||
.post(
|
||||
() -> {
|
||||
try {
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
} catch (Exception e) {
|
||||
exception.set(e);
|
||||
@ -725,8 +680,7 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void startTransformation_fromWrongThread_throwsError() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
HandlerThread anotherThread = new HandlerThread("AnotherThread");
|
||||
AtomicReference<IllegalStateException> illegalStateException = new AtomicReference<>();
|
||||
CountDownLatch countDownLatch = new CountDownLatch(1);
|
||||
@ -736,7 +690,7 @@ public final class TransformerEndToEndTest {
|
||||
.post(
|
||||
() -> {
|
||||
try {
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
} catch (IllegalStateException e) {
|
||||
illegalStateException.set(e);
|
||||
} finally {
|
||||
@ -757,10 +711,9 @@ public final class TransformerEndToEndTest {
|
||||
.setAssetLoaderFactory(
|
||||
new FakeAssetLoader.Factory(SUPPORTED_OUTPUT_TYPE_DECODED, sampleConsumerRef))
|
||||
.build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_AUDIO_VIDEO);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
runLooperUntil(transformer.getApplicationLooper(), () -> sampleConsumerRef.get() != null);
|
||||
|
||||
assertThat(sampleConsumerRef.get().expectsDecodedData()).isTrue();
|
||||
@ -811,8 +764,7 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void getProgress_knownDuration_returnsConsistentStates() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
|
||||
AtomicInteger previousProgressState =
|
||||
new AtomicInteger(PROGRESS_STATE_WAITING_FOR_AVAILABILITY);
|
||||
AtomicBoolean foundInconsistentState = new AtomicBoolean();
|
||||
@ -848,7 +800,7 @@ public final class TransformerEndToEndTest {
|
||||
}
|
||||
};
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
progressHandler.sendEmptyMessage(0);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
@ -858,8 +810,7 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void getProgress_knownDuration_givesIncreasingPercentages() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
|
||||
List<Integer> progresses = new ArrayList<>();
|
||||
Handler progressHandler =
|
||||
new Handler(Looper.myLooper()) {
|
||||
@ -878,7 +829,7 @@ public final class TransformerEndToEndTest {
|
||||
}
|
||||
};
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
progressHandler.sendEmptyMessage(0);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
@ -894,11 +845,10 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void getProgress_noCurrentTransformation_returnsNoTransformation() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
|
||||
|
||||
@Transformer.ProgressState int stateBeforeTransform = transformer.getProgress(progressHolder);
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
@Transformer.ProgressState int stateAfterTransform = transformer.getProgress(progressHolder);
|
||||
|
||||
@ -909,9 +859,7 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void getProgress_unknownDuration_returnsConsistentStates() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_UNKNOWN_DURATION))
|
||||
.build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_UNKNOWN_DURATION);
|
||||
AtomicInteger previousProgressState =
|
||||
new AtomicInteger(PROGRESS_STATE_WAITING_FOR_AVAILABILITY);
|
||||
AtomicBoolean foundInconsistentState = new AtomicBoolean();
|
||||
@ -944,7 +892,7 @@ public final class TransformerEndToEndTest {
|
||||
}
|
||||
};
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
progressHandler.sendEmptyMessage(0);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
|
||||
@ -978,10 +926,9 @@ public final class TransformerEndToEndTest {
|
||||
@Test
|
||||
public void cancel_afterCompletion_doesNotThrow() throws Exception {
|
||||
Transformer transformer = createTransformerBuilder(/* enableFallback= */ false).build();
|
||||
EditedMediaItem editedMediaItem =
|
||||
new EditedMediaItem.Builder(MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY)).build();
|
||||
MediaItem mediaItem = MediaItem.fromUri(ASSET_URI_PREFIX + FILE_VIDEO_ONLY);
|
||||
|
||||
transformer.startTransformation(editedMediaItem, outputPath);
|
||||
transformer.startTransformation(mediaItem, outputPath);
|
||||
TransformerTestRunner.runLooper(transformer);
|
||||
transformer.cancel();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user