Add buildUpon() and setMediaItem() method in EditedMediaItem

For pause/resume feature we need to build upon original EditedMediaItem
and set a modified MediaItem to it.

PiperOrigin-RevId: 559484129
This commit is contained in:
sheenachhabra 2023-08-23 19:07:34 +01:00 committed by Ian Baker
parent e2ee8ae1b0
commit 5276f797e5

View file

@ -33,8 +33,7 @@ public final class EditedMediaItem {
/** A builder for {@link EditedMediaItem} instances. */
public static final class Builder {
private final MediaItem mediaItem;
private MediaItem mediaItem;
private boolean removeAudio;
private boolean removeVideo;
private boolean flattenForSlowMotion;
@ -57,6 +56,16 @@ public final class EditedMediaItem {
effects = Effects.EMPTY;
}
private Builder(EditedMediaItem editedMediaItem) {
this.mediaItem = editedMediaItem.mediaItem;
this.removeAudio = editedMediaItem.removeAudio;
this.removeVideo = editedMediaItem.removeVideo;
this.flattenForSlowMotion = editedMediaItem.flattenForSlowMotion;
this.durationUs = editedMediaItem.durationUs;
this.frameRate = editedMediaItem.frameRate;
this.effects = editedMediaItem.effects;
}
/**
* Sets whether to remove the audio from the {@link MediaItem}.
*
@ -182,6 +191,18 @@ public final class EditedMediaItem {
frameRate,
effects);
}
/**
* Sets the {@link MediaItem} on which transformations are applied.
*
* @param mediaItem The {@link MediaItem}.
* @return This builder.
*/
@CanIgnoreReturnValue
/* package */ Builder setMediaItem(MediaItem mediaItem) {
this.mediaItem = mediaItem;
return this;
}
}
/** The {@link MediaItem} on which transformations are applied. */
@ -239,4 +260,9 @@ public final class EditedMediaItem {
this.frameRate = frameRate;
this.effects = effects;
}
/** Returns a {@link Builder} initialized with the values of this instance. */
/* package */ Builder buildUpon() {
return new Builder(this);
}
}