mirror of
https://github.com/samsonjs/media.git
synced 2026-03-31 10:25:48 +00:00
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:
parent
d1e38abf93
commit
b0e2fd78af
2 changed files with 28 additions and 22 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue