summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorShailendra Yadav <shailendray@google.com>2011-03-14 17:36:56 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-03-14 17:36:56 -0700
commite987cbafc2a6c19cae1ccf50658fb6320bda084a (patch)
tree0cb6c88e54f9b68b8ed4d96ef79973c87d9907e2 /media
parent67718e076422f8f28f4e30a39df9e462ef32d19b (diff)
parent3fabad87f6cade6ccf7dc6d716e8b91675982088 (diff)
downloadframeworks_base-e987cbafc2a6c19cae1ccf50658fb6320bda084a.zip
frameworks_base-e987cbafc2a6c19cae1ccf50658fb6320bda084a.tar.gz
frameworks_base-e987cbafc2a6c19cae1ccf50658fb6320bda084a.tar.bz2
am 3fabad87: Merge "Fix for Don\'t allow adding 64-bit files(4086708)" into honeycomb-mr1
* commit '3fabad87f6cade6ccf7dc6d716e8b91675982088': Fix for Don't allow adding 64-bit files(4086708)
Diffstat (limited to 'media')
-rwxr-xr-xmedia/java/android/media/videoeditor/AudioTrack.java7
-rwxr-xr-xmedia/java/android/media/videoeditor/MediaItem.java9
-rwxr-xr-xmedia/java/android/media/videoeditor/VideoEditor.java5
-rwxr-xr-xmedia/java/android/media/videoeditor/VideoEditorImpl.java7
4 files changed, 26 insertions, 2 deletions
diff --git a/media/java/android/media/videoeditor/AudioTrack.java b/media/java/android/media/videoeditor/AudioTrack.java
index 7069b23..2de82f2 100755
--- a/media/java/android/media/videoeditor/AudioTrack.java
+++ b/media/java/android/media/videoeditor/AudioTrack.java
@@ -49,7 +49,6 @@ public class AudioTrack {
private final int mAudioType;
private final int mAudioBitrate;
private final int mAudioSamplingFrequency;
-
/**
* Ducking variables
*/
@@ -127,11 +126,17 @@ public class AudioTrack {
int duckThreshold, int duckedTrackVolume,
String audioWaveformFilename) throws IOException {
Properties properties = null;
+
File file = new File(filename);
if (!file.exists()) {
throw new IOException(filename + " not found ! ");
}
+ /*Compare file_size with 2GB*/
+ if (VideoEditor.MAX_SUPPORTED_FILE_SIZE <= file.length()) {
+ throw new IllegalArgumentException("File size is more than 2GB");
+ }
+
if (editor instanceof VideoEditorImpl) {
mMANativeHelper = ((VideoEditorImpl)editor).getNativeContext();
} else {
diff --git a/media/java/android/media/videoeditor/MediaItem.java b/media/java/android/media/videoeditor/MediaItem.java
index dfe0bae..8c4841f 100755
--- a/media/java/android/media/videoeditor/MediaItem.java
+++ b/media/java/android/media/videoeditor/MediaItem.java
@@ -131,6 +131,15 @@ public abstract class MediaItem {
if (filename == null) {
throw new IllegalArgumentException("MediaItem : filename is null");
}
+ File file = new File(filename);
+ if (!file.exists()) {
+ throw new IOException(filename + " not found ! ");
+ }
+
+ /*Compare file_size with 2GB*/
+ if (VideoEditor.MAX_SUPPORTED_FILE_SIZE <= file.length()) {
+ throw new IllegalArgumentException("File size is more than 2GB");
+ }
mUniqueId = mediaItemId;
mFilename = filename;
mRenderingMode = renderingMode;
diff --git a/media/java/android/media/videoeditor/VideoEditor.java b/media/java/android/media/videoeditor/VideoEditor.java
index 122dc8d..59e4540 100755
--- a/media/java/android/media/videoeditor/VideoEditor.java
+++ b/media/java/android/media/videoeditor/VideoEditor.java
@@ -68,6 +68,11 @@ public interface VideoEditor {
public final static int DURATION_OF_STORYBOARD = -1;
/**
+ * Maximum supported file size
+ */
+ public static final long MAX_SUPPORTED_FILE_SIZE = 2147483648L;
+
+ /**
* This listener interface is used by the VideoEditor to emit preview
* progress notifications. This callback should be invoked after the number
* of frames specified by
diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java
index 7e1f73a..78557ee 100755
--- a/media/java/android/media/videoeditor/VideoEditorImpl.java
+++ b/media/java/android/media/videoeditor/VideoEditorImpl.java
@@ -119,7 +119,6 @@ public class VideoEditorImpl implements VideoEditor {
private static final String ATTR_OVERLAY_FRAME_HEIGHT = "overlay_frame_height";
private static final String ATTR_OVERLAY_RESIZED_RGB_FRAME_WIDTH = "resized_RGBframe_width";
private static final String ATTR_OVERLAY_RESIZED_RGB_FRAME_HEIGHT = "resized_RGBframe_height";
-
private static final int ENGINE_ACCESS_MAX_TIMEOUT_MS = 500;
/*
* Instance variables
@@ -437,6 +436,12 @@ public class VideoEditorImpl implements VideoEditor {
throw new IllegalArgumentException(message);
}
}
+ computeTimelineDuration();
+ final long audioBitrate = MediaArtistNativeHelper.Bitrate.BR_96_KBPS;
+ final long fileSize = (mDurationMs * (bitrate + audioBitrate)) / 8000;
+ if (MAX_SUPPORTED_FILE_SIZE <= fileSize) {
+ throw new IllegalStateException("Export Size is more than 2GB");
+ }
boolean semAcquireDone = false;
try {