diff options
author | Doris Liu <tianliu@google.com> | 2013-08-21 00:29:10 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-08-21 00:29:11 +0000 |
commit | d7e01e25dab83af2fe093d73f8f5f705f1a27305 (patch) | |
tree | 9ac55ccd092e50ec27f2d60fcb9e0341dfa0e2de /src/com | |
parent | 2b18ecece9ad0affe9054b2818722bf727fcde97 (diff) | |
parent | 6df2d96e6a3d1f20ef04d2a29c9bb15f3002ad15 (diff) | |
download | android_packages_apps_Snap-d7e01e25dab83af2fe093d73f8f5f705f1a27305.tar.gz android_packages_apps_Snap-d7e01e25dab83af2fe093d73f8f5f705f1a27305.tar.bz2 android_packages_apps_Snap-d7e01e25dab83af2fe093d73f8f5f705f1a27305.zip |
Merge "Fix video snapshot aspect ratio" into gb-ub-photos-carlsbad
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/camera/MediaSaveService.java | 16 | ||||
-rw-r--r-- | src/com/android/camera/VideoModule.java | 4 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/com/android/camera/MediaSaveService.java b/src/com/android/camera/MediaSaveService.java index 40675b8c0..713821d50 100644 --- a/src/com/android/camera/MediaSaveService.java +++ b/src/com/android/camera/MediaSaveService.java @@ -20,6 +20,7 @@ import android.app.Service; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Intent; +import android.graphics.BitmapFactory; import android.location.Location; import android.net.Uri; import android.os.AsyncTask; @@ -100,6 +101,13 @@ public class MediaSaveService extends Service { t.execute(); } + public void addImage(final byte[] data, String title, long date, Location loc, + int orientation, ExifInterface exif, + OnMediaSavedListener l, ContentResolver resolver) { + // When dimensions are unknown, pass 0 as width and height, + // and decode image for width and height later in a background thread + addImage(data, title, date, loc, 0, 0, orientation, exif, l, resolver); + } public void addImage(final byte[] data, String title, Location loc, int width, int height, int orientation, ExifInterface exif, OnMediaSavedListener l, ContentResolver resolver) { @@ -161,6 +169,14 @@ public class MediaSaveService extends Service { @Override protected Uri doInBackground(Void... v) { + if (width == 0 || height == 0) { + // Decode bounds + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inJustDecodeBounds = true; + BitmapFactory.decodeByteArray(data, 0, data.length, options); + width = options.outWidth; + height = options.outHeight; + } return Storage.addImage( resolver, title, date, loc, orientation, exif, data, width, height); } diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java index 9f5ca08e9..e1b921d4c 100644 --- a/src/com/android/camera/VideoModule.java +++ b/src/com/android/camera/VideoModule.java @@ -2141,9 +2141,9 @@ public class VideoModule implements CameraModule, String title = CameraUtil.createJpegName(dateTaken); ExifInterface exif = Exif.getExif(data); int orientation = Exif.getOrientation(exif); - Size s = mParameters.getPictureSize(); + mActivity.getMediaSaveService().addImage( - data, title, dateTaken, loc, s.width, s.height, orientation, + data, title, dateTaken, loc, orientation, exif, mOnPhotoSavedListener, mContentResolver); } |