am ba2ee617: Merge "Fix for issue 3409874:Crash during addition of pan and zoom effect if start and end rect are unchanged" into honeycomb

* commit 'ba2ee6178ec386e838434cef902fb7de34ec6585':
  Fix for issue 3409874:Crash during addition of pan and zoom effect if start and end rect are unchanged
This commit is contained in:
Dheeraj Sharma
2011-01-31 22:09:24 -08:00
committed by Android Git Automerger
2 changed files with 63 additions and 27 deletions

View File

@@ -2898,28 +2898,43 @@ class MediaArtistNativeHelper {
if (bEffectKbPresent) {
try {
mClipProperties.clipProperties[previewIndex]
= getMediaProperties(((MediaImageItem)lMediaItem).getGeneratedImageClip());
} 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");
}
} 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 =

View File

@@ -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);