Loading media/java/android/media/videoeditor/Effect.java +17 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,23 @@ public abstract class Effect { return mStartTimeMs; } /** * Set the start time and duration * * @param startTimeMs start time in milliseconds * @param durationMs The duration in milliseconds */ public void setStartTimeAndDuration(long startTimeMs, long durationMs) { if (startTimeMs + durationMs > mMediaItem.getTimelineDuration()) { throw new IllegalArgumentException("Invalid start time or duration"); } mStartTimeMs = startTimeMs; mDurationMs = durationMs; mMediaItem.invalidateTransitions(this); } /** * @return The media item owner */ Loading media/java/android/media/videoeditor/MediaImageItem.java +4 −44 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.media.videoeditor; import java.io.IOException; import java.util.List; import android.graphics.Bitmap; import android.graphics.BitmapFactory; Loading Loading @@ -153,55 +152,16 @@ public class MediaImageItem extends MediaItem { } /** * This method will adjust the duration of bounding transitions if the * current duration of the transactions become greater than the maximum * allowable duration. * This method will adjust the duration of bounding transitions, effects * and overlays if the current duration of the transactions become greater * than the maximum allowable duration. * * @param durationMs The duration of the image in the storyboard timeline */ public void setDuration(long durationMs) { mDurationMs = durationMs; // Check if the duration of transitions need to be adjusted if (mBeginTransition != null) { final long maxDurationMs = mBeginTransition.getMaximumDuration(); if (mBeginTransition.getDuration() > maxDurationMs) { mBeginTransition.setDuration(maxDurationMs); } } if (mEndTransition != null) { final long maxDurationMs = mEndTransition.getMaximumDuration(); if (mEndTransition.getDuration() > maxDurationMs) { mEndTransition.setDuration(maxDurationMs); } } final List<Overlay> overlays = getAllOverlays(); for (Overlay overlay : overlays) { // Adjust the start time if necessary if (overlay.getStartTime() < getTimelineDuration()) { overlay.setStartTime(0); } // Adjust the duration if necessary if (overlay.getStartTime() + overlay.getDuration() > getTimelineDuration()) { overlay.setDuration(getTimelineDuration() - overlay.getStartTime()); } } final List<Effect> effects = getAllEffects(); for (Effect effect : effects) { // Adjust the start time if necessary if (effect.getStartTime() < getTimelineDuration()) { effect.setStartTime(0); } // Adjust the duration if necessary if (effect.getStartTime() + effect.getDuration() > getTimelineDuration()) { effect.setDuration(getTimelineDuration() - effect.getStartTime()); } } adjustElementsDuration(); } /* Loading media/java/android/media/videoeditor/MediaItem.java +69 −0 Original line number Diff line number Diff line Loading @@ -472,4 +472,73 @@ public abstract class MediaItem { } } } /** * Adjust the duration of effects, overlays and transitions. * This method will be called after a media item duration is changed. */ protected void adjustElementsDuration() { // Check if the duration of transitions need to be adjusted if (mBeginTransition != null) { final long maxDurationMs = mBeginTransition.getMaximumDuration(); if (mBeginTransition.getDuration() > maxDurationMs) { mBeginTransition.setDuration(maxDurationMs); } } if (mEndTransition != null) { final long maxDurationMs = mEndTransition.getMaximumDuration(); if (mEndTransition.getDuration() > maxDurationMs) { mEndTransition.setDuration(maxDurationMs); } } final List<Overlay> overlays = getAllOverlays(); for (Overlay overlay : overlays) { // Adjust the start time if necessary final long overlayStartTimeMs; if (overlay.getStartTime() > getTimelineDuration()) { overlayStartTimeMs = 0; } else { overlayStartTimeMs = overlay.getStartTime(); } // Adjust the duration if necessary final long overlayDurationMs; if (overlayStartTimeMs + overlay.getDuration() > getTimelineDuration()) { overlayDurationMs = getTimelineDuration() - overlayStartTimeMs; } else { overlayDurationMs = overlay.getDuration(); } if (overlayStartTimeMs != overlay.getStartTime() || overlayDurationMs != overlay.getDuration()) { overlay.setStartTimeAndDuration(overlayStartTimeMs, overlayDurationMs); } } final List<Effect> effects = getAllEffects(); for (Effect effect : effects) { // Adjust the start time if necessary final long effectStartTimeMs; if (effect.getStartTime() > getTimelineDuration()) { effectStartTimeMs = 0; } else { effectStartTimeMs = effect.getStartTime(); } // Adjust the duration if necessary final long effectDurationMs; if (effectStartTimeMs + effect.getDuration() > getTimelineDuration()) { effectDurationMs = getTimelineDuration() - effectStartTimeMs; } else { effectDurationMs = effect.getDuration(); } if (effectStartTimeMs != effect.getStartTime() || effectDurationMs != effect.getDuration()) { effect.setStartTimeAndDuration(effectStartTimeMs, effectDurationMs); } } } } media/java/android/media/videoeditor/MediaVideoItem.java +4 −44 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.media.videoeditor; import java.io.IOException; import java.util.List; import android.graphics.Bitmap; import android.util.Log; Loading Loading @@ -257,9 +256,9 @@ public class MediaVideoItem extends MediaItem { /** * Sets the start and end marks for trimming a video media item. * This method will adjust the duration of bounding transitions if the * current duration of the transactions become greater than the maximum * allowable duration. * This method will adjust the duration of bounding transitions, effects * and overlays if the current duration of the transactions become greater * than the maximum allowable duration. * * @param beginMs Start time in milliseconds. Set to 0 to extract from the * beginning Loading Loading @@ -293,46 +292,7 @@ public class MediaVideoItem extends MediaItem { mBeginBoundaryTimeMs = beginMs; mEndBoundaryTimeMs = endMs; // Check if the duration of transitions need to be adjusted if (mBeginTransition != null) { final long maxDurationMs = mBeginTransition.getMaximumDuration(); if (mBeginTransition.getDuration() > maxDurationMs) { mBeginTransition.setDuration(maxDurationMs); } } if (mEndTransition != null) { final long maxDurationMs = mEndTransition.getMaximumDuration(); if (mEndTransition.getDuration() > maxDurationMs) { mEndTransition.setDuration(maxDurationMs); } } final List<Overlay> overlays = getAllOverlays(); for (Overlay overlay : overlays) { // Adjust the start time if necessary if (overlay.getStartTime() < mBeginBoundaryTimeMs) { overlay.setStartTime(mBeginBoundaryTimeMs); } // Adjust the duration if necessary if (overlay.getStartTime() + overlay.getDuration() > getTimelineDuration()) { overlay.setDuration(getTimelineDuration() - overlay.getStartTime()); } } final List<Effect> effects = getAllEffects(); for (Effect effect : effects) { // Adjust the start time if necessary if (effect.getStartTime() < mBeginBoundaryTimeMs) { effect.setStartTime(mBeginBoundaryTimeMs); } // Adjust the duration if necessary if (effect.getStartTime() + effect.getDuration() > getTimelineDuration()) { effect.setDuration(getTimelineDuration() - effect.getStartTime()); } } adjustElementsDuration(); } /** Loading media/java/android/media/videoeditor/Overlay.java +17 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,23 @@ public abstract class Overlay { mMediaItem.invalidateTransitions(this); } /** * Set the start time and duration * * @param startTimeMs start time in milliseconds * @param durationMs The duration in milliseconds */ public void setStartTimeAndDuration(long startTimeMs, long durationMs) { if (startTimeMs + durationMs > mMediaItem.getTimelineDuration()) { throw new IllegalArgumentException("Invalid start time or duration"); } mStartTimeMs = startTimeMs; mDurationMs = durationMs; mMediaItem.invalidateTransitions(this); } /** * @return The media item owner */ Loading Loading
media/java/android/media/videoeditor/Effect.java +17 −0 Original line number Diff line number Diff line Loading @@ -123,6 +123,23 @@ public abstract class Effect { return mStartTimeMs; } /** * Set the start time and duration * * @param startTimeMs start time in milliseconds * @param durationMs The duration in milliseconds */ public void setStartTimeAndDuration(long startTimeMs, long durationMs) { if (startTimeMs + durationMs > mMediaItem.getTimelineDuration()) { throw new IllegalArgumentException("Invalid start time or duration"); } mStartTimeMs = startTimeMs; mDurationMs = durationMs; mMediaItem.invalidateTransitions(this); } /** * @return The media item owner */ Loading
media/java/android/media/videoeditor/MediaImageItem.java +4 −44 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.media.videoeditor; import java.io.IOException; import java.util.List; import android.graphics.Bitmap; import android.graphics.BitmapFactory; Loading Loading @@ -153,55 +152,16 @@ public class MediaImageItem extends MediaItem { } /** * This method will adjust the duration of bounding transitions if the * current duration of the transactions become greater than the maximum * allowable duration. * This method will adjust the duration of bounding transitions, effects * and overlays if the current duration of the transactions become greater * than the maximum allowable duration. * * @param durationMs The duration of the image in the storyboard timeline */ public void setDuration(long durationMs) { mDurationMs = durationMs; // Check if the duration of transitions need to be adjusted if (mBeginTransition != null) { final long maxDurationMs = mBeginTransition.getMaximumDuration(); if (mBeginTransition.getDuration() > maxDurationMs) { mBeginTransition.setDuration(maxDurationMs); } } if (mEndTransition != null) { final long maxDurationMs = mEndTransition.getMaximumDuration(); if (mEndTransition.getDuration() > maxDurationMs) { mEndTransition.setDuration(maxDurationMs); } } final List<Overlay> overlays = getAllOverlays(); for (Overlay overlay : overlays) { // Adjust the start time if necessary if (overlay.getStartTime() < getTimelineDuration()) { overlay.setStartTime(0); } // Adjust the duration if necessary if (overlay.getStartTime() + overlay.getDuration() > getTimelineDuration()) { overlay.setDuration(getTimelineDuration() - overlay.getStartTime()); } } final List<Effect> effects = getAllEffects(); for (Effect effect : effects) { // Adjust the start time if necessary if (effect.getStartTime() < getTimelineDuration()) { effect.setStartTime(0); } // Adjust the duration if necessary if (effect.getStartTime() + effect.getDuration() > getTimelineDuration()) { effect.setDuration(getTimelineDuration() - effect.getStartTime()); } } adjustElementsDuration(); } /* Loading
media/java/android/media/videoeditor/MediaItem.java +69 −0 Original line number Diff line number Diff line Loading @@ -472,4 +472,73 @@ public abstract class MediaItem { } } } /** * Adjust the duration of effects, overlays and transitions. * This method will be called after a media item duration is changed. */ protected void adjustElementsDuration() { // Check if the duration of transitions need to be adjusted if (mBeginTransition != null) { final long maxDurationMs = mBeginTransition.getMaximumDuration(); if (mBeginTransition.getDuration() > maxDurationMs) { mBeginTransition.setDuration(maxDurationMs); } } if (mEndTransition != null) { final long maxDurationMs = mEndTransition.getMaximumDuration(); if (mEndTransition.getDuration() > maxDurationMs) { mEndTransition.setDuration(maxDurationMs); } } final List<Overlay> overlays = getAllOverlays(); for (Overlay overlay : overlays) { // Adjust the start time if necessary final long overlayStartTimeMs; if (overlay.getStartTime() > getTimelineDuration()) { overlayStartTimeMs = 0; } else { overlayStartTimeMs = overlay.getStartTime(); } // Adjust the duration if necessary final long overlayDurationMs; if (overlayStartTimeMs + overlay.getDuration() > getTimelineDuration()) { overlayDurationMs = getTimelineDuration() - overlayStartTimeMs; } else { overlayDurationMs = overlay.getDuration(); } if (overlayStartTimeMs != overlay.getStartTime() || overlayDurationMs != overlay.getDuration()) { overlay.setStartTimeAndDuration(overlayStartTimeMs, overlayDurationMs); } } final List<Effect> effects = getAllEffects(); for (Effect effect : effects) { // Adjust the start time if necessary final long effectStartTimeMs; if (effect.getStartTime() > getTimelineDuration()) { effectStartTimeMs = 0; } else { effectStartTimeMs = effect.getStartTime(); } // Adjust the duration if necessary final long effectDurationMs; if (effectStartTimeMs + effect.getDuration() > getTimelineDuration()) { effectDurationMs = getTimelineDuration() - effectStartTimeMs; } else { effectDurationMs = effect.getDuration(); } if (effectStartTimeMs != effect.getStartTime() || effectDurationMs != effect.getDuration()) { effect.setStartTimeAndDuration(effectStartTimeMs, effectDurationMs); } } } }
media/java/android/media/videoeditor/MediaVideoItem.java +4 −44 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.media.videoeditor; import java.io.IOException; import java.util.List; import android.graphics.Bitmap; import android.util.Log; Loading Loading @@ -257,9 +256,9 @@ public class MediaVideoItem extends MediaItem { /** * Sets the start and end marks for trimming a video media item. * This method will adjust the duration of bounding transitions if the * current duration of the transactions become greater than the maximum * allowable duration. * This method will adjust the duration of bounding transitions, effects * and overlays if the current duration of the transactions become greater * than the maximum allowable duration. * * @param beginMs Start time in milliseconds. Set to 0 to extract from the * beginning Loading Loading @@ -293,46 +292,7 @@ public class MediaVideoItem extends MediaItem { mBeginBoundaryTimeMs = beginMs; mEndBoundaryTimeMs = endMs; // Check if the duration of transitions need to be adjusted if (mBeginTransition != null) { final long maxDurationMs = mBeginTransition.getMaximumDuration(); if (mBeginTransition.getDuration() > maxDurationMs) { mBeginTransition.setDuration(maxDurationMs); } } if (mEndTransition != null) { final long maxDurationMs = mEndTransition.getMaximumDuration(); if (mEndTransition.getDuration() > maxDurationMs) { mEndTransition.setDuration(maxDurationMs); } } final List<Overlay> overlays = getAllOverlays(); for (Overlay overlay : overlays) { // Adjust the start time if necessary if (overlay.getStartTime() < mBeginBoundaryTimeMs) { overlay.setStartTime(mBeginBoundaryTimeMs); } // Adjust the duration if necessary if (overlay.getStartTime() + overlay.getDuration() > getTimelineDuration()) { overlay.setDuration(getTimelineDuration() - overlay.getStartTime()); } } final List<Effect> effects = getAllEffects(); for (Effect effect : effects) { // Adjust the start time if necessary if (effect.getStartTime() < mBeginBoundaryTimeMs) { effect.setStartTime(mBeginBoundaryTimeMs); } // Adjust the duration if necessary if (effect.getStartTime() + effect.getDuration() > getTimelineDuration()) { effect.setDuration(getTimelineDuration() - effect.getStartTime()); } } adjustElementsDuration(); } /** Loading
media/java/android/media/videoeditor/Overlay.java +17 −0 Original line number Diff line number Diff line Loading @@ -125,6 +125,23 @@ public abstract class Overlay { mMediaItem.invalidateTransitions(this); } /** * Set the start time and duration * * @param startTimeMs start time in milliseconds * @param durationMs The duration in milliseconds */ public void setStartTimeAndDuration(long startTimeMs, long durationMs) { if (startTimeMs + durationMs > mMediaItem.getTimelineDuration()) { throw new IllegalArgumentException("Invalid start time or duration"); } mStartTimeMs = startTimeMs; mDurationMs = durationMs; mMediaItem.invalidateTransitions(this); } /** * @return The media item owner */ Loading