summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorGil Dobjanschi <virgild@google.com>2010-10-28 16:24:41 -0700
committerGil Dobjanschi <virgild@google.com>2010-10-28 16:24:41 -0700
commit6ea92ecabbb53a2997eb5835c11945fecc177b91 (patch)
tree0adaa5d35a2953a2d9844672bc1c326ed1933208 /media
parent30ca240a98becff34c2003ea13475d9f381956b2 (diff)
downloadframeworks_base-6ea92ecabbb53a2997eb5835c11945fecc177b91.zip
frameworks_base-6ea92ecabbb53a2997eb5835c11945fecc177b91.tar.gz
frameworks_base-6ea92ecabbb53a2997eb5835c11945fecc177b91.tar.bz2
Bug fix: Use getDuration vs. getTimelineDuration in Effect and Overlay limits calculations.
Change-Id: I5f619807435dc75c285446bfd60327bc1c1ecacd
Diffstat (limited to 'media')
-rwxr-xr-xmedia/java/android/media/videoeditor/Effect.java8
-rwxr-xr-xmedia/java/android/media/videoeditor/MediaImageItem.java8
-rwxr-xr-xmedia/java/android/media/videoeditor/MediaItem.java25
-rwxr-xr-xmedia/java/android/media/videoeditor/MediaVideoItem.java10
-rwxr-xr-xmedia/java/android/media/videoeditor/Overlay.java8
5 files changed, 36 insertions, 23 deletions
diff --git a/media/java/android/media/videoeditor/Effect.java b/media/java/android/media/videoeditor/Effect.java
index f5e6a67..8547e13 100755
--- a/media/java/android/media/videoeditor/Effect.java
+++ b/media/java/android/media/videoeditor/Effect.java
@@ -57,7 +57,7 @@ public abstract class Effect {
throw new IllegalArgumentException("Media item cannot be null");
}
- if (startTimeMs + durationMs > mediaItem.getTimelineDuration()) {
+ if (startTimeMs + durationMs > mediaItem.getDuration()) {
throw new IllegalArgumentException("Invalid start time and duration");
}
@@ -81,7 +81,7 @@ public abstract class Effect {
* @param durationMs of the effect in milliseconds
*/
public void setDuration(long durationMs) {
- if (mStartTimeMs + durationMs > mMediaItem.getTimelineDuration()) {
+ if (mStartTimeMs + durationMs > mMediaItem.getDuration()) {
throw new IllegalArgumentException("Duration is too large");
}
@@ -107,7 +107,7 @@ public abstract class Effect {
* of the media item in milliseconds
*/
public void setStartTime(long startTimeMs) {
- if (startTimeMs + mDurationMs > mMediaItem.getTimelineDuration()) {
+ if (startTimeMs + mDurationMs > mMediaItem.getDuration()) {
throw new IllegalArgumentException("Start time is too large");
}
@@ -130,7 +130,7 @@ public abstract class Effect {
* @param durationMs The duration in milliseconds
*/
public void setStartTimeAndDuration(long startTimeMs, long durationMs) {
- if (startTimeMs + durationMs > mMediaItem.getTimelineDuration()) {
+ if (startTimeMs + durationMs > mMediaItem.getDuration()) {
throw new IllegalArgumentException("Invalid start time or duration");
}
diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java
index d2f3694..6dc36c2 100755
--- a/media/java/android/media/videoeditor/MediaImageItem.java
+++ b/media/java/android/media/videoeditor/MediaImageItem.java
@@ -172,6 +172,14 @@ public class MediaImageItem extends MediaItem {
* {@inheritDoc}
*/
@Override
+ public long getDuration() {
+ return mDurationMs;
+ }
+
+ /*
+ * {@inheritDoc}
+ */
+ @Override
public long getTimelineDuration() {
return mDurationMs;
}
diff --git a/media/java/android/media/videoeditor/MediaItem.java b/media/java/android/media/videoeditor/MediaItem.java
index 40d3619..04878f7 100755
--- a/media/java/android/media/videoeditor/MediaItem.java
+++ b/media/java/android/media/videoeditor/MediaItem.java
@@ -174,6 +174,11 @@ public abstract class MediaItem {
public abstract long getTimelineDuration();
/**
+ * @return The is the full duration of the media item (not trimmed)
+ */
+ public abstract long getDuration();
+
+ /**
* @return The source file type
*/
public abstract int getFileType();
@@ -223,7 +228,7 @@ public abstract class MediaItem {
throw new IllegalArgumentException("Effect already exists: " + effect.getId());
}
- if (effect.getStartTime() + effect.getDuration() > getTimelineDuration()) {
+ if (effect.getStartTime() + effect.getDuration() > getDuration()) {
throw new IllegalArgumentException(
"Effect start time + effect duration > media clip duration");
}
@@ -300,7 +305,7 @@ public abstract class MediaItem {
throw new IllegalArgumentException("Overlay already exists: " + overlay.getId());
}
- if (overlay.getStartTime() + overlay.getDuration() > getTimelineDuration()) {
+ if (overlay.getStartTime() + overlay.getDuration() > getDuration()) {
throw new IllegalArgumentException(
"Overlay start time + overlay duration > media clip duration");
}
@@ -455,7 +460,7 @@ public abstract class MediaItem {
}
if (mEndTransition != null) {
- if (effect.getStartTime() + effect.getDuration() > getTimelineDuration()
+ if (effect.getStartTime() + effect.getDuration() > getDuration()
- mEndTransition.getDuration()) {
mEndTransition.invalidate();
}
@@ -476,7 +481,7 @@ public abstract class MediaItem {
}
if (mEndTransition != null) {
- if (overlay.getStartTime() + overlay.getDuration() > getTimelineDuration()
+ if (overlay.getStartTime() + overlay.getDuration() > getDuration()
- mEndTransition.getDuration()) {
mEndTransition.invalidate();
}
@@ -511,7 +516,7 @@ public abstract class MediaItem {
for (Effect effect : effects) {
// Adjust the start time if necessary
final long effectStartTimeMs;
- if (effect.getStartTime() > getTimelineDuration()) {
+ if (effect.getStartTime() > getDuration()) {
effectStartTimeMs = 0;
} else {
effectStartTimeMs = effect.getStartTime();
@@ -519,8 +524,8 @@ public abstract class MediaItem {
// Adjust the duration if necessary
final long effectDurationMs;
- if (effectStartTimeMs + effect.getDuration() > getTimelineDuration()) {
- effectDurationMs = getTimelineDuration() - effectStartTimeMs;
+ if (effectStartTimeMs + effect.getDuration() > getDuration()) {
+ effectDurationMs = getDuration() - effectStartTimeMs;
} else {
effectDurationMs = effect.getDuration();
}
@@ -540,7 +545,7 @@ public abstract class MediaItem {
for (Overlay overlay : overlays) {
// Adjust the start time if necessary
final long overlayStartTimeMs;
- if (overlay.getStartTime() > getTimelineDuration()) {
+ if (overlay.getStartTime() > getDuration()) {
overlayStartTimeMs = 0;
} else {
overlayStartTimeMs = overlay.getStartTime();
@@ -548,8 +553,8 @@ public abstract class MediaItem {
// Adjust the duration if necessary
final long overlayDurationMs;
- if (overlayStartTimeMs + overlay.getDuration() > getTimelineDuration()) {
- overlayDurationMs = getTimelineDuration() - overlayStartTimeMs;
+ if (overlayStartTimeMs + overlay.getDuration() > getDuration()) {
+ overlayDurationMs = getDuration() - overlayStartTimeMs;
} else {
overlayDurationMs = overlay.getDuration();
}
diff --git a/media/java/android/media/videoeditor/MediaVideoItem.java b/media/java/android/media/videoeditor/MediaVideoItem.java
index f09219d..1fa98e7 100755
--- a/media/java/android/media/videoeditor/MediaVideoItem.java
+++ b/media/java/android/media/videoeditor/MediaVideoItem.java
@@ -243,16 +243,16 @@ public class MediaVideoItem extends MediaItem {
return mHeight;
}
- /**
- * @return The duration of the video clip
+ /*
+ * {@inheritDoc}
*/
+ @Override
public long getDuration() {
return mDurationMs;
}
- /**
- * @return The timeline duration. This is the actual duration in the
- * timeline (trimmed duration)
+ /*
+ * {@inheritDoc}
*/
@Override
public long getTimelineDuration() {
diff --git a/media/java/android/media/videoeditor/Overlay.java b/media/java/android/media/videoeditor/Overlay.java
index c58b5cb..fff9ca2 100755
--- a/media/java/android/media/videoeditor/Overlay.java
+++ b/media/java/android/media/videoeditor/Overlay.java
@@ -60,7 +60,7 @@ public abstract class Overlay {
throw new IllegalArgumentException("Media item cannot be null");
}
- if (startTimeMs + durationMs > mediaItem.getTimelineDuration()) {
+ if (startTimeMs + durationMs > mediaItem.getDuration()) {
throw new IllegalArgumentException("Invalid start time and duration");
}
@@ -92,7 +92,7 @@ public abstract class Overlay {
* @param durationMs The duration in milliseconds
*/
public void setDuration(long durationMs) {
- if (mStartTimeMs + durationMs > mMediaItem.getTimelineDuration()) {
+ if (mStartTimeMs + durationMs > mMediaItem.getDuration()) {
throw new IllegalArgumentException("Duration is too large");
}
@@ -116,7 +116,7 @@ public abstract class Overlay {
* @param startTimeMs start time in milliseconds
*/
public void setStartTime(long startTimeMs) {
- if (startTimeMs + mDurationMs > mMediaItem.getTimelineDuration()) {
+ if (startTimeMs + mDurationMs > mMediaItem.getDuration()) {
throw new IllegalArgumentException("Start time is too large");
}
@@ -132,7 +132,7 @@ public abstract class Overlay {
* @param durationMs The duration in milliseconds
*/
public void setStartTimeAndDuration(long startTimeMs, long durationMs) {
- if (startTimeMs + durationMs > mMediaItem.getTimelineDuration()) {
+ if (startTimeMs + durationMs > mMediaItem.getDuration()) {
throw new IllegalArgumentException("Invalid start time or duration");
}