Use getter for presentationDurationUs

Delays failures to when the field is used in preview code, so that exports in the demo app can continue succeed

PiperOrigin-RevId: 588022569
This commit is contained in:
tofunmi 2023-12-05 04:18:05 -08:00 committed by Copybara-Service
parent d1e38abf93
commit b0e2fd78af
2 changed files with 28 additions and 22 deletions

View file

@ -250,7 +250,7 @@ public final class EditedMediaItem {
public final Effects effects;
/** The duration for which this {@code EditedMediaItem} should be presented, in microseconds. */
public final long presentationDurationUs;
private long presentationDurationUs;
private EditedMediaItem(
MediaItem mediaItem,
@ -268,26 +268,32 @@ public final class EditedMediaItem {
this.durationUs = durationUs;
this.frameRate = frameRate;
this.effects = effects;
if (mediaItem.clippingConfiguration.equals(MediaItem.ClippingConfiguration.UNSET)
|| durationUs == C.TIME_UNSET) {
// TODO - b/290734981: Use presentationDurationUs for image presentation
presentationDurationUs = durationUs;
} else {
MediaItem.ClippingConfiguration clippingConfiguration = mediaItem.clippingConfiguration;
checkArgument(!clippingConfiguration.relativeToDefaultPosition);
if (clippingConfiguration.endPositionUs == C.TIME_END_OF_SOURCE) {
presentationDurationUs = durationUs - clippingConfiguration.startPositionUs;
} else {
checkArgument(clippingConfiguration.endPositionUs <= durationUs);
presentationDurationUs =
clippingConfiguration.endPositionUs - clippingConfiguration.startPositionUs;
}
}
presentationDurationUs = C.TIME_UNSET;
}
/** Returns a {@link Builder} initialized with the values of this instance. */
/* package */ Builder buildUpon() {
return new Builder(this);
}
/* package */ long getPresentationDurationUs() {
if (presentationDurationUs == C.TIME_UNSET) {
if (mediaItem.clippingConfiguration.equals(MediaItem.ClippingConfiguration.UNSET)
|| durationUs == C.TIME_UNSET) {
// TODO - b/290734981: Use presentationDurationUs for image presentation
presentationDurationUs = durationUs;
} else {
MediaItem.ClippingConfiguration clippingConfiguration = mediaItem.clippingConfiguration;
checkArgument(!clippingConfiguration.relativeToDefaultPosition);
if (clippingConfiguration.endPositionUs == C.TIME_END_OF_SOURCE) {
presentationDurationUs = durationUs - clippingConfiguration.startPositionUs;
} else {
checkArgument(clippingConfiguration.endPositionUs <= durationUs);
presentationDurationUs =
clippingConfiguration.endPositionUs - clippingConfiguration.startPositionUs;
}
}
}
return presentationDurationUs;
}
}

View file

@ -62,7 +62,7 @@ public final class EditedMediaItemBuilderTest {
EditedMediaItem editedMediaItem =
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000).build();
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(1_000);
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(1_000);
}
@Test
@ -78,7 +78,7 @@ public final class EditedMediaItemBuilderTest {
EditedMediaItem editedMediaItem =
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(500_000);
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(500_000);
}
@Test
@ -99,7 +99,7 @@ public final class EditedMediaItemBuilderTest {
EditedMediaItem editedMediaItem =
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(200_000);
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(200_000);
}
@Test
@ -118,7 +118,7 @@ public final class EditedMediaItemBuilderTest {
EditedMediaItem editedMediaItem =
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(200_000);
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(200_000);
}
@Test
@ -137,6 +137,6 @@ public final class EditedMediaItemBuilderTest {
EditedMediaItem editedMediaItem =
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(700_000);
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(700_000);
}
}