mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +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;
|
public final Effects effects;
|
||||||
|
|
||||||
/** The duration for which this {@code EditedMediaItem} should be presented, in microseconds. */
|
/** The duration for which this {@code EditedMediaItem} should be presented, in microseconds. */
|
||||||
public final long presentationDurationUs;
|
private long presentationDurationUs;
|
||||||
|
|
||||||
private EditedMediaItem(
|
private EditedMediaItem(
|
||||||
MediaItem mediaItem,
|
MediaItem mediaItem,
|
||||||
|
|
@ -268,26 +268,32 @@ public final class EditedMediaItem {
|
||||||
this.durationUs = durationUs;
|
this.durationUs = durationUs;
|
||||||
this.frameRate = frameRate;
|
this.frameRate = frameRate;
|
||||||
this.effects = effects;
|
this.effects = effects;
|
||||||
|
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns a {@link Builder} initialized with the values of this instance. */
|
/** Returns a {@link Builder} initialized with the values of this instance. */
|
||||||
/* package */ Builder buildUpon() {
|
/* package */ Builder buildUpon() {
|
||||||
return new Builder(this);
|
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 =
|
EditedMediaItem editedMediaItem =
|
||||||
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000).build();
|
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000).build();
|
||||||
|
|
||||||
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(1_000);
|
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(1_000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -78,7 +78,7 @@ public final class EditedMediaItemBuilderTest {
|
||||||
EditedMediaItem editedMediaItem =
|
EditedMediaItem editedMediaItem =
|
||||||
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
|
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
|
||||||
|
|
||||||
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(500_000);
|
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(500_000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -99,7 +99,7 @@ public final class EditedMediaItemBuilderTest {
|
||||||
EditedMediaItem editedMediaItem =
|
EditedMediaItem editedMediaItem =
|
||||||
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
|
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
|
||||||
|
|
||||||
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(200_000);
|
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(200_000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -118,7 +118,7 @@ public final class EditedMediaItemBuilderTest {
|
||||||
EditedMediaItem editedMediaItem =
|
EditedMediaItem editedMediaItem =
|
||||||
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
|
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
|
||||||
|
|
||||||
assertThat(editedMediaItem.presentationDurationUs).isEqualTo(200_000);
|
assertThat(editedMediaItem.getPresentationDurationUs()).isEqualTo(200_000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -137,6 +137,6 @@ public final class EditedMediaItemBuilderTest {
|
||||||
EditedMediaItem editedMediaItem =
|
EditedMediaItem editedMediaItem =
|
||||||
new EditedMediaItem.Builder(mediaItem).setDurationUs(1_000_000).build();
|
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