throw new IllegalArgumentException("Media item cannot be null");\r
}\r
\r
- if (startTimeMs + durationMs > mediaItem.getTimelineDuration()) {\r
+ if (startTimeMs + durationMs > mediaItem.getDuration()) {\r
throw new IllegalArgumentException("Invalid start time and duration");\r
}\r
\r
* @param durationMs of the effect in milliseconds\r
*/\r
public void setDuration(long durationMs) {\r
- if (mStartTimeMs + durationMs > mMediaItem.getTimelineDuration()) {\r
+ if (mStartTimeMs + durationMs > mMediaItem.getDuration()) {\r
throw new IllegalArgumentException("Duration is too large");\r
}\r
\r
* of the media item in milliseconds\r
*/\r
public void setStartTime(long startTimeMs) {\r
- if (startTimeMs + mDurationMs > mMediaItem.getTimelineDuration()) {\r
+ if (startTimeMs + mDurationMs > mMediaItem.getDuration()) {\r
throw new IllegalArgumentException("Start time is too large");\r
}\r
\r
* @param durationMs The duration in milliseconds\r
*/\r
public void setStartTimeAndDuration(long startTimeMs, long durationMs) {\r
- if (startTimeMs + durationMs > mMediaItem.getTimelineDuration()) {\r
+ if (startTimeMs + durationMs > mMediaItem.getDuration()) {\r
throw new IllegalArgumentException("Invalid start time or duration");\r
}\r
\r
public abstract long getTimelineDuration();\r
\r
/**\r
+ * @return The is the full duration of the media item (not trimmed)\r
+ */\r
+ public abstract long getDuration();\r
+\r
+ /**\r
* @return The source file type\r
*/\r
public abstract int getFileType();\r
throw new IllegalArgumentException("Effect already exists: " + effect.getId());\r
}\r
\r
- if (effect.getStartTime() + effect.getDuration() > getTimelineDuration()) {\r
+ if (effect.getStartTime() + effect.getDuration() > getDuration()) {\r
throw new IllegalArgumentException(\r
"Effect start time + effect duration > media clip duration");\r
}\r
throw new IllegalArgumentException("Overlay already exists: " + overlay.getId());\r
}\r
\r
- if (overlay.getStartTime() + overlay.getDuration() > getTimelineDuration()) {\r
+ if (overlay.getStartTime() + overlay.getDuration() > getDuration()) {\r
throw new IllegalArgumentException(\r
"Overlay start time + overlay duration > media clip duration");\r
}\r
}\r
\r
if (mEndTransition != null) {\r
- if (effect.getStartTime() + effect.getDuration() > getTimelineDuration()\r
+ if (effect.getStartTime() + effect.getDuration() > getDuration()\r
- mEndTransition.getDuration()) {\r
mEndTransition.invalidate();\r
}\r
}\r
\r
if (mEndTransition != null) {\r
- if (overlay.getStartTime() + overlay.getDuration() > getTimelineDuration()\r
+ if (overlay.getStartTime() + overlay.getDuration() > getDuration()\r
- mEndTransition.getDuration()) {\r
mEndTransition.invalidate();\r
}\r
for (Effect effect : effects) {\r
// Adjust the start time if necessary\r
final long effectStartTimeMs;\r
- if (effect.getStartTime() > getTimelineDuration()) {\r
+ if (effect.getStartTime() > getDuration()) {\r
effectStartTimeMs = 0;\r
} else {\r
effectStartTimeMs = effect.getStartTime();\r
\r
// Adjust the duration if necessary\r
final long effectDurationMs;\r
- if (effectStartTimeMs + effect.getDuration() > getTimelineDuration()) {\r
- effectDurationMs = getTimelineDuration() - effectStartTimeMs;\r
+ if (effectStartTimeMs + effect.getDuration() > getDuration()) {\r
+ effectDurationMs = getDuration() - effectStartTimeMs;\r
} else {\r
effectDurationMs = effect.getDuration();\r
}\r
for (Overlay overlay : overlays) {\r
// Adjust the start time if necessary\r
final long overlayStartTimeMs;\r
- if (overlay.getStartTime() > getTimelineDuration()) {\r
+ if (overlay.getStartTime() > getDuration()) {\r
overlayStartTimeMs = 0;\r
} else {\r
overlayStartTimeMs = overlay.getStartTime();\r
\r
// Adjust the duration if necessary\r
final long overlayDurationMs;\r
- if (overlayStartTimeMs + overlay.getDuration() > getTimelineDuration()) {\r
- overlayDurationMs = getTimelineDuration() - overlayStartTimeMs;\r
+ if (overlayStartTimeMs + overlay.getDuration() > getDuration()) {\r
+ overlayDurationMs = getDuration() - overlayStartTimeMs;\r
} else {\r
overlayDurationMs = overlay.getDuration();\r
}\r
throw new IllegalArgumentException("Media item cannot be null");\r
}\r
\r
- if (startTimeMs + durationMs > mediaItem.getTimelineDuration()) {\r
+ if (startTimeMs + durationMs > mediaItem.getDuration()) {\r
throw new IllegalArgumentException("Invalid start time and duration");\r
}\r
\r
* @param durationMs The duration in milliseconds\r
*/\r
public void setDuration(long durationMs) {\r
- if (mStartTimeMs + durationMs > mMediaItem.getTimelineDuration()) {\r
+ if (mStartTimeMs + durationMs > mMediaItem.getDuration()) {\r
throw new IllegalArgumentException("Duration is too large");\r
}\r
\r
* @param startTimeMs start time in milliseconds\r
*/\r
public void setStartTime(long startTimeMs) {\r
- if (startTimeMs + mDurationMs > mMediaItem.getTimelineDuration()) {\r
+ if (startTimeMs + mDurationMs > mMediaItem.getDuration()) {\r
throw new IllegalArgumentException("Start time is too large");\r
}\r
\r
* @param durationMs The duration in milliseconds\r
*/\r
public void setStartTimeAndDuration(long startTimeMs, long durationMs) {\r
- if (startTimeMs + durationMs > mMediaItem.getTimelineDuration()) {\r
+ if (startTimeMs + durationMs > mMediaItem.getDuration()) {\r
throw new IllegalArgumentException("Invalid start time or duration");\r
}\r
\r