• Home
  • History
  • Annotate
  • only in /packages/apps/LegacyCamera/jni/feature_mos/
History log of /packages/apps/LegacyCamera/jni/feature_mos/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2a799a3a3149c59e554169da1e6e4c529621507b 26-Jan-2015 Elliott Hughes <enh@google.com> Add missing <string.h> include.

Change-Id: I985a631fcca9553e046ae63e03f1aba6f2ff812e
rc/mosaic_renderer/SurfaceTextureRenderer.cpp
8252bf716c798a1007e7869569b35815d2df3c6c 07-Nov-2011 mbansal <mayank.bansal@sri.com> Changes to resolve jagged horizontal edge and blurred vertical edge issues.

1) Made the strip width and cross-fading parameters absolute pixel values.
2) Updated the above parameters to use thinner strips with lower cross-fading radius.
3) Added another parameter to limit the number of pyramid levels at which cross-fading is applied.

Bug: 5578488
Change-Id: I69161bfbb535dc5bfcd647cfa6d6e050b6ad0068
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
0a039136e8e46ddbcb45b55e92d80ddb2ddfc2c2 03-Nov-2011 Wei-Ta Chen <weita@google.com> Fix an OOM issue in mosaic blending.

Set two limits on when we will do mosaic blending.
1) mosaic_width * mosaic_height < (5 * frame_width) * (2 * frame_height)
2) mosaic_height < 2.5 * frame_height

The latter limit rejects blending for the cases having too much movement
in the secondary direction.

Bug: 5554762
Change-Id: I05fb24bb1ff5446bea0cc1a1de8a02c37fb642d7
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
d97245f738813db9e55e5ae34b01eb7ecd4381e0 14-Oct-2011 Wei-Ta Chen <weita@google.com> Eliminating aliasing vertical lines.

Reduce the cross-fading factor to eliminate the aliasing vertical lines.
Also, fix an issues in blending: skipping cross-fading when the
cross-fading width is 0.

Bug: 5446629
Change-Id: Id5fed50824a2b93d80ad464864e4e74a656acb82
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
89b9c07b5bbcc2de25dd5f61c28de4575b4df996 08-Oct-2011 Wei-Ta Chen <weita@google.com> Avoid a possible overflow on setting the mosaic size.

Log the size of the mosaic image before cropping, so as to help debug.
Also, fix another issue that NV21 should be vertically subsmapled.

Bug: 5412447
Change-Id: I20b0ef7fc1968517c63b7f599f04c8126adc0471
rc/mosaic/Blend.cpp
rc/mosaic/ImageUtils.cpp
ff1c641693cf537703fef3949ccf15898c3ad5d0 30-Sep-2011 mbansal <mayank.bansal@sri.com> Blending updates to handle the case of mosaicing with the device in portrait mode.

1) Updated the wide-strip blending algorithm to select the strips correctly for portrait mode mosaicing.
2) Updated the cropping algorithm to crop correctly for portrait mode mosaicing.

Change-Id: I0f613367d86c8ef380e1334b13426671182ddb85
rc/mosaic/Blend.cpp
dd28e1cc00373c02adf88dff878dbbe5d8be9e59 21-Sep-2011 mbansal <mayank.bansal@sri.com> Updates to handle textureless scenes during capture.

1) Starts stitching only when the camera sees a textured scene at the beginning.
2) If a texturess scene is encountered in the middle of a capture, the stitching continues with the intermediate frames translated using the pan velocity estimate.
3) Added more error codes and percolated them up to the java layer.
4) Fix a build error in Mosaic::addFrame() and added comments.
5) Update the javadoc in Mosaic.java to reflect the new returning codes.

Change-Id: I7727ace615ece22adefe313a19ac2cbe8c8d21a8
rc/mosaic/AlignFeatures.cpp
rc/mosaic/AlignFeatures.h
rc/mosaic/Mosaic.cpp
rc/mosaic/Mosaic.h
a369cd3153170975a5e5bd6fa5544dcd6f22ee85 20-Sep-2011 mbansal <mayank.bansal@sri.com> Bug fixes to the cropping region selection algorithm.

1) The library should now return proper error code for the negative width scenario.
2) Also fixed a round-off issue which lead to improper cropping behavior for low-res output.

Bug: 5330440, 5350580
Change-Id: I010be9b8a2b1252c1d2e0528956e512126f6246a
rc/mosaic/Blend.cpp
b28b9c0fa991bc97e8aa11da83d27f71fdfef6da 19-Sep-2011 mbansal <mayank.bansal@sri.com> Blending algorithm updates to support WIDE strip-based blending.

1) Added algorithm to select wider strips (and made it the default mode in the app).
2) Added algorithm to cross-fade blend between the wider strips.

Change-Id: I744e69edb16a20f0040ee82c3390548b78853087
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
rc/mosaic/Mosaic.cpp
rc/mosaic/Mosaic.h
rc/mosaic/MosaicTypes.h
6c5b20113ba9f91352f32e5a53df66aec0ec761a 13-Sep-2011 mbansal <mayank.bansal@sri.com> Updated cropping algorithm to get rid of gray pixels around the mosaic border.

1) Added documentation to the ComputeBlendParameters(...) function.

Bug: 5279291
Change-Id: Iad1c9388ec939c2969b550ee3c194c3d191eb492
rc/mosaic/Blend.cpp
274ca49c63557a8c3ee12c8da5f75e28b4875a5d 11-Sep-2011 Wei-Ta Chen <weita@google.com> Clean up the logs.

Bug: 5277853
Change-Id: Ic1c9a0395846b6815f2c18663e3c9078781a6194
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
rc/mosaic/Log.h
rc/mosaic/Mosaic.cpp
rc/mosaic_renderer/Renderer.cpp
rc/mosaic_renderer/SurfaceTextureRenderer.cpp
rc/mosaic_renderer/WarpRenderer.cpp
rc/mosaic_renderer/YVURenderer.cpp
e1178a73fd5756771d25d0b8375452450f509e99 08-Sep-2011 mbansal <mayank.bansal@sri.com> Updates to allow cancellation of mosaic computation from a UI trigger.

1) reportProgress now takes a new boolean parameter that can be used to break out of the mosaic computation loop at the library level.
2) Added a cancel button to the progressDialog and a new Handler message to handle the button click so that the user can be taken back to the capture stage.
3) Updates to address the code review.

Change-Id: I0768da55dd6ccd9b1464d456ab41973779734c65
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
rc/mosaic/Mosaic.cpp
rc/mosaic/Mosaic.h
fa45108679c51623e716acbc3301b1e4535c3267 01-Sep-2011 Wei-Ta Chen <weita@google.com> Fix a warping bug that makes images slant.

Change-Id: Ia580bf037de698ac4a8a8e98b649f284bb1e299b
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
50f36b9eaa0e177cf220737e322576437f051da3 30-Aug-2011 Wei-Ta Chen <weita@google.com> Fix a monkey bug - a null pointer issue in native.

A monkey report shows that we try to generate a mosaic even before we
added any frame to the aligner. This is unlikely to be triggered by human
actions but machine generated sequences. To fix it, we ensure that we do
blending on frames only after we have accepted frames in aligner.

Bug: 5182097

Change-Id: I16c8efea2b1e3f5b53e65e480da169e24c939ec2
rc/mosaic/Mosaic.cpp
c73d5e20e80cf8b28017dff3b7672b8416a3a9f4 30-Aug-2011 Wei-Ta Chen <weita@google.com> Update the transform matrix from SurfaceTexture.

Bug: 5211070

Fix the issue that the transform matrix from SurfaceTexture is not set
into the shader. Also, the texture coordinates are corrected to fix the
upside down issue.

Change-Id: Ia97f590a572aff64c65b6fb94672752e1634405b
rc/mosaic_renderer/SurfaceTextureRenderer.cpp
50b3c890986aadb3780b4da8c0b8dbb0f1422eba 23-Aug-2011 mbansal <mayank.bansal@sri.com> Updates to allow the mosaic library to report the mosaic computation progress (both low-res and high-res).

1) Added a new method to the Mosaic class that reports the percent progress for both LR and HR mosaicers.
2) Added a test function to the activity that logs the reported progress.
3) [REMOVED] Added a test progress-bar to the UI for quick testing of the progress reporting UI.
4) Made minor updates in response to Wei-Ta's review.

Change-Id: Iaf8ccf771579a40580a868743a6b53c6b05f14c6
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
rc/mosaic/Mosaic.cpp
rc/mosaic/Mosaic.h
a6f0b9e759fa2d19d493bde7ffa8105ec2978b94 19-Aug-2011 mbansal <mayank.bansal@sri.com> Updates to remove compile warnings and stop the viewfinder panning at UI boundary. Also, new logic for rendering the preview mosaic.

1) Fixed compiler warnings reported by Wei-Ta.
2) The viewfinder now stops panning (for both left-to-right and right-to-left motions) when it hits a pre-defined border region within the screen viewport.
3) Updated the logic for rendering to always maintain the preview mosaic (previewFBO) in the current-frame coordinate system. This fixes the repeating issues.

Change-Id: I6619ffe96955965ba523e330fa6561c88e6e6d5c
rc/mosaic/Blend.h
rc/mosaic_renderer/SurfaceTextureRenderer.cpp
rc/mosaic_renderer/WarpRenderer.cpp
1e762b1f935c9d4a06af6dd56121590ca81d48b1 16-Aug-2011 mbansal <mayank.bansal@sri.com> Updates to allow the viewfinder to slide across the UI with device panning. Also, rendering updates for color conversion using GPU.

1) Refactored the SurfaceTextureRenderer and WarpRenderer classes to inherit from a new base class Renderer.
2) Fixed a minor bug in the Blend class and added a helper function to create the mosaic in middle frame coordinate system [no changes in run-time behavior].
3) Added a flip-flop gPreviewFBO to allow panning the viewfinder across the UI when the user pans the device.
4) Fixed the size of the viewfinder and preview mosaic to match the UI layout height.
5) The viewfinder in the preview stage is now aligned with the viewfinder in the capture stage.
6) Added new class YVURenderer that converts from RGB to YVU data using GLSL shaders.
7) Modified the rendering pipeline to use GPU for RGB to YVU conversion. The processing thread now only performs conversion from YVUA interlaced to YVU planar format.
8) Updates following Wei-Ta's code-review comments.

Change-Id: I6c18df3b57d1c2d78d55da8a8f3b9cd970c8d903
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
rc/mosaic_renderer/Renderer.cpp
rc/mosaic_renderer/Renderer.h
rc/mosaic_renderer/SurfaceTextureRenderer.cpp
rc/mosaic_renderer/SurfaceTextureRenderer.h
rc/mosaic_renderer/WarpRenderer.cpp
rc/mosaic_renderer/WarpRenderer.h
rc/mosaic_renderer/YVURenderer.cpp
rc/mosaic_renderer/YVURenderer.h
41a2e9735136f372de95652d0828600282c8e967 09-Aug-2011 mbansal <mayank.bansal@sri.com> Updates to allow using SurfaceTexture for reading the preview frames directly from GPU memory.

1) SurfaceTexture is now used to obtain the data processed by the mosaicing library.
2) SurfaceTexture in GPU memory is directly rendered using the transformation from the mosaicing library to generate the preview mosaic.
3) GPU is also used to generate the Low-Res frames from the High-res frames (was being done in CPU before).
4) SurfaceTexture is also used to render the viewfinder as soon as the mosaicing application starts (eliminating the need for a separate SurfaceHolder to render the camera).
5) Modified the XML layout during the preview state to be the same size as during the capture stage to accommodate the SurfaceTexture based viewfinder [this needs to be reviewed and adjusted].
6) Fixed the viewfinder and back button issues identified by Wei-Ta.
7) Round-1 of removing trailing spaces and tabs.
8) Added documentation to new Java side interfaces and cleaned up code in general.
9) Cleaned up redundant and commented out code from the native side.
10) Merged with latest updates from the main trunk.
11) Fixed issues identified in code review and also cleaned up and refactored some code.
12) Added layout-w1024dp/pano_capture.xml for tablet layout.

Change-Id: If8fb0116de6c7fc6652cc67ac453553726961c32
rc/mosaic/ImageUtils.cpp
rc/mosaic/ImageUtils.h
rc/mosaic_renderer/SurfaceTextureRenderer.cpp
rc/mosaic_renderer/SurfaceTextureRenderer.h
rc/mosaic_renderer/WarpRenderer.cpp
rc/mosaic_renderer/WarpRenderer.h
eeb94d4de94bfd4e01f3a716803f77a530f5b92c 02-Aug-2011 mbansal <mayank.bansal@sri.com> Updates for mosaic preview rendering to happen using native GLES2.0 code.

1) Added new subfolder mosaic_renderer in feature_mos/src with FrameBuffer and WarpRenderer classes.
2) Added mosaic_renderer_jni.h|cpp files to the jni folder to perform GL calls for rendering on the GL thread.
3) Updated code in feature_mos_jni.cpp to connect with mosaic_renderer_jni.cpp.
4) Added new java files in com.android.camera.panorama to encapsulate the GL JNI interface, a GLSurfaceView for display and a GLSurfaceView.Renderer for rendering.
5) Modified APP code to enable the new GL-based rendering and made relevant changes to the UI (in pano_views.xml).
6) Fixed a GL bug which was preventing the rendering from working properly after hitting the back button once.
7) Preview rendering now displays in the current frame coordinate system.
8) Fixed the ghost preview rendering bug.

Change-Id: Ieb64ee3fd4a9a2c6563a311a4930ddc85ce2247c
rc/mosaic_renderer/FrameBuffer.cpp
rc/mosaic_renderer/FrameBuffer.h
rc/mosaic_renderer/WarpRenderer.cpp
rc/mosaic_renderer/WarpRenderer.h
e295e32b68cf04f0d99138bf4a6d25555f3aef99 15-Jun-2011 Wei-Ta Chen <weita@google.com> Check in mosaic stitching codes - the native part

Updated to v4-3-2.

Bug: 4990566
Change-Id: I779dcc930323353964572918510f1492828c4db4
oc/Readme.txt
oc/feature_mos_API_doxyfile
rc/mosaic/AlignFeatures.cpp
rc/mosaic/AlignFeatures.h
rc/mosaic/Blend.cpp
rc/mosaic/Blend.h
rc/mosaic/CSite.h
rc/mosaic/Delaunay.cpp
rc/mosaic/Delaunay.h
rc/mosaic/EdgePointerUtil.h
rc/mosaic/Geometry.h
rc/mosaic/ImageUtils.cpp
rc/mosaic/ImageUtils.h
rc/mosaic/Interp.h
rc/mosaic/MatrixUtils.h
rc/mosaic/Mosaic.cpp
rc/mosaic/Mosaic.h
rc/mosaic/MosaicTypes.h
rc/mosaic/Pyramid.cpp
rc/mosaic/Pyramid.h
rc/mosaic/trsMatrix.cpp
rc/mosaic/trsMatrix.h