[TIMOB-14137] Android: camera returns low resolution image using overlay
| GitHub Issue | n/a |
|---|---|
| Type | Bug |
| Priority | Critical |
| Status | Closed |
| Resolution | Fixed |
| Resolution Date | 2014-05-28T16:06:10.000+0000 |
| Affected Version/s | n/a |
| Fix Version/s | 2013 Sprint 23, 2013 Sprint 23 API, Release 3.2.0 |
| Components | Android |
| Labels | SupportTeam, regression |
| Reporter | Stephane Menard |
| Assignee | Pedro Enrique |
| Created | 2012-11-26T19:30:33.000+0000 |
| Updated | 2014-05-28T16:07:23.000+0000 |
Description
The image returns by the camera is a low res image instead of the full size image on some devices when using an overlay.
The galaxy nexus (4.1) returns an image of 320x240
The ZTE N860 (2.3.5) returns an image of 640x480
Samsung Galaxy S1 (2.3.3) is returning a full size image (2592x1944)
Here is the code sample from bug TIMOB-8151 adapted to display image size.
Ti.UI.setBackgroundColor('#ffffff');
var homeWindow = Titanium.UI.createWindow
({
});
homeWindow.open();
var displayVoucherOverlayView = Ti.UI.createView
({
top: 0,
bottom: 0,
left: 0,
right: 0,
opacity: 0.75
});
var setAButton = Ti.UI.createButton
({
top: 100,
left: 30,
right: 30,
height: 75,
title: "Click here to take a picture"
});
displayVoucherOverlayView.add(setAButton);
setAButton.addEventListener('click', function() { Ti.Media.takePicture(); }
);
var navigationBar = Ti.UI.createView
({
bottom: 0,
height: 50,
right: 0,
backgroundColor: "#000000",
opacity: 0.75
});
var navBarTestBtn = Ti.UI.createView
({
left: 5,
width: 90,
height: 50,
top: 0,
backgroundColor: "#000000",
borderColor: "#FFFFFF",
borderWidth: 2
});
var navBarTestBtnText = Ti.UI.createLabel
({
width: 90,
text: "TEST",
color: "#FFFFFF",
textAlign: 'center',
font: {fontSize: 10}
});
navBarTestBtn.add(navBarTestBtnText);
navigationBar.add(navBarTestBtn);
navBarTestBtn.addEventListener('click', function() {alert("IM A VIEW WITH A LISTENER");} );
displayVoucherOverlayView.add(navigationBar);
var cameraTransform = Ti.UI.create2DMatrix();
cameraTransform = cameraTransform.scale(2);
Ti.Media.showCamera
({
success: function(event) {
Ti.API.info("Image dimension: " + event.media.width + "x" + event.media.height);
alert("Image dimension: " + event.media.width + "x" + event.media.height);
},
cancel: function() {},
error: function(error)
{
if (error.code == Ti.Media.NO_CAMERA)
{
alert("NO CAMERA");
}
else
{
alert("CAMERA ERROR");
}
},
mediaTypes: [Ti.Media.MEDIA_TYPE_VIDEO,Ti.Media.MEDIA_TYPE_PHOTO],
showControls: false,
autohide: false,
transform: cameraTransform,
overlay: displayVoucherOverlayView
});
Please format the code or use http://pastie.org. What do you get with event.rect ?
Pedro, I have this issue and have a use case and am willing to work with you on the issue. To answer your question about event rect, here is event.cropRect:
{ "height" : 240, "width" : 320, "x" : 0, "y" : 0 }Camera Success Event
{ "code" : 0, "cropRect" : { "height" : 240, "width" : 320, "x" : 0, "y" : 0 }, "height" : 240, "media" : { "bubbleParent" : true, "file" : null, "height" : 240, "length" : 191816, "nativePath" : null, "text" : "����'�Exif\u0000\u0000MM...", "type" : 2 }, "width" : 320 }Use Case
var win = Titanium.UI.createWindow({ layout : "vertical" }); var resultsLabel = Ti.UI.createLabel({ text : "Take a photo with and without overlay to see the different outcomes", height : Ti.UI.SIZE, width : Ti.UI.SIZE, font : { fontSize : "15dp" } }); var showCameraWithOverlay = Ti.UI.createButton({ title : "Show Camera With Overlay" }); showCameraWithOverlay.addEventListener("click", function() { showCamera(true); }); var showCameraWithoutOverlay = Ti.UI.createButton({ title : "Show Camera Without Overlay" }); showCameraWithoutOverlay.addEventListener("click", function() { showCamera(false); }); win.add(showCameraWithOverlay); win.add(showCameraWithoutOverlay); win.add(resultsLabel); win.open(); function showCamera(useOverlay) { var options = { success : function(e) { var results = "Overlay Used: " + useOverlay + "\n Height: " + e.media.height + "\nWidth: " + e.media.width; resultsLabel.text = results; Ti.API.debug("=============================Results: " + results); Ti.API.debug("=============================Event: " + JSON.stringify(e)); }, mediaTypes : [Ti.Media.MEDIA_TYPE_PHOTO] }; if (useOverlay) { options.showControls = false; options.overlay = createOverlay(); autohide = false; } Titanium.Media.showCamera(options); } function createOverlay() { var overlayView = Ti.UI.createView(); var captureView = Ti.UI.createButton({ title : "Capture", bottom : 20 }); captureView.addEventListener("click", function() { Titanium.Media.takePicture(); }); overlayView.add(captureView); return overlayView; }nexus 4 output using SDK 3.1.1.v20130604110432
overlay used, height:480, width: 640Any update on this issue? It makes it impossible to have a customized camera-based app on Android, which is currently a very popular style of app. BTW, I'm still seeing this on 3.2.0.v20130614230533.
Titanium SDK version: 3.1.2 (08/06/13 10:45 78d4077) = 3.1.2 RC2 Nexus 4, Android 4.3
overlay used: true - height: 480 width: 640 without overlay: 3264 x 244808-12 20:37:01.656: I/ActivityManager(556): START u0 {cmp=com.m.t/ti.modules.titanium.media.TiCameraActivity} from pid 9856 08-12 20:37:01.706: I/AwesomePlayer(174): setDataSource_l(URL suppressed) 08-12 20:37:01.756: I/AwesomePlayer(174): setDataSource_l(URL suppressed) 08-12 20:37:01.806: I/CameraClient(174): Opening camera 0 08-12 20:37:01.866: E/qcom_sensors_hal(556): hal_process_report_ind: Bad item quality: 11 08-12 20:37:01.876: E/mm-camera(207): sensor_load_chromatix: libchromatix_imx111_preview.so: 30 08-12 20:37:01.986: E/mm-camera(207): vfe_ops_init: E 08-12 20:37:01.986: E/mm-camera(207): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM 08-12 20:37:01.986: E/mm-camera(207): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM 08-12 20:37:01.996: E/mm-camera(207): mctl_init_stats_proc_info: snap_max_line_cnt =30096 08-12 20:37:02.056: V/PhoneStatusBar(790): setLightsOn(true) 08-12 20:37:02.096: E/QCameraHWI(174): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0xb82efaf8, mStreamDisplay = 0x0xb8334810 08-12 20:37:02.096: D/QCameraHWI(174): android::status_t android::QCameraHardwareInterface::startPreview(): start preview now 08-12 20:37:02.096: I/QCameraHWI(174): android::status_t android::QCameraHardwareInterface::startPreview2():Setting ZSL mode 08-12 20:37:02.096: E/mm-camera(207): config_proc_CAMERA_SET_INFORM_STARTPREVIEW 08-12 20:37:02.096: E/mm-camera(207): config_proc_CAMERA_SET_INFORM_STARTPREVIEW : AF_SET_INFORM_STARTPREVIEW! 08-12 20:37:02.096: E/mm-camera(207): config_update_stream_info Storing stream parameters for video inst 1 as : width = 1280, height 720, format = 1 inst_handle = 810081 cid = 0 08-12 20:37:02.116: E/mm-camera(207): config_update_stream_info Storing stream parameters for video inst 3 as : width = 640, height 480, format = 1 inst_handle = 830083 cid = 0 08-12 20:37:02.116: E/mm-camera(207): config_update_stream_info Storing stream parameters for video inst 4 as : width = 512, height 384, format = 1 inst_handle = 840084 cid = 0 08-12 20:37:02.126: E/mm-camera(207): config_decide_vfe_outputs: Ports Used 3, Op mode 1 08-12 20:37:02.126: E/mm-camera(207): config_decide_vfe_outputs Current mode 0 Full size streaming : Disabled 08-12 20:37:02.126: E/mm-camera(207): config_decide_vfe_outputs: Primary: 1280x720, extra_pad: 0x0, Fmt: 1, Type: 1, Path: 1 08-12 20:37:02.126: E/mm-camera(207): config_decide_vfe_outputs: Secondary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 3, Path: 4 08-12 20:37:02.126: E/mm-camera(207): config_update_inst_handles Updated the inst handles as 810081, 830083, 0, 0 08-12 20:37:02.256: E/mm-camera(207): sensor_load_chromatix: libchromatix_imx111_zsl.so: 26 08-12 20:37:02.346: E/mm-camera(207): camif_client_set_params: camif has associated with obj mask 0x1 08-12 20:37:02.346: E/mm-camera(207): config_v2_CAMERA_START_common CAMIF_PARAMS_ADD_OBJ_ID failed -1 08-12 20:37:02.346: E/mm-camera(207): vfe_operation_config: format 3 08-12 20:37:02.346: E/mm-camera(207): vfe_operation_config:vfe_op_mode=5 08-12 20:37:02.346: E/mm-camera(207): Invalid ASD Set Params Type 08-12 20:37:02.346: E/mm-camera(207): vfe_set_bestshot: Bestshot mode not changed 08-12 20:37:02.406: E/mm-libcamera2(174): PROFILE HAL: First preview frame received: 1376332622.424528476 08-12 20:37:02.406: E/QCameraHWI_Preview(174): processPreviewFrameWithDisplay: buffer to be enqueued is not locked 08-12 20:37:02.447: I/ActivityManager(556): Displayed com.m.t/ti.modules.titanium.media.TiCameraActivity: +760ms 08-12 20:37:02.497: E/QCameraHWI_Preview(174): processPreviewFrameWithDisplay: buffer to be enqueued is not locked 08-12 20:37:04.138: E/mm-camera(207): PROFILE set_parm_AF: : 1376332624.150638654 08-12 20:37:04.138: E/mm-camera(207): af_lg_caf_status 1, af_lg_caf_fv_status 1, first_af 0 08-12 20:37:05.079: E/mm-camera(207): config_proc_CAMERA_SET_LG_CAF_LOCK : TAKE PICTURE! 08-12 20:37:05.159: E/mm-libcamera2(174): mm_camera_dispatch_buffered_frames: mframe 0x0, sframe = 0x0 08-12 20:37:05.229: D/morpho_NoiseReduction_Version(174): = Morpho Denoiser for LGE mako Ver.1.0.3 2012/10/23 08-12 20:37:05.229: D/morpho_NoiseReduction_getBufferSize =(174): 195292 08-12 20:37:05.229: D/morpho_NoiseReduction_getBufferSize buffer malloc =(174): b8348798 08-12 20:37:05.229: D/morpho_NoiseReduction_initialize(174): EngineVersion= Morpho Denoiser for LGE mako Ver.1.0.3 2012/10/23 08-12 20:37:05.229: D/Version info :(174): Morpho Denoiser for LGE mako Ver.1.0.3 2012/10/23 08-12 20:37:05.229: D/morpho_NoiseReduction_initialize ret =(174): 0 08-12 20:37:05.229: D/morpho_NoiseReduction_initialize IMAGE_FORMAT =(174): YVU420_SEMIPLANAR 08-12 20:37:05.229: D/morpho_NoiseReduction_setLumaNoiseReductionLevel y_level for LGE =(174): 0 08-12 20:37:05.229: D/morpho_NoiseReduction_setChromaNoiseReductionLevel c_level =(174): 1 08-12 20:37:05.229: D/morpho_NoiseReduction_setRemoveSpikeNoise SpikeNoise =(174): 1 08-12 20:37:05.229: D/morpho_NoiseReduction allocateImage c_level =(174): 0 08-12 20:37:05.229: D/morpho_NoiseReduction_start ret =(174): 0 08-12 20:37:05.290: D/morpho_NoiseReduction_reduceNoise ret =(174): 0 08-12 20:37:05.290: D/morpho_NoiseReduction_finalize ret =(174): 0 08-12 20:37:05.300: W/CameraClient(174): lockIfMessageWanted(2): dropped unwanted message 08-12 20:37:05.300: E/mm-camera-DENOISE(207): wavelet_denoise_process: Wavelet Denoise Success 08-12 20:37:05.310: E/mm-camera-DENOISE(207): wavelet_denoise_process: Wavelet Denoise Success 08-12 20:37:05.330: W/TiBlob(9856): (KrollRuntimeThread) [26056,57268] getNativePath not supported for non-file blob types. 08-12 20:37:05.330: W/TiBlob(9856): (KrollRuntimeThread) [1,57269] getFile not supported for non-file blob types. 08-12 20:37:05.370: D/dalvikvm(9856): GC_CONCURRENT freed 1529K, 15% free 12854K/15084K, paused 2ms+3ms, total 24ms 08-12 20:37:05.450: D/dalvikvm(556): GC_FOR_ALLOC freed 8607K, 29% free 31846K/44396K, paused 102ms, total 102ms 08-12 20:37:05.500: E/mm-libcamera2(174): PROFILE HAL: stopPreview(): E: 1376332625.513770046 08-12 20:37:05.500: E/mm-camera(207): config_MSG_ID_STOP_ACK: streamon_mask is not clear. Should not call PP_Release_HW 08-12 20:37:05.510: V/PhoneStatusBar(790): setLightsOn(true) 08-12 20:37:05.510: E/mm-libcamera2(174): PROFILE HAL: stopPreview(): E: 1376332625.524055411 08-12 20:37:05.510: E/QCameraHWI(174): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*):Received Setting NULL preview window 08-12 20:37:05.510: E/QCameraHWI(174): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0x0, mStreamDisplay = 0x0xb8334810 08-12 20:37:05.510: W/QCameraHWI_Preview(174): Setting NULL preview window 08-12 20:37:05.510: I/CameraClient(174): Destroying camera 0 08-12 20:37:05.520: E/mm-camera(207): config_shutdown_pp Camera not in streaming mode. Returning. 08-12 20:37:05.520: E/mm-camera(207): vfe_ops_deinit: E 08-12 20:37:05.550: E/qcom_sensors_hal(556): hal_process_report_ind: Bad item quality: 11 08-12 20:37:05.560: D/dalvikvm(556): GC_CONCURRENT freed 822K, 29% free 31769K/44396K, paused 5ms+7ms, total 101ms 08-12 20:37:05.590: W/AudioFlinger(174): session id 449 not found for pid 174 08-12 20:37:05.600: W/AudioFlinger(174): session id 450 not found for pid 174 08-12 20:37:05.620: I/TiRootActivity(9856): (main) [0,0] checkpoint, on root activity resume. activity = com.m.t.tActivity@41ea6680 08-12 20:37:06.861: I/ActivityManager(556): Config changes=1480 {1.0 262mcc2mnc de_DE ldltr sw384dp w598dp h359dp 320dpi nrml land finger -keyb/v/h -nav/h s.308} 08-12 20:37:06.861: I/InputReader(556): Reconfiguring input devices. changes=0x00000004 08-12 20:37:06.861: I/InputReader(556): Device reconfigured: id=6, name='touch_dev', size 768x1280, orientation 1, mode 1, display id 0 08-12 20:37:06.901: D/dalvikvm(9856): GC_FOR_ALLOC freed 392K, 18% free 12502K/15084K, paused 26ms, total 26ms 08-12 20:37:06.921: I/dalvikvm-heap(9856): Grow heap (frag case) to 13.696MB for 1536016-byte allocation 08-12 20:37:06.941: D/dalvikvm(9856): GC_FOR_ALLOC freed 105K, 17% free 13897K/16588K, paused 15ms, total 15ms 08-12 20:37:06.961: D/dalvikvm(9856): GC_CONCURRENT freed 7K, 17% free 13890K/16588K, paused 2ms+1ms, total 15ms 08-12 20:37:06.981: D/dalvikvm(6781): GC_CONCURRENT freed 314K, 4% free 9003K/9344K, paused 13ms+1ms, total 45ms 08-12 20:37:06.981: I/ActivityManager(556): Start proc com.android.providers.calendar for content provider com.android.providers.calendar/.CalendarProvider2: pid=10288 uid=10007 gids={50007, 3003, 1015, 1028} 08-12 20:37:06.991: D/PhoneStatusBar(790): mSettingsPanelGravity = 55 08-12 20:37:07.011: D/dalvikvm(9856): GC_FOR_ALLOC freed <1K, 17% free 13890K/16588K, paused 13ms, total 13ms 08-12 20:37:07.011: I/dalvikvm-heap(9856): Grow heap (frag case) to 16.191MB for 2731536-byte allocation 08-12 20:37:07.031: D/dalvikvm(9856): GC_FOR_ALLOC freed 0K, 15% free 16558K/19256K, paused 15ms, total 15ms 08-12 20:37:07.051: D/dalvikvm(9856): GC_CONCURRENT freed 0K, 15% free 16558K/19256K, paused 2ms+4ms, total 24msError still occurs with 3.1.3 Also the e.media.nativePath is null when using an overlay.
here a test with 3.2.0.v20131018154951
overlay used: true - height: 480 width: 640 without overlay: 3264 x 244810-19 10:54:09.088: I/CameraClient(176): Opening camera 0 10-19 10:54:09.158: E/mm-camera(205): sensor_load_chromatix: libchromatix_imx111_preview.so: 30 10-19 10:54:09.158: E/qcom_sensors_hal(529): hal_process_report_ind: Bad item quality: 11 10-19 10:54:09.269: E/mm-camera(205): vfe_ops_init: E 10-19 10:54:09.269: E/mm-camera(205): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM 10-19 10:54:09.269: E/mm-camera(205): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM 10-19 10:54:09.279: E/mm-camera(205): mctl_init_stats_proc_info: snap_max_line_cnt =30096 10-19 10:54:09.309: V/PhoneStatusBar(662): setLightsOn(true) 10-19 10:54:09.359: E/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0xb87b01c0, mStreamDisplay = 0x0xb8813260 10-19 10:54:09.359: D/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::startPreview(): start preview now 10-19 10:54:09.359: I/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::startPreview2():Setting ZSL mode 10-19 10:54:09.359: E/mm-camera(205): config_proc_CAMERA_SET_INFORM_STARTPREVIEW 10-19 10:54:09.359: E/mm-camera(205): config_proc_CAMERA_SET_INFORM_STARTPREVIEW : AF_SET_INFORM_STARTPREVIEW! 10-19 10:54:09.359: E/mm-camera(205): config_update_stream_info Storing stream parameters for video inst 1 as : width = 1280, height 720, format = 1 inst_handle = 810081 cid = 0 10-19 10:54:09.399: E/mm-camera(205): config_update_stream_info Storing stream parameters for video inst 3 as : width = 640, height 480, format = 1 inst_handle = 830083 cid = 0 10-19 10:54:09.399: E/mm-camera(205): config_update_stream_info Storing stream parameters for video inst 4 as : width = 512, height 384, format = 1 inst_handle = 840084 cid = 0 10-19 10:54:09.409: E/mm-camera(205): config_decide_vfe_outputs: Ports Used 3, Op mode 1 10-19 10:54:09.409: E/mm-camera(205): config_decide_vfe_outputs Current mode 0 Full size streaming : Disabled 10-19 10:54:09.409: E/mm-camera(205): config_decide_vfe_outputs: Primary: 1280x720, extra_pad: 0x0, Fmt: 1, Type: 1, Path: 1 10-19 10:54:09.409: E/mm-camera(205): config_decide_vfe_outputs: Secondary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 3, Path: 4 10-19 10:54:09.409: E/mm-camera(205): config_update_inst_handles Updated the inst handles as 810081, 830083, 0, 0 10-19 10:54:09.549: E/mm-camera(205): sensor_load_chromatix: libchromatix_imx111_zsl.so: 26 10-19 10:54:09.639: E/mm-camera(205): camif_client_set_params: camif has associated with obj mask 0x1 10-19 10:54:09.639: E/mm-camera(205): config_v2_CAMERA_START_common CAMIF_PARAMS_ADD_OBJ_ID failed -1 10-19 10:54:09.639: E/mm-camera(205): vfe_operation_config: format 3 10-19 10:54:09.639: E/mm-camera(205): vfe_operation_config:vfe_op_mode=5 10-19 10:54:09.639: E/mm-camera(205): Invalid ASD Set Params Type 10-19 10:54:09.639: E/mm-camera(205): vfe_set_bestshot: Bestshot mode not changed 10-19 10:54:09.699: E/mm-libcamera2(176): PROFILE HAL: First preview frame received: 1382172849.712273160 10-19 10:54:09.699: E/QCameraHWI_Preview(176): processPreviewFrameWithDisplay: buffer to be enqueued is not locked 10-19 10:54:09.739: I/ActivityManager(529): Displayed com.m.test2/ti.modules.titanium.media.TiCameraActivity: +732ms 10-19 10:54:09.789: E/QCameraHWI_Preview(176): processPreviewFrameWithDisplay: buffer to be enqueued is not locked 10-19 10:54:15.545: E/mm-camera(205): PROFILE set_parm_AF: : 1382172855.559274534 10-19 10:54:15.545: E/mm-camera(205): af_lg_caf_status 1, af_lg_caf_fv_status 1, first_af 0 10-19 10:54:16.196: E/mm-camera(205): config_proc_CAMERA_SET_LG_CAF_LOCK : TAKE PICTURE! 10-19 10:54:16.276: E/mm-libcamera2(176): mm_camera_dispatch_buffered_frames: mframe 0x0, sframe = 0x0 10-19 10:54:16.306: E/mm-camera-DENOISE(205): wavelet_denoise_process: Wavelet Denoise Success 10-19 10:54:16.316: D/audio_hw_primary(176): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2 10-19 10:54:16.316: D/audio_hw_primary(176): out_set_parameters: exit: code(1) 10-19 10:54:16.326: E/mm-camera-DENOISE(205): wavelet_denoise_process: Wavelet Denoise Success 10-19 10:54:16.326: D/audio_hw_primary(176): start_output_stream: enter: usecase(1: low-latency-playback) devices(0x2) 10-19 10:54:16.326: D/audio_hw_primary(176): select_devices: out_snd_device(2: speaker) in_snd_device(0: none) 10-19 10:54:16.326: D/audio_hw_primary(176): enable_snd_device: sending audio calibration for snd_device(2) acdb_id(14) 10-19 10:54:16.326: D/ACDB-LOADER(176): ACDB -> send_afe_cal 10-19 10:54:16.326: D/audio_hw_primary(176): enable_snd_device: snd_device(2: speaker) 10-19 10:54:16.336: D/audio_hw_primary(176): enable_audio_route: apply mixer path: low-latency-playback 10-19 10:54:16.336: D/audio_hw_primary(176): start_output_stream: exit 10-19 10:54:16.376: W/TiBlob(28132): (KrollRuntimeThread) [13947,13947] getNativePath not supported for non-file blob types. 10-19 10:54:16.376: W/TiBlob(28132): (KrollRuntimeThread) [0,13947] getFile not supported for non-file blob types. 10-19 10:54:16.396: D/dalvikvm(28132): GC_CONCURRENT freed 2033K, 14% free 12909K/14980K, paused 2ms+3ms, total 28ms 10-19 10:54:16.396: D/dalvikvm(28132): WAIT_FOR_CONCURRENT_GC blocked 18ms 10-19 10:54:16.426: E/mm-libcamera2(176): PROFILE HAL: stopPreview(): E: 1382172856.444029608 10-19 10:54:16.426: E/mm-camera(205): config_MSG_ID_STOP_ACK: streamon_mask is not clear. Should not call PP_Release_HW 10-19 10:54:16.436: V/PhoneStatusBar(662): setLightsOn(true) 10-19 10:54:16.436: E/mm-libcamera2(176): PROFILE HAL: stopPreview(): E: 1382172856.452727914 10-19 10:54:16.436: E/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*):Received Setting NULL preview window 10-19 10:54:16.436: E/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0x0, mStreamDisplay = 0x0xb8813260 10-19 10:54:16.436: W/QCameraHWI_Preview(176): Setting NULL preview window 10-19 10:54:16.446: I/CameraClient(176): Destroying camera 0 10-19 10:54:16.446: E/mm-camera(205): config_shutdown_pp Camera not in streaming mode. Returning. 10-19 10:54:16.446: E/mm-camera(205): vfe_ops_deinit: E 10-19 10:54:16.466: E/qcom_sensors_hal(529): hal_process_report_ind: Bad item quality: 11 10-19 10:54:16.516: W/AudioFlinger(176): session id 147 not found for pid 176 10-19 10:54:16.516: W/AudioFlinger(176): session id 148 not found for pid 176 10-19 10:54:18.979: I/AwesomePlayer(176): setDataSource_l(URL suppressed) 10-19 10:54:19.029: I/AwesomePlayer(176): setDataSource_l(URL suppressed) 10-19 10:54:19.079: I/CameraClient(176): Opening camera 0 10-19 10:54:19.149: E/qcom_sensors_hal(529): hal_process_report_ind: Bad item quality: 11 10-19 10:54:19.149: E/mm-camera(205): sensor_load_chromatix: libchromatix_imx111_preview.so: 30 10-19 10:54:19.259: E/mm-camera(205): vfe_ops_init: E 10-19 10:54:19.259: E/mm-camera(205): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM 10-19 10:54:19.259: E/mm-camera(205): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM 10-19 10:54:19.269: E/mm-camera(205): mctl_init_stats_proc_info: snap_max_line_cnt =30096 10-19 10:54:19.279: E/mm-libcamera2(176): PROFILE HAL: stopPreview(): E: 1382172859.290176410 10-19 10:54:19.279: I/CameraClient(176): Destroying camera 0 10-19 10:54:19.279: E/mm-camera(205): config_shutdown_pp Camera not in streaming mode. Returning. 10-19 10:54:19.279: E/mm-camera(205): vfe_ops_deinit: E 10-19 10:54:19.299: W/AudioFlinger(176): session id 149 not found for pid 176 10-19 10:54:19.299: W/AudioFlinger(176): session id 150 not found for pid 176 10-19 10:54:19.299: I/ActivityManager(529): START u0 {act=android.media.action.IMAGE_CAPTURE cat=[android.intent.category.DEFAULT] cmp=com.google.android.gallery3d/com.android.camera.CameraActivity (has extras)} from pid 28132 10-19 10:54:19.329: E/qcom_sensors_hal(529): hal_process_report_ind: Bad item quality: 11 10-19 10:54:19.429: V/StateManager(25782): startState class com.android.gallery3d.app.FilmstripPage 10-19 10:54:19.449: V/CameraHolder(25782): open camera 0 10-19 10:54:19.449: I/AwesomePlayer(176): setDataSource_l(URL suppressed) 10-19 10:54:19.530: D/audio_hw_primary(176): out_standby: enter: usecase(1: low-latency-playback) 10-19 10:54:19.540: I/AwesomePlayer(176): setDataSource_l(URL suppressed) 10-19 10:54:19.570: D/audio_hw_primary(176): stop_output_stream: enter: usecase(1: low-latency-playback) 10-19 10:54:19.570: D/audio_hw_primary(176): disable_audio_route: reset mixer path: low-latency-playback 10-19 10:54:19.570: D/audio_hw_primary(176): disable_snd_device: snd_device(2: speaker) 10-19 10:54:19.580: D/audio_hw_primary(176): stop_output_stream: exit: status(0) 10-19 10:54:19.580: D/audio_hw_primary(176): out_standby: exit 10-19 10:54:19.580: I/CameraClient(176): Opening camera 0 10-19 10:54:19.590: D/CameraStorage(25782): External storage state=mounted 10-19 10:54:19.630: D/CAM_PhotoModule(25782): Preview size changed. 10-19 10:54:19.630: I/CAM_ScreenNail(25782): preview layout size: 768/1184 10-19 10:54:19.630: I/CAM_ScreenNail(25782): aspect ratio clamping disabled 10-19 10:54:19.650: E/qcom_sensors_hal(529): hal_process_report_ind: Bad item quality: 11 10-19 10:54:19.660: I/GLRootView(25782): onSurfaceChanged: 768x1184, gl10: com.google.android.gles_jni.GLImpl@420a4038 10-19 10:54:19.660: I/GLRootView(25782): layout content pane 768x1184 (compensation 0) 10-19 10:54:19.660: E/mm-camera(205): sensor_load_chromatix: libchromatix_imx111_preview.so: 30 10-19 10:54:19.660: D/PhotoView(25782): compensation = 0, CameraRelativeFrame = Rect(0, 0 - 0, 0), mCameraRect = Rect(0, 0 - 0, 0) 10-19 10:54:19.690: D/dalvikvm(25782): GC_FOR_ALLOC freed 5899K, 70% free 11727K/38876K, paused 24ms, total 24ms 10-19 10:54:19.690: I/dalvikvm-heap(25782): Grow heap (frag case) to 12.622MB for 1127536-byte allocation 10-19 10:54:19.700: I/ActivityManager(529): Displayed com.google.android.gallery3d/com.android.camera.CameraActivity: +375ms 10-19 10:54:19.710: D/dalvikvm(25782): GC_CONCURRENT freed 3K, 68% free 12824K/38876K, paused 3ms+3ms, total 24ms 10-19 10:54:19.710: D/dalvikvm(25782): WAIT_FOR_CONCURRENT_GC blocked 20ms 10-19 10:54:19.710: D/dalvikvm(25782): WAIT_FOR_CONCURRENT_GC blocked 20ms 10-19 10:54:19.710: D/dalvikvm(25782): WAIT_FOR_CONCURRENT_GC blocked 20ms 10-19 10:54:19.750: D/dalvikvm(25782): GC_CONCURRENT freed 47K, 64% free 14087K/38876K, paused 3ms+3ms, total 25ms 10-19 10:54:19.750: D/dalvikvm(25782): WAIT_FOR_CONCURRENT_GC blocked 18ms 10-19 10:54:19.760: E/mm-camera(205): vfe_ops_init: E 10-19 10:54:19.770: E/mm-camera(205): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM 10-19 10:54:19.770: E/mm-camera(205): vfe_legacy_stats_buffer_init: AEC_STATS_BUFNUM 10-19 10:54:19.770: E/mm-camera(205): mctl_init_stats_proc_info: snap_max_line_cnt =30096 10-19 10:54:19.780: D/dalvikvm(25782): GC_FOR_ALLOC freed 2K, 61% free 15284K/38876K, paused 21ms, total 21ms 10-19 10:54:19.800: V/CAM_PhotoModule(25782): Preview size is 640x480 10-19 10:54:19.810: V/CAM_PhotoModule(25782): Preview size is 640x480 10-19 10:54:19.820: I/CAM_ScreenNail(25782): aspect ratio clamping disabled 10-19 10:54:19.820: I/CAM_ScreenNail(25782): aspect ratio clamping enabled, surfaceTexture scale: 0.8648649, 1.0 10-19 10:54:19.820: I/GLRootView(25782): layout content pane 768x1184 (compensation 0) 10-19 10:54:19.820: D/PhotoView(25782): compensation = 0, CameraRelativeFrame = Rect(0, 0 - 0, 0), mCameraRect = Rect(0, 0 - 0, 0) 10-19 10:54:19.830: I/CAM_ScreenNail(25782): preview layout size: 768/1184 10-19 10:54:19.830: I/CAM_ScreenNail(25782): aspect ratio clamping enabled, surfaceTexture scale: 0.8648649, 1.0 10-19 10:54:19.900: V/CAM_PhotoModule(25782): startPreview 10-19 10:54:19.900: E/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0xb87c2c98, mStreamDisplay = 0x0xb8877d20 10-19 10:54:19.900: D/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::startPreview(): start preview now 10-19 10:54:19.900: I/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::startPreview2():Setting ZSL mode 10-19 10:54:19.900: E/mm-camera(205): config_proc_CAMERA_SET_INFORM_STARTPREVIEW 10-19 10:54:19.900: E/mm-camera(205): config_proc_CAMERA_SET_INFORM_STARTPREVIEW : AF_SET_INFORM_STARTPREVIEW! 10-19 10:54:19.900: E/mm-camera(205): config_update_stream_info Storing stream parameters for video inst 1 as : width = 640, height 480, format = 1 inst_handle = 810081 cid = 0 10-19 10:54:19.920: E/mm-camera(205): config_update_stream_info Storing stream parameters for video inst 3 as : width = 3264, height 2448, format = 1 inst_handle = 830083 cid = 0 10-19 10:54:19.920: E/mm-camera(205): config_update_stream_info Storing stream parameters for video inst 4 as : width = 512, height 384, format = 1 inst_handle = 840084 cid = 0 10-19 10:54:20.160: E/mm-camera(205): config_decide_vfe_outputs: Ports Used 3, Op mode 1 10-19 10:54:20.160: E/mm-camera(205): config_decide_vfe_outputs Current mode 0 Full size streaming : Disabled 10-19 10:54:20.160: E/mm-camera(205): config_decide_vfe_outputs: Primary: 3264x2448, extra_pad: 0x0, Fmt: 1, Type: 3, Path: 4 10-19 10:54:20.160: E/mm-camera(205): config_decide_vfe_outputs: Secondary: 640x480, extra_pad: 0x0, Fmt: 1, Type: 1, Path: 1 10-19 10:54:20.160: E/mm-camera(205): config_update_inst_handles Updated the inst handles as 830083, 810081, 0, 0 10-19 10:54:20.300: E/mm-camera(205): sensor_load_chromatix: libchromatix_imx111_zsl.so: 26 10-19 10:54:20.390: E/mm-camera(205): camif_client_set_params: camif has associated with obj mask 0x1 10-19 10:54:20.390: E/mm-camera(205): config_v2_CAMERA_START_common CAMIF_PARAMS_ADD_OBJ_ID failed -1 10-19 10:54:20.390: E/mm-camera(205): vfe_operation_config: format 3 10-19 10:54:20.390: E/mm-camera(205): vfe_operation_config:vfe_op_mode=5 10-19 10:54:20.390: E/mm-camera(205): Invalid ASD Set Params Type 10-19 10:54:20.390: E/mm-camera(205): vfe_set_bestshot: Bestshot mode not changed 10-19 10:54:20.460: E/mm-libcamera2(176): PROFILE HAL: First preview frame received: 1382172860.468903710 10-19 10:54:20.460: E/QCameraHWI_Preview(176): processPreviewFrameWithDisplay: buffer to be enqueued is not locked 10-19 10:54:20.501: E/QCameraHWI_Preview(176): processPreviewFrameWithDisplay: buffer to be enqueued is not locked 10-19 10:54:21.101: V/CAM_FocusManager(25782): Start autofocus. 10-19 10:54:21.101: E/mm-camera(205): PROFILE set_parm_AF: : 1382172861.107725624 10-19 10:54:21.101: E/mm-camera(205): af_lg_caf_status 1, af_lg_caf_fv_status 1, first_af 0 10-19 10:54:21.241: V/CAM_PhotoModule(25782): onShutterButtonClick: mCameraState=2 10-19 10:54:22.042: V/CAM_PhotoModule(25782): mAutoFocusTime = 942ms 10-19 10:54:22.102: E/mm-camera(205): config_proc_CAMERA_SET_LG_CAF_LOCK : TAKE PICTURE! 10-19 10:54:22.122: D/dalvikvm(25782): GC_CONCURRENT freed 420K, 57% free 16950K/38876K, paused 3ms+11ms, total 77ms 10-19 10:54:22.182: E/mm-libcamera2(176): mm_camera_dispatch_buffered_frames: mframe 0x0, sframe = 0x0 10-19 10:54:22.262: D/audio_hw_primary(176): out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2 10-19 10:54:22.262: D/audio_hw_primary(176): out_set_parameters: exit: code(1) 10-19 10:54:22.262: V/CAM_PhotoModule(25782): mShutterLag = 218ms 10-19 10:54:22.262: V/CAM_PhotoModule(25782): mShutterToRawCallbackTime = 0ms 10-19 10:54:22.272: D/audio_hw_primary(176): start_output_stream: enter: usecase(1: low-latency-playback) devices(0x2) 10-19 10:54:22.272: D/audio_hw_primary(176): select_devices: out_snd_device(2: speaker) in_snd_device(0: none) 10-19 10:54:22.272: D/audio_hw_primary(176): enable_snd_device: sending audio calibration for snd_device(2) acdb_id(14) 10-19 10:54:22.272: D/ACDB-LOADER(176): ACDB -> send_afe_cal 10-19 10:54:22.272: D/audio_hw_primary(176): enable_snd_device: snd_device(2: speaker) 10-19 10:54:22.282: D/audio_hw_primary(176): enable_audio_route: apply mixer path: low-latency-playback 10-19 10:54:22.282: D/audio_hw_primary(176): start_output_stream: exit 10-19 10:54:22.413: E/mm-camera-DENOISE(205): wavelet_denoise_process: Wavelet Denoise Success 10-19 10:54:22.413: E/mm-camera-DENOISE(205): wavelet_denoise_process: Wavelet Denoise Success 10-19 10:54:22.653: V/CAM_PhotoModule(25782): mPictureDisplayedToJpegCallbackTime = 390ms 10-19 10:54:22.653: D/CameraStorage(25782): External storage state=mounted 10-19 10:54:22.653: V/CAM_PhotoModule(25782): mJpegCallbackFinishTime = 2ms 10-19 10:54:23.634: I/WindowManager(529): Screenshot Window{427b9640 u0 com.google.android.gallery3d/com.android.camera.CameraActivity} was all black! mSurfaceLayer=21105 minLayer=21105 maxLayer=21105 10-19 10:54:23.644: V/CAM_PhotoModule(25782): stopPreview 10-19 10:54:23.644: E/mm-libcamera2(176): PROFILE HAL: stopPreview(): E: 1382172863.652300627 10-19 10:54:23.644: E/mm-camera(205): config_MSG_ID_STOP_ACK: streamon_mask is not clear. Should not call PP_Release_HW 10-19 10:54:23.654: E/mm-libcamera2(176): PROFILE HAL: stopPreview(): E: 1382172863.663684726 10-19 10:54:23.664: E/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*):Received Setting NULL preview window 10-19 10:54:23.664: E/QCameraHWI(176): android::status_t android::QCameraHardwareInterface::setPreviewWindow(preview_stream_ops_t*): mPreviewWindow = 0x0x0, mStreamDisplay = 0x0xb8877d20 10-19 10:54:23.664: W/QCameraHWI_Preview(176): Setting NULL preview window 10-19 10:54:23.664: I/CameraClient(176): Destroying camera 0 10-19 10:54:23.664: E/mm-camera(205): config_shutdown_pp Camera not in streaming mode. Returning. 10-19 10:54:23.664: E/mm-camera(205): vfe_ops_deinit: E 10-19 10:54:23.724: E/qcom_sensors_hal(529): hal_process_report_ind: Bad item quality: 11 10-19 10:54:23.734: W/AudioFlinger(176): session id 151 not found for pid 176 10-19 10:54:23.734: W/AudioFlinger(176): session id 152 not found for pid 176 10-19 10:54:23.784: V/PhoneStatusBar(662): setLightsOn(true) 10-19 10:54:24.204: V/StateManager(25782): destroyset picturesize to use maximum resolution. Ideally, we should support selection of resolution and should remember the last one used. https://github.com/appcelerator/titanium_mobile/pull/4866
Verified fixed on: Mac OSX 10.9 Mavericks Titanium Studio, build: 3.2.0.201311122029 Titanium SDK, build: 3.2.0.v20131112144044 CLI: 3.2.0 Alloy: 1.3.0 Android Device: Xperia U 2.3.7 Camera successfully takes a picture with a resolution of 2592x1944 Closing.