summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2011-06-20 16:24:48 -0700
committerJames Dong <jdong@google.com>2011-06-21 13:50:51 -0700
commit24a38f1ab9ed3b7b9f8517b22dbf692a898117e3 (patch)
tree0fd2ad82fe0ba6dd667f3e77ea3ac7f5d1f6436b /media
parent93aa58fd944b5cfb825f592de29e25a4f02cf97a (diff)
downloadframeworks_base-24a38f1ab9ed3b7b9f8517b22dbf692a898117e3.zip
frameworks_base-24a38f1ab9ed3b7b9f8517b22dbf692a898117e3.tar.gz
frameworks_base-24a38f1ab9ed3b7b9f8517b22dbf692a898117e3.tar.bz2
Switch to use MediaMetadataRetriever to generate the project thumbnail when the first media item is a MediaVideoItem
o This patch allows us to use the logic from MediaMetadataRetriever to extract a thumbnail instead of extracting the thumbnail from a fixed position (@500 ms). Change-Id: I81e8378d9bed80894cc622479679021dce3d52e5 related-to-bug: 3485609
Diffstat (limited to 'media')
-rwxr-xr-xmedia/java/android/media/videoeditor/VideoEditorImpl.java33
1 files changed, 27 insertions, 6 deletions
diff --git a/media/java/android/media/videoeditor/VideoEditorImpl.java b/media/java/android/media/videoeditor/VideoEditorImpl.java
index 2105deb..649b98a 100755
--- a/media/java/android/media/videoeditor/VideoEditorImpl.java
+++ b/media/java/android/media/videoeditor/VideoEditorImpl.java
@@ -38,6 +38,7 @@ import android.graphics.Bitmap;
import android.graphics.Rect;
import android.media.videoeditor.MediaImageItem;
import android.media.videoeditor.MediaItem;
+import android.media.MediaMetadataRetriever;
import android.util.Log;
import android.util.Xml;
import android.view.Surface;
@@ -1833,12 +1834,32 @@ public class VideoEditorImpl implements VideoEditor {
}
Bitmap projectBitmap = null;
- try {
- projectBitmap = mI.getThumbnail(width, height, 500);
- } catch (IllegalArgumentException e) {
- throw new IllegalArgumentException ("Illegal argument error creating project thumbnail");
- } catch (IOException e) {
- throw new IllegalArgumentException ("IO Error creating project thumbnail");
+ String filename = mI.getFilename();
+ if (mI instanceof MediaVideoItem) {
+ MediaMetadataRetriever retriever = new MediaMetadataRetriever();
+ retriever.setDataSource(filename);
+ Bitmap bitmap = retriever.getFrameAtTime();
+ retriever.release();
+ retriever = null;
+ if (bitmap == null) {
+ String msg = "Thumbnail extraction from " +
+ filename + " failed";
+ throw new IllegalArgumentException(msg);
+ }
+ // Resize the thumbnail to the target size
+ projectBitmap =
+ Bitmap.createScaledBitmap(bitmap, width, height, true);
+ } else {
+ try {
+ projectBitmap = mI.getThumbnail(width, height, 500);
+ } catch (IllegalArgumentException e) {
+ String msg = "Project thumbnail extraction from " +
+ filename + " failed";
+ throw new IllegalArgumentException(msg);
+ } catch (IOException e) {
+ String msg = "IO Error creating project thumbnail";
+ throw new IllegalArgumentException(msg);
+ }
}
try {