diff options
| -rw-r--r-- | media/java/android/media/videoeditor/MediaArtistNativeHelper.java | 48 | ||||
| -rwxr-xr-x | media/java/android/media/videoeditor/VideoEditorImpl.java | 42 |
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); |