Closed Bug 1112017 Opened 10 years ago Closed 10 years ago

(gonk-L-porting) green blinking picture in camera preview

Categories

(Core :: Audio/Video, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: wchi, Unassigned, Mentored)

References

Details

Attachments

(2 files)

Attached file log
This bug is used to track the blinking issue in camera preview in L porting.

Steps:
1. reboot device
2. open Camera app

This bug only happens in first launch of camera after reboot.
The preview will keep blinking unless you
* Switch to front camera,
* re-enter from homescreen and 
* re-enter from lockscreen
Attached video IMG_0392.MOV
Attachment #8537107 - Attachment mime type: text/x-vhdl → text/plain
According to the log, it looks like that the code tries to open two cameras (idx=1,2) at the same time.
This should be abnormal.

========

D/mm-camera-intf(  182): mm_camera_open: dev name = /dev/video1, cam_idx = 1
...
I/Camera2ClientBase(  182): Camera 0: Opened. Client: gonk.camera (PID 800, UID 10800)
D/mm-camera-intf(  182): mm_camera_open: dev name = /dev/video1, cam_idx = 1
I/mm-camera-sensor(  752): module_sensor_start_session:580 session 1
I/mm-camera(  752): gyro_module_start_session: EnterI/mm-camera-sensor(  752): module_module_set_session_data:2663 max delay 2 report dSelay 1
D/mm-camera(  752): module_faceproc_set_session_data:1836] Per frame control 2 1
D/mm-camera-intf(  182): mm_camera_open:  opened, break out while loop
I/mm-camera(  752): mct_pipeline_process_set:command=800000b
E/mm-camera(  752): mct_pipeline_get_stream: no children
E/mm-camera(  752): mct_pipeline_process_set:1440: Couldn't find stream
I/mm-camera-sensor(  752): module_sensor_stop_session:633 session 2
I/mm-camera(  752): stats_module_stop_session: list =0xb6a9bbe0, remove port =0xb6aa3640 name=stats_sink from module=0xb6a9a160, name=stats
I/mm-camera(  752): stats_module_stop_session: 1 port =0xb6aa3640 name=stats_sink 
I/mm-camera(  752): stats_module_stop_session: 2 port =0xb6aa3640 name=stats_sink 
I/mm-camera(  752): gyro_module_stop_session: EnterIt is 
I/mm-camera(  752): stats_module_stop_session: 3 port =0xb6aa3640 name=stats_sink 
I/mm-camera(  752): cpp_module_stop_session:462, info: stopping session 2 ...
I/mm-camera(  752): cpp_module_stop_session:504, info: session 2 stopped.
I/mm-camera(  752): c2d_module_stop_session:322, info: stopping session 2 ...
I/mm-camera(  752): c2d_module_stop_session:361, info: session 2 stopped.
D/QCamera3HWI(  182): static int32_t qcamera::QCamera3HardwareInterface::lookupFwkName(const qcamera::QCamera3HardwareInterface::QCameraMap*, int, int): Cannot find matching framework type
D/QCamera3HWI(  182): static int32_t qcamera::QCamera3HardwareInterface::lookupFwkName(const qcamera::QCamera3HardwareInterface::QCameraMap*, int, int): Cannot find matching framework type
D/QCamera3HWI(  182): static int32_t qcamera::QCamera3HardwareInterface::lookupFwkName(const qcamera::QCamera3HardwareInterface::QCameraMap*, int, int): Cannot find matching framework type
D/QCamera3HWI(  182): static int32_t qcamera::QCamera3HardwareInterface::lookupFwkName(const qcamera::QCamera3HardwareInterface::QCameraMap*, int, int): Cannot find matching framework type
D/QCamera3HWI(  182): static int32_t qcamera::QCamera3HardwareInterface::lookupFwkName(const qcamera::QCamera3HardwareInterface::QCameraMap*, int, int): Cannot find matching framework type
D/QCamera3HWI(  182): static int32_t qcamera::QCamera3HardwareInterface::lookupFwkName(const qcamera::QCamera3HardwareInterface::QCameraMap*, int, int): Cannot find matching framework type
D/QCamera3HWI(  182): static int32_t qcamera::QCamera3HardwareInterface::lookupFwkName(const qcamera::QCamera3HardwareInterface::QCameraMap*, int, int): Cannot find matching framework type
D/QCamera3HWI(  182): static int32_t qcamera::QCamera3HardwareInterface::lookupFwkName(const qcamera::QCamera3HardwareInterface::QCameraMap*, int, int): Cannot find matching framework type
V/GonkBufferQueueProducer(  800): query: 10? 0
D/QCamera3HWI(  182): int qcamera::QCamera3HardwareInterface::configureStreams(camera3_stream_configuration_t*): newStream type = 0, stream format = 34 stream size : 1920 x 1080
D/QCamera3HWI(  182): int qcamera::QCamera3HardwareInterface::configureStreams(camera3_stream_configuration_t*): newStream type = 0, stream format = 33 stream size : 3264 x 2448
I/mm-camera(  752): mct_pipeline_process_set:command=800000a
I/mm-camera(  752): mct_pipeline_process_set:command=8000012
I/mm-camera(  752): gyro_module_start_session: Init DSPS
E/mm-camera(  752): Failed to open sensor1 port
I/mm-camera(  752): gyro_module_start_session: dsps_proc_init() failed
I/mm-camera(  752): gyro_module_get_port: Exit failure
I/mm-camera(  752): cpp_module_start_session:352, info: starting session 1
I/mm-camera(  752): cpp_thread_func:55: cpp_thread entering the polling loop...
I/mm-camera(  752): cpp_module_start_session:431, info: cpp_thread created.
I/mm-camera(  752): cpp_module_start_session:434, info: session 1 started.
I/mm-camera(  752): c2d_module_start_session:246, info: starting session 1
I/mm-camera(  752): c2d_module_start_session:284, info: c2d_thread created.
I/mm-camera(  752): c2d_module_start_session:306, info: session 1 started.
I/mm-camera(  752): c2d_thread_func:39: c2d_thread entering the polling loop...
I/mm-camera-sensor(  752): module_module_set_session_data:2663 max delay 2 report dSelay 1
D/mm-camera(  752): module_faceproc_set_session_data:1836] Per frame control 2 1
D/mm-camera-intf(  182): mm_camera_open:  opened, break out while loop
W/Camera2-Parameters(  182): initialize: Camera 0: Unknown preview format: 24
I/Camera2-Parameters(  182): Camera 0: Disabling ZSL mode
V/GonkBufferQueueCore(  800): GonkBufferQueueCore
V/GonkBufferQueueConsumer(  800): connect(C): controlledByApp=false
V/GonkBufferQueueConsumer(  800): setConsumerName: 'unnamed-800-0'
V/GonkBufferQueueConsumer(  800): setMaxAcquiredBufferCount: 4
D/GonkNativeWindow(  800): setNewFrameCallback
...
D/mm-camera-intf(  182): mm_camera_open: dev name = /dev/video2, cam_idx = 2
I/mm-camera-sensor(  752): module_sensor_start_session:580 session 2
I/mm-camera-sensor(  752): module_sensor_init_session:474 ois device is not supported
I/mm-camera-sensor(  752): 
I/mm-camera(  752): gyro_module_start_session: Enter
I/mm-camera(  752): gyro_module_start_session: Init DSPS
E/mm-camera(  752): Failed to open sensor1 port
I/mm-camera(  752): gyro_module_start_session: dsps_proc_init() failed
I/mm-camera(  752): gyro_module_get_port: Exit failure
I/mm-camera(  752): cpp_module_start_session:352, info: starting session 2
I/mm-camera(  752): cpp_module_start_session:434, info: session 2 started.
I/mm-camera(  752): c2d_module_start_session:246, info: starting session 2
I/mm-camera(  752): c2d_module_start_session:306, info: session 2 started.
E/mm-camera-img(  752): img_q_remove:111] Dequeue failed
Normally, we should start qcamerasvr first and then mediaserver.
Because of bug 1112175, we need to start qcamerasvr manually. 
This workaround cause qcamerasvr and mediaserver to be started in wrong order.
It leads to open camera twice and then blinking eventually.

This issue goes away if you init qcamerasvr and mediaserver in correct order.
Depends on: 1112175
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: