summaryrefslogtreecommitdiffstats
path: root/media/java
diff options
context:
space:
mode:
authorGil Dobjanschi <virgild@google.com>2010-11-08 19:06:41 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-11-08 19:06:41 -0800
commit8346ad0a8f20aa65082af569ac09723db989ad8b (patch)
treecdacba4162f93325b7314b4f27ac867e7315556a /media/java
parent4aa2fe500a126861bf1a56d002ae8a0333cb4e10 (diff)
parent549a65b5a40e6377e2311ba5efb09ae4c94092f0 (diff)
downloadframeworks_base-8346ad0a8f20aa65082af569ac09723db989ad8b.zip
frameworks_base-8346ad0a8f20aa65082af569ac09723db989ad8b.tar.gz
frameworks_base-8346ad0a8f20aa65082af569ac09723db989ad8b.tar.bz2
Merge "Fix invalidateTransition method"
Diffstat (limited to 'media/java')
-rwxr-xr-xmedia/java/android/media/videoeditor/Effect.java6
-rwxr-xr-xmedia/java/android/media/videoeditor/MediaImageItem.java19
-rwxr-xr-xmedia/java/android/media/videoeditor/MediaItem.java48
-rwxr-xr-xmedia/java/android/media/videoeditor/MediaVideoItem.java19
-rwxr-xr-xmedia/java/android/media/videoeditor/Overlay.java6
-rwxr-xr-xmedia/java/android/media/videoeditor/OverlayFrame.java2
-rw-r--r--media/java/android/media/videoeditor/VideoEditorTestImpl.java4
7 files changed, 56 insertions, 48 deletions
diff --git a/media/java/android/media/videoeditor/Effect.java b/media/java/android/media/videoeditor/Effect.java
index 8547e13..ef0aeb1 100755
--- a/media/java/android/media/videoeditor/Effect.java
+++ b/media/java/android/media/videoeditor/Effect.java
@@ -87,7 +87,7 @@ public abstract class Effect {
mDurationMs = durationMs;
- mMediaItem.invalidateTransitions(this);
+ mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
}
/**
@@ -113,7 +113,7 @@ public abstract class Effect {
mStartTimeMs = startTimeMs;
- mMediaItem.invalidateTransitions(this);
+ mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
}
/**
@@ -137,7 +137,7 @@ public abstract class Effect {
mStartTimeMs = startTimeMs;
mDurationMs = durationMs;
- mMediaItem.invalidateTransitions(this);
+ mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
}
/**
diff --git a/media/java/android/media/videoeditor/MediaImageItem.java b/media/java/android/media/videoeditor/MediaImageItem.java
index 6dc36c2..e01a26b 100755
--- a/media/java/android/media/videoeditor/MediaImageItem.java
+++ b/media/java/android/media/videoeditor/MediaImageItem.java
@@ -206,6 +206,25 @@ public class MediaImageItem extends MediaItem {
return thumbnailArray;
}
+ /*
+ * {@inheritDoc}
+ */
+ @Override
+ void invalidateTransitions(long startTimeMs, long durationMs) {
+ // Check if the effect overlaps with the beginning and end transitions
+ if (mBeginTransition != null) {
+ if (startTimeMs < mBeginTransition.getDuration()) {
+ mBeginTransition.invalidate();
+ }
+ }
+
+ if (mEndTransition != null) {
+ if (startTimeMs + durationMs > mDurationMs - mEndTransition.getDuration()) {
+ mEndTransition.invalidate();
+ }
+ }
+ }
+
/**
* Resize a bitmap to the specified width and height
*
diff --git a/media/java/android/media/videoeditor/MediaItem.java b/media/java/android/media/videoeditor/MediaItem.java
index 04878f7..870de63 100755
--- a/media/java/android/media/videoeditor/MediaItem.java
+++ b/media/java/android/media/videoeditor/MediaItem.java
@@ -234,7 +234,7 @@ public abstract class MediaItem {
}
mEffects.add(effect);
- invalidateTransitions(effect);
+ invalidateTransitions(effect.getStartTime(), effect.getDuration());
}
/**
@@ -252,7 +252,7 @@ public abstract class MediaItem {
for (Effect effect : mEffects) {
if (effect.getId().equals(effectId)) {
mEffects.remove(effect);
- invalidateTransitions(effect);
+ invalidateTransitions(effect.getStartTime(), effect.getDuration());
return effect;
}
}
@@ -337,7 +337,7 @@ public abstract class MediaItem {
}
mOverlays.add(overlay);
- invalidateTransitions(overlay);
+ invalidateTransitions(overlay.getStartTime(), overlay.getDuration());
}
/**
@@ -358,7 +358,7 @@ public abstract class MediaItem {
if (overlay instanceof OverlayFrame) {
((OverlayFrame)overlay).invalidate();
}
- invalidateTransitions(overlay);
+ invalidateTransitions(overlay.getStartTime(), overlay.getDuration());
return overlay;
}
}
@@ -449,44 +449,10 @@ public abstract class MediaItem {
/**
* Invalidate the start and end transitions if necessary
*
- * @param effect The effect that was added or removed
+ * @param startTimeMs The start time of the effect or overlay
+ * @param durationMs The duration of the effect or overlay
*/
- void invalidateTransitions(Effect effect) {
- // Check if the effect overlaps with the beginning and end transitions
- if (mBeginTransition != null) {
- if (effect.getStartTime() < mBeginTransition.getDuration()) {
- mBeginTransition.invalidate();
- }
- }
-
- if (mEndTransition != null) {
- if (effect.getStartTime() + effect.getDuration() > getDuration()
- - mEndTransition.getDuration()) {
- mEndTransition.invalidate();
- }
- }
- }
-
- /**
- * Invalidate the start and end transitions if necessary
- *
- * @param overlay The effect that was added or removed
- */
- void invalidateTransitions(Overlay overlay) {
- // Check if the overlay overlaps with the beginning and end transitions
- if (mBeginTransition != null) {
- if (overlay.getStartTime() < mBeginTransition.getDuration()) {
- mBeginTransition.invalidate();
- }
- }
-
- if (mEndTransition != null) {
- if (overlay.getStartTime() + overlay.getDuration() > getDuration()
- - mEndTransition.getDuration()) {
- mEndTransition.invalidate();
- }
- }
- }
+ abstract void invalidateTransitions(long startTimeMs, long durationMs);
/**
* Adjust the duration transitions.
diff --git a/media/java/android/media/videoeditor/MediaVideoItem.java b/media/java/android/media/videoeditor/MediaVideoItem.java
index c1abf78..745b00a 100755
--- a/media/java/android/media/videoeditor/MediaVideoItem.java
+++ b/media/java/android/media/videoeditor/MediaVideoItem.java
@@ -217,6 +217,25 @@ public class MediaVideoItem extends MediaItem {
* {@inheritDoc}
*/
@Override
+ void invalidateTransitions(long startTimeMs, long durationMs) {
+ // Check if the effect overlaps with the beginning and end transitions
+ if (mBeginTransition != null) {
+ if (startTimeMs < mBeginTransition.getDuration()) {
+ mBeginTransition.invalidate();
+ }
+ }
+
+ if (mEndTransition != null) {
+ if (startTimeMs + durationMs > mEndBoundaryTimeMs - mEndTransition.getDuration()) {
+ mEndTransition.invalidate();
+ }
+ }
+ }
+
+ /*
+ * {@inheritDoc}
+ */
+ @Override
public int getAspectRatio() {
return mAspectRatio;
}
diff --git a/media/java/android/media/videoeditor/Overlay.java b/media/java/android/media/videoeditor/Overlay.java
index fff9ca2..e43f229 100755
--- a/media/java/android/media/videoeditor/Overlay.java
+++ b/media/java/android/media/videoeditor/Overlay.java
@@ -98,7 +98,7 @@ public abstract class Overlay {
mDurationMs = durationMs;
- mMediaItem.invalidateTransitions(this);
+ mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
}
/**
@@ -122,7 +122,7 @@ public abstract class Overlay {
mStartTimeMs = startTimeMs;
- mMediaItem.invalidateTransitions(this);
+ mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
}
/**
@@ -139,7 +139,7 @@ public abstract class Overlay {
mStartTimeMs = startTimeMs;
mDurationMs = durationMs;
- mMediaItem.invalidateTransitions(this);
+ mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
}
/**
diff --git a/media/java/android/media/videoeditor/OverlayFrame.java b/media/java/android/media/videoeditor/OverlayFrame.java
index dcac4ba..a5511f9 100755
--- a/media/java/android/media/videoeditor/OverlayFrame.java
+++ b/media/java/android/media/videoeditor/OverlayFrame.java
@@ -105,7 +105,7 @@ public class OverlayFrame extends Overlay {
}
// Invalidate the transitions if necessary
- getMediaItem().invalidateTransitions(this);
+ getMediaItem().invalidateTransitions(mStartTimeMs, mDurationMs);
}
/**
diff --git a/media/java/android/media/videoeditor/VideoEditorTestImpl.java b/media/java/android/media/videoeditor/VideoEditorTestImpl.java
index 40b49a5..157dd62 100644
--- a/media/java/android/media/videoeditor/VideoEditorTestImpl.java
+++ b/media/java/android/media/videoeditor/VideoEditorTestImpl.java
@@ -1092,6 +1092,10 @@ public class VideoEditorTestImpl implements VideoEditor {
*/
public void setAspectRatio(int aspectRatio) {
mAspectRatio = aspectRatio;
+
+ for (Transition transition : mTransitions) {
+ transition.invalidate();
+ }
}
/*