diff options
Diffstat (limited to 'src/com/android/camera/imageprocessor/PostProcessor.java')
-rw-r--r-- | src/com/android/camera/imageprocessor/PostProcessor.java | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/com/android/camera/imageprocessor/PostProcessor.java b/src/com/android/camera/imageprocessor/PostProcessor.java index 1fa908945..295707afd 100644 --- a/src/com/android/camera/imageprocessor/PostProcessor.java +++ b/src/com/android/camera/imageprocessor/PostProcessor.java @@ -51,6 +51,7 @@ import com.android.camera.MediaSaveService; import com.android.camera.PhotoModule; import com.android.camera.SettingsManager; import com.android.camera.exif.ExifInterface; +import com.android.camera.imageprocessor.filter.BestpictureFilter; import com.android.camera.imageprocessor.filter.OptizoomFilter; import com.android.camera.imageprocessor.filter.SharpshooterFilter; import com.android.camera.imageprocessor.filter.StillmoreFilter; @@ -78,8 +79,11 @@ public class PostProcessor implements ImageReader.OnImageAvailableListener{ public static final int FILTER_SHARPSHOOTER = 2; public static final int FILTER_UBIFOCUS = 3; public static final int FILTER_STILLMORE = 4; - public static final int FILTER_MAX = 5; + public static final int FILTER_BESTPICTURE = 5; + public static final int FILTER_MAX = 6; + //Max image is now Bestpicture filter with 10 + public static final int MAX_REQUIRED_IMAGE_NUM = 10; private int mCurrentNumImage = 0; private ImageFilter mFilter; private int mFilterIndex; @@ -290,6 +294,9 @@ public class PostProcessor implements ImageReader.OnImageAvailableListener{ case FILTER_STILLMORE: mFilter = new StillmoreFilter(mController); break; + case FILTER_BESTPICTURE: + mFilter = new BestpictureFilter(mController, mActivity); + break; } } @@ -440,10 +447,12 @@ public class PostProcessor implements ImageReader.OnImageAvailableListener{ } } } - //Start processing FrameProcessor filter as well - for (ImageFilter filter : mController.getFrameFilters()) { - filter.init(resultImage.width, resultImage.height, resultImage.stride, resultImage.stride); - filter.addImage(resultImage.outBuffer, null, 0, new Boolean(false)); + if(resultImage != null) { + //Start processing FrameProcessor filter as well + for (ImageFilter filter : mController.getFrameFilters()) { + filter.init(resultImage.width, resultImage.height, resultImage.stride, resultImage.stride); + filter.addImage(resultImage.outBuffer, null, 0, new Boolean(false)); + } } //End processing FrameProessor filter clear(); @@ -451,10 +460,11 @@ public class PostProcessor implements ImageReader.OnImageAvailableListener{ if(mWatchdog != null) { mWatchdog.stopMonitor(); } - if((resultImage.outRoi.left + resultImage.outRoi.width() > resultImage.width) || + if(resultImage == null || + (resultImage.outRoi.left + resultImage.outRoi.width() > resultImage.width) || (resultImage.outRoi.top + resultImage.outRoi.height() > resultImage.height) ) { - Log.e(TAG, "Processed outRoi is not within picture range"); + Log.d(TAG, "Result image is not valid."); } else { if(mFilter != null && DEBUG_FILTER) { bytes = nv21ToJpeg(mDebugResultImage, mOrientation); |