diff options
author | Gil Dobjanschi <virgild@google.com> | 2010-11-08 19:06:41 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-11-08 19:06:41 -0800 |
commit | 8346ad0a8f20aa65082af569ac09723db989ad8b (patch) | |
tree | cdacba4162f93325b7314b4f27ac867e7315556a /media/java | |
parent | 4aa2fe500a126861bf1a56d002ae8a0333cb4e10 (diff) | |
parent | 549a65b5a40e6377e2311ba5efb09ae4c94092f0 (diff) | |
download | frameworks_base-8346ad0a8f20aa65082af569ac09723db989ad8b.zip frameworks_base-8346ad0a8f20aa65082af569ac09723db989ad8b.tar.gz frameworks_base-8346ad0a8f20aa65082af569ac09723db989ad8b.tar.bz2 |
Merge "Fix invalidateTransition method"
Diffstat (limited to 'media/java')
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(); + } } /* |