summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/java/android/media/videoeditor/MediaArtistNativeHelper.java48
-rwxr-xr-xmedia/java/android/media/videoeditor/VideoEditorImpl.java42
2 files changed, 63 insertions, 27 deletions
diff --git a/media/java/android/media/videoeditor/MediaArtistNativeHelper.java b/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
index ba9403d09d6d..b8d1ca7a92b3 100644
--- a/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
+++ b/media/java/android/media/videoeditor/MediaArtistNativeHelper.java
@@ -2898,28 +2898,43 @@ class MediaArtistNativeHelper {
if (bEffectKbPresent) {
try {
- mClipProperties.clipProperties[previewIndex]
- = getMediaProperties(((MediaImageItem)lMediaItem).getGeneratedImageClip());
- } catch (Exception e) {
- throw new IllegalArgumentException("Unsupported file or file not found");
- }
- } else {
- try {
- mClipProperties.clipProperties[previewIndex]
- = getMediaProperties(((MediaImageItem)lMediaItem).getScaledImageFileName());
- } catch (Exception e) {
+ if(((MediaImageItem)lMediaItem).getGeneratedImageClip() != null) {
+ mClipProperties.clipProperties[previewIndex]
+ = getMediaProperties(((MediaImageItem)lMediaItem).
+ getGeneratedImageClip());
+ }
+ else {
+ mClipProperties.clipProperties[previewIndex]
+ = getMediaProperties(((MediaImageItem)lMediaItem).
+ getScaledImageFileName());
+ mClipProperties.clipProperties[previewIndex].width =
+ ((MediaImageItem)lMediaItem).getScaledWidth();
+ mClipProperties.clipProperties[previewIndex].height =
+ ((MediaImageItem)lMediaItem).getScaledHeight();
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Unsupported file or file not found");
+ }
+ } else {
+ try {
+ mClipProperties.clipProperties[previewIndex]
+ = getMediaProperties(((MediaImageItem)lMediaItem).
+ getScaledImageFileName());
+ } catch (Exception e) {
throw new IllegalArgumentException("Unsupported file or file not found");
- }
- mClipProperties.clipProperties[previewIndex].width = ((MediaImageItem)lMediaItem).getScaledWidth();
- mClipProperties.clipProperties[previewIndex].height = ((MediaImageItem)lMediaItem).getScaledHeight();
+ }
+ mClipProperties.clipProperties[previewIndex].width =
+ ((MediaImageItem)lMediaItem).getScaledWidth();
+ mClipProperties.clipProperties[previewIndex].height =
+ ((MediaImageItem)lMediaItem).getScaledHeight();
}
} else {
try {
mClipProperties.clipProperties[previewIndex]
= getMediaProperties(lMediaItem.getFilename());
- } catch (Exception e) {
- throw new IllegalArgumentException("Unsupported file or file not found");
- }
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Unsupported file or file not found");
+ }
}
mClipProperties.clipProperties[previewIndex].Id = lMediaItem.getId();
checkOddSizeImage(lMediaItem, mClipProperties, previewIndex);
@@ -3632,6 +3647,7 @@ class MediaArtistNativeHelper {
mPreviewEditSettings.transitionSettingsArray[index].audioTransitionType =
AudioTransition.NONE;
}
+
for (int clipCnt = 0; clipCnt < mPreviewEditSettings.clipSettingsArray.length; clipCnt++) {
if (mPreviewEditSettings.clipSettingsArray[clipCnt].fileType == FileType.JPG) {
mPreviewEditSettings.clipSettingsArray[clipCnt].clipPath =
diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java
index 25b25ee5919d..b8c211e4573c 100755
--- a/media/java/android/media/videoeditor/VideoEditorImpl.java
+++ b/media/java/android/media/videoeditor/VideoEditorImpl.java
@@ -103,6 +103,7 @@ public class VideoEditorImpl implements VideoEditor {
private static final String ATTR_DUCK_THRESHOLD = "ducking_threshold";
private static final String ATTR_DUCKED_TRACK_VOLUME = "ducking_volume";
private static final String ATTR_GENERATED_IMAGE_CLIP = "generated_image_clip";
+ private static final String ATTR_IS_IMAGE_CLIP_GENERATED = "is_image_clip_generated";
private static final String ATTR_GENERATED_TRANSITION_CLIP = "generated_transition_clip";
private static final String ATTR_IS_TRANSITION_GENERATED = "is_transition_generated";
private static final String ATTR_OVERLAY_RGB_FILENAME = "overlay_rgb_filename";
@@ -977,15 +978,28 @@ Log.i("VE_IMPL","renderPreviewFrame <--");
currentMediaItem.addEffect(effect);
}
if (effect instanceof EffectKenBurns) {
- String filename = parser.getAttributeValue("", ATTR_GENERATED_IMAGE_CLIP);
-
- if (new File(filename).exists() == true) {
- ((MediaImageItem)currentMediaItem).setGeneratedImageClip(filename);
- ((MediaImageItem)currentMediaItem).setRegenerateClip(false);
- }
- else {
- ((MediaImageItem)currentMediaItem).setGeneratedImageClip(null);
- ((MediaImageItem)currentMediaItem).setRegenerateClip(true);
+ final boolean isImageClipGenerated =
+ Boolean.parseBoolean(parser.getAttributeValue("",
+ ATTR_IS_IMAGE_CLIP_GENERATED));
+ if(isImageClipGenerated) {
+ String filename = parser.getAttributeValue("",
+ ATTR_GENERATED_IMAGE_CLIP);
+ if (new File(filename).exists() == true) {
+ ((MediaImageItem)currentMediaItem).
+ setGeneratedImageClip(filename);
+ ((MediaImageItem)currentMediaItem).
+ setRegenerateClip(false);
+ } else {
+ ((MediaImageItem)currentMediaItem).
+ setGeneratedImageClip(null);
+ ((MediaImageItem)currentMediaItem).
+ setRegenerateClip(true);
+ }
+ } else {
+ ((MediaImageItem)currentMediaItem).
+ setGeneratedImageClip(null);
+ ((MediaImageItem)currentMediaItem).
+ setRegenerateClip(true);
}
}
}
@@ -1390,8 +1404,14 @@ Log.i("VE_IMPL","renderPreviewFrame <--");
serializer.attribute("", ATTR_END_RECT_BOTTOM,
Integer.toString(endRect.bottom));
final MediaItem mItem = effect.getMediaItem();
- serializer.attribute("", ATTR_GENERATED_IMAGE_CLIP,
- ((MediaImageItem)mItem).getGeneratedImageClip());
+ if(((MediaImageItem)mItem).getGeneratedImageClip() != null) {
+ serializer.attribute("", ATTR_IS_IMAGE_CLIP_GENERATED,Boolean.toString(true));
+ serializer.attribute("", ATTR_GENERATED_IMAGE_CLIP,
+ ((MediaImageItem)mItem).getGeneratedImageClip());
+ } else {
+ serializer.attribute("", ATTR_IS_IMAGE_CLIP_GENERATED,
+ Boolean.toString(false));
+ }
}
serializer.endTag("", TAG_EFFECT);