CQ记录

CQ


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vrIx92Lo-1611556899072)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201203203233207.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wBanI2rx-1611556899074)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201112112942114.png)]

exif信息——记录数码照片的属性信息和拍摄数据

电话:02120360600转7457

SHARKLE—SL8541E

9832E

Shark L3(SC9863)

8581E即SC9863

sharkl5pro-UIS7862S

查看user-debug exif信息

adb shell persist.vendor.cam.debug.mode debug

Bug 1440519

camera FAE反馈拍图debug分析时有异常,ct和pg不可能为-1,请帮忙看看

将图片转化为二进制之后,搜索 AWB_ 可以看到下边的数据都为FF,没有数据,所以色温ct值就会是-1,pg是AWB2.0版本类似tint的一个值。

Bug 1441328-前摄hm2140,i2c通讯成功,可以读到ID,但是无法点亮

#define PREVIEW_WIDTH	1920
#define PREVIEW_HEIGHT	1080
#define SNAPSHOT_WIDTH	1920
#define SNAPSHOT_HEIGHT	1080
#define VIDEO_WIDTH	1920
#define VIDEO_HEIGHT	1080

这个宽高比要符合4/3以及16位对齐,init_setting对应的寄存器也要修改。

/*line time unit: 1ns*/
#define PREVIEW_LINE_TIME	  33391
#define SNAPSHOT_LINE_TIME	  33391
#define VIDEO_LINE_TIME	  29984

/* frame length*/
#define PREVIEW_FRAME_LENGTH	1110
#define SNAPSHOT_FRAME_LENGTH	1110
#define VIDEO_FRAME_LENGTH	1110

line_time和frame_length的乘以30要等于10的九次方,满足展讯平台帧率30,否则画面可能会卡。

Bug 1441965试主摄gc4653,上电电压正常,i2c没有报错,但是读不到id,测量mclk波形发现只有瞬时的0.9v电压,没有波形

identify发生了失败,应该是配置上存在问题,现在展讯平台还在分析具体原因,稍后给出分析结果。同时请尽快提供模组的打样图,

3: 582, gc4653_drv_identify: mipi raw identify
000001 04-01 07:03:53.545   338   338 E hw_sensor: 610, hw_sensor_read_reg: zxd,  addr = 0x3f0, value=0xff, bit=128, ret=0 
000001 04-01 07:03:53.545   338   338 E 9850ka_gc4653: 596, gc4653_drv_identify: sensor identify fail, pid_value = ff, ver_value = 0
000001 04-01 07:03:53.545   338   338 I sns_drv_u: 192, sensor_power_on: E:power_on = 0
000001 04-01 07:03:53.545   338   338 D hw_sensor: 303, hw_sensor_power_down: power_level 0
000001 04-01 07:03:53.547   338   338 I hw_sensor: 382, hw_sensor_set_mclk: mclk 0, ret 0 

Hi Customer:
展锐这边没有认证过模组,该问题从平台的角度来分析还是需要sensor 厂商去处理:

建议按照以下条件去实验:

1.检查三路电压是否符合sensor规格书要求,并检查sensor 上下电以及PWDN等是否满足芯片规格书要求。

2.试着修改MIPI驱动能力

3.增加I/O口的驱动能力。

4.上下电过程中增加延时。

5.检查init_setting寄存器的值。

针对这种问题,平台这边没有可修改的,平台最多能修改的就是在PIN MAP里面修改部分PIN的驱动能力。

由于该问题紧跟sensor,和sensor 关系比较大,建议贵司推动sensor fae 检查相关配置。

bug 1444292

自拍照像时即使把美颜效果关闭,拍的照片也还是有美颜效果,照片给人感觉有点失真。

调整boardconfig.mk文件中有关美颜(bokeh)部分的设置:

TARGET_BOARD_BOKEH_MODE_SUPPORT := false 这里改为关闭

Bug 1444355

使用pwm控制的闪光灯芯片拍照会卡顿

找一个样机,打闪拍照,导出log

看代码和log:

找camera_focus_post_proc函数下flash_capture_skip_num的值

这个值最终一般是24,过程中是18+6,就看下过程中是怎么得来的。

找到调用camera_focus_post_proc函数的函数

init_param.ops.af_post_proc = camera_focus_post_proc;

cmr_preview.c下的

prev_set_preview_skip_frame_num

cmr_oem.h下的

 cmr_int prev_set_preview_skip_frame_num

bug1445120

后摄录像时帧率被限制了影响亮度,需要取消帧率限制

从log看 录像模式帧率为固定帧率, 30 - 30 , 请apk同事适当降低帧率

01563F 10-29 12:06:00.321   316   614 D cmr_oem : 7955, camera_isp_ioctl: fps 30 30
015640 10-29 12:06:00.321   316   614 D cmr_setting: 1153, setting_set_range_fps: min_fps=30, max_fps=30

请贵司尝试修改所需对应camera和对应模式下的配置。
device/sprd/sharkle/sl8541e_1h10/media_profiles.xml

例720p的frameRate 30适当降低,请注意相关修改可能影响cts测试,需加强验证,谢谢!

<EncoderProfile quality="720p" fileFormat="mp4" duration="60">

​      <Video codec="h264"

​          bitRate="8000000"

​          width="1280"

​          height="720"

​          frameRate="30" />

​      <Audio codec="aac"

​          bitRate="96000"

​          sampleRate="44100"

​          channels="1" />

​    </EncoderProfile>

关键字

CameraService::connect|processCapture|setting_set_range_fps|:hal3:|fps

CameraService::connect|processCa|setting_set_flashdevice|ignore this frame|camera_focus_post_proc

identify|configurestreams|processcapture|handlecbdatawithlock

stream_on|identify|error|fail|sensor_id

打印信息

2>&1 | tee build_all.log

bug1446365-第三方应用拍照有条纹

升高cpu频率
  1. /sys/devices/system/cpu/

  2. 在cpu目录下有cpu0和cpu4,表示大合和小合,要在这两个目录下分别设置

  3. 进入到cpu0目录,执行:

    echo userspace >cpufreq/scaling_governor

    之后再进入到cpufreq查看最大频率、当前频率的指令

    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # ls
    ls
    affected_cpus              scaling_available_frequencies scaling_max_freq
    cpuinfo_cur_freq           scaling_available_governors   scaling_min_freq
    cpuinfo_max_freq           scaling_cur_freq              scaling_setspeed
    cpuinfo_min_freq           scaling_driver                stats
    cpuinfo_transition_latency scaling_fix_freq
    related_cpus               scaling_governor
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat cpuinfo_max_
    at cpuinfo_max_freq                                                           <
    1200000
    
  4. echo xxx >cpufreq/scaling_setspeed(XXX表示频率)

    echo 1200000 > scaling_setspeed
    
  5. scaling_cur_freq通过这个频率查看是否修改成功

    C:\Users\cong.hai>adb shell
    s9863a1h10_go_32b:/ # cd /sys/devices/
    cd /sys/devices/
    s9863a1h10_go_32b:/sys/devices # cd system/cpu/
    cd system/cpu/
    s9863a1h10_go_32b:/sys/devices/system/cpu # ls
    ls
    cpu0 cpu3 cpu6    cpuhotplug isolated   offline  power
    cpu1 cpu4 cpu7    cpuidle    kernel_max online   present
    cpu2 cpu5 cpufreq hotplug    modalias   possible uevent
    s9863a1h10_go_32b:/sys/devices/system/cpu # cat max
    cat max
    cat: max: No such file or directory
    1|s9863a1h10_go_32b:/sys/devices/system/cpu # cat kernel_max
    cat kernel_max
    7
    s9863a1h10_go_32b:/sys/devices/system/cpu # cd cpu0
    cd cpu0
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # echo userspace >/cpufreq/scaling_governor
    cho userspace >/cpufreq/scaling_governor                                      <
    /system/bin/sh: can't create /cpufreq/scaling_governor: No such file or directory
    1|s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # echo userspace >/cpufreq/scaling_governor
    cho userspace >/cpufreq/scaling_governor                                      <
    /system/bin/sh: can't create /cpufreq/scaling_governor: No such file or directory
    1|s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # ls
    ls
    cpu_capacity cpuidle of_node subsystem uevent
    cpufreq      hotplug power   topology
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # echo userspace >cpufreq/scaling_governor
    cho userspace >cpufreq/scaling_governor                                       <
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 #
    
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 #
    
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # ls
    ls
    cpu_capacity cpuidle of_node subsystem uevent
    cpufreq      hotplug power   topology
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # cd cpu
    cd cpu
    cpu_capacity    cpufreq/        cpuidle/
    d cpu                                                                         <
    /system/bin/sh: cd: /sys/devices/system/cpu/cpu0/cpu: No such file or directory
    2|s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # cd cpuf
    d cpufreq/                                                                    <
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # ls
    ls
    affected_cpus              scaling_available_frequencies scaling_max_freq
    cpuinfo_cur_freq           scaling_available_governors   scaling_min_freq
    cpuinfo_max_freq           scaling_cur_freq              scaling_setspeed
    cpuinfo_min_freq           scaling_driver                stats
    cpuinfo_transition_latency scaling_fix_freq
    related_cpus               scaling_governor
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat cpuinfo_max_
    at cpuinfo_max_freq                                                           <
    1200000
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # echo 1200000 > scaling_setspeed
    cho 1200000 > scaling_setspeed                                                <
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq #
    
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq #
    
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq #
    
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq
    cat scaling_cur_freq
    1200000
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq
    cat scaling_cur_freq
    1200000
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq
    cat scaling_cur_freq
    1200000
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq
    cat scaling_cur_freq
    1200000
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cd ../
    cd ../
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0 # cd ..
    cd ..
    s9863a1h10_go_32b:/sys/devices/system/cpu # ls
    ls
    cpu0 cpu3 cpu6    cpuhotplug isolated   offline  power
    cpu1 cpu4 cpu7    cpuidle    kernel_max online   present
    cpu2 cpu5 cpufreq hotplug    modalias   possible uevent
    s9863a1h10_go_32b:/sys/devices/system/cpu # cd cpu1
    cd cpu1
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1 # ls
    ls
    cpu_capacity cpuidle of_node power     topology
    cpufreq      hotplug online  subsystem uevent
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1 # cd cpu
    cd cpu
    cpu_capacity    cpufreq/        cpuidle/
    d cpu                                                                         <
    /system/bin/sh: cd: /sys/devices/system/cpu/cpu1/cpu: No such file or directory
    2|s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1 # cd cpuf
    d cpufreq/                                                                    <
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1/cpufreq # ls
    ls
    affected_cpus              scaling_available_frequencies scaling_max_freq
    cpuinfo_cur_freq           scaling_available_governors   scaling_min_freq
    cpuinfo_max_freq           scaling_cur_freq              scaling_setspeed
    cpuinfo_min_freq           scaling_driver                stats
    cpuinfo_transition_latency scaling_fix_freq
    related_cpus               scaling_governor
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1/cpufreq # cat scaling_cur
    at scaling_cur_freq                                                           <
    1200000
    s9863a1h10_go_32b:/sys/devices/system/cpu/cpu1/cpufreq # cd ../..
    cd ../..
    s9863a1h10_go_32b:/sys/devices/system/cpu # ls
    ls
    cpu0 cpu3 cpu6    cpuhotplug isolated   offline  power
    cpu1 cpu4 cpu7    cpuidle    kernel_max online   present
    cpu2 cpu5 cpufreq hotplug    modalias   possible uevent
    s9863a1h10_go_32b:/sys/devices/system/cpu #
    C:\Users\cong.hai>s9863a1h10_go_32b:/sys/devices/system/cpu/cpu0/cpufreq # cat scaling_cur_freq
    cat scaling_cur_freq
    1200000
    

\shnas02\CustomerData\产品工程管理部\zte_sh\FTPDATA\SPCSS00750688

  • 工程模式:调试bai模式,一般是手机维修时候使用。相当于电脑编程调试。

【1】工程模式下前后摄拍照有条纹,用户模式下拍照无条纹:
分析:
工程模式为非ZSL拍照,用户模式为ZSL拍照
将工程模式改为ZSL拍照后,工程模式下前后摄拍摄4000张无条纹问题
结论:zsl模式拍照无条纹。仅非zsl出现问题

【2】user版本有条纹问题,userdebug版本无条纹问题:
分析
在驱动文件中sensor出图后(cmr_int st55a_091_drv_stream_on)增加延时(增加延时的原因就是userdebug版本要打印很多log,时间会久一点),复现概率降低,8台样机中4台问题可复现
修改驱动文件中的寄存器,将init_setting[]中的值分别复制到preview_setting[]和snapshot_setting[]中。验证800多次未出现条纹问题,后期复拍150次出现一次条纹,概率降为极低。
结论:通过延时 和 对比userdebug版本和user版本,确定和驱动代码无关,应该和某个部件的读写速率相关

客户本地验证,相同的sensor setting , F50有问题,F20无问题,说明本问题和sensor setting无关

概念
  • 非ZSL

1.开始预览,出预览帧,这个时候已经正常预览了
2.这个时候按下shutter,开始拍照,开始拍照的时候,预览流停止,
3.拍照的时候要做一系列的动作,af对焦,准备拍照,曝光,
4.拍照流数据回调,这个时候是raw数据,然后开始对raw数据进行编码
5.编码成为JPEG,然后保存,此时拍照完成,从新开始预览。

传统的快照,也就是在拍照的时候,预览是停止的。
拍照结束后,预览将在C2D模块之后,重新开始预览

  • ZSL:零延时拍照
  1. 一个surfaceView用于预览

  2. 一个队列缓存snapshot的数据

  3. 拍照动作获取队列某桢数据作为拍照数据输出

  4. 输出的照片需要YUV->JPEG数据的转码

日报

  • 计算一秒出多少帧

一帧有多少行1925

一行多少时间 line_time28804

1925×28804/10^6=55.44ms

1000/55.44=18帧

  • sensor_if.img_ptn置0

位置:cmr_grab.c

含义是不用经过Dcam、ISP这些,sensor给什么就会出什么。

bug1447504-使用testingcamera app,发现无法连接camera service

4812 E libc : Access denied finding property “media.settings.xml”
11-05 16:35:49.864 3627 3691 E libc : Access denied finding property “hwc.external.plugin”

从log可以看出,找不到"media.settings.xml"文件,
请您在路径"vendor/etc/media_profiles_turnkey.xml"下查看下是否有此文件

Testingcamera2的目标是允许所有API原语和行为都通过一个合理的UI,并允许在其上构建简单的演示和测试用例。

应用程序使用的概念与API本身的概念相匹配,因此任何给定的配置都是如此在应用程序中,可以很容易地用camera2 API直接复制。

  • 用户界面的概念:

用户界面分为两个面板,并排(横向)或彼此上方(纵向)。

左侧(或上方)面板通常显示相机子系统的输出,而右侧面板(或以下)面板通常具有与摄像机子系统交互的控件。

API中的每个对象类别都是通过一个专用于该类别的窗格进行配置的窗格按类别分组在列表中,可以在视图中添加、删除或折叠窗格任意地。

左侧窗格包含目标窗格以及应用程序的总体日志窗格。右窗格包含照相机、请求、连拍和实用程序窗格

  • 应用程序的基本操作如下:
  1. 添加摄影机窗格,选择要使用的摄影机
  2. 至少添加一个目标窗格,并为每个窗格选择所需的目标类型及其配置选项
  3. 从“摄影机”窗格打开并配置摄影机
  4. 添加一个请求窗格,选择所需的摄像机和目标,以及所需的用例模板。
  5. 根据请求,使用“捕获”(一次拍摄)或“重复”(连续)按钮开始捕捉图像。

应用程序还有一组预设配置,可以从右上角的下拉菜单访问这些配置,以加快操作速度

2.1 相机窗格

摄像头窗格包括单个摄像头的设备级控件,可以从Android设备上的所有摄像头中进行选择。它允许打开设备,读取其摄像头特征信息,配置一组目标,以及停止或冲洗摄像头。

2.2 目标窗格

目标窗格表示摄影机数据的各种目的地。目的地的类型,以及此目标的摄像头始终可供选择。每种目的地都有自己的一组用于配置和操作的控件。

窗格始终有一个“配置”开关,用于指定是否包含该目标窗格在选定摄影机的下一个配置操作中。在摄影机的配置中包含目标窗格之前,它不能用作对该摄影机的捕获求的目标。

2.2.1 TextureView和SurfaceView目标

这些是通常用于相机预览的基本输出;每个输出都是由它从相机请求的缓冲区大小来配置的。

2.2.2 图像阅读器目标

这是基本的静态捕获输出,用于需要应用程序访问的JPEG或未压缩数据。它只需配置所需的输出格式和大小。

2.2.3 MediaCodec和MediaRecorder目标

这些是视频录制目标,它们使用Android设备的视频编码API来创建视频文件。

2.2.4 RenderScript目标

这个目标将相机数据发送到RenderScript分配,Android的renderscriptapi可以从中高效地处理这些数据

2.3 请求窗格

请求窗格用于设置单个相机捕获请求的配置。它包括相机设备捕捉一帧数据所需的所有设置。它包含选择器将请求发送到的摄像头,然后选择要用于图像输出的已配置目标窗格。给定的请求可以向配置的目标的任何子集发送数据,但它必须至少包含一个目标。

摄像机设备为各种用例的所有请求设置提供默认值可以从下拉列表中选择起始模板。

一旦打开并配置了摄像头,并且为请求时,可以使用“捕获”或“重复”按钮将请求发送到相机。

捕获是一个一次性操作,它只是指示相机捕捉一帧数据。这通常用于高分辨率快照、触发自动对焦或其他单一事件。捕获按先进先出的顺序排队和处理。

Repeat是一种连续操作,相机设备使用相同的请求设置连续捕捉图像。它们的优先级低于捕获,因此,如果某个请求正在活动地重复,其他请求仍然可以使用“捕获”操作来触发单个捕获。另一个请求触发repeat将优先于其他请求之前的任何repeat操作。

若要停止重复,请使用摄影机窗格的停止方法。

2.4 爆裂窗格

一组单一的请求以很快的速度突然聚集在一起。以原子的方式捕捉突发事件,而不干预其他请求。与单个请求类似,它们可以是一次性的,也可以是连续的。

“突发”窗格包含要将突发发送到的目标摄影机,然后允许在突发中包含一个或多个请求,这些请求来自所选目标的请求列表

2.5 实用程序窗格

还可以实现各种功能,如自动抓取功能或其他高级功能。

2.6 配置加载/保存

TestingCamera2支持从XML定义加载预定义的一组窗格。定义可以是默认包含的集合之一,也可以位于设备SD卡上。

三 内部架构

每个窗格都是一个专门的视图,有一些通用方法来设置它们并通知它们其他窗格中的更改。窗格由全局窗格跟踪器跟踪,该跟踪器允许单个窗格通知其他窗格状态更改(例如选定摄影机中的更改,以便所有以该摄影机窗格为目标的窗格都可以更新其显示的设置选项),以查找给定类型的窗格,等等。

摄像机设备的操作集中在一个单独的camera ops类中,该类跟踪打开的设备,通知窗格相机设备状态的变化,并允许实用程序窗格截获/覆盖相机设备操作作为desi

定位错误:/system/lib/libcameraservice.so (android::camera2::initializeEx

ParametersExFun.cpp中加ALOG输出变量,如果没有输出,就说明有一个变量没有传入参数,即地址为空。

/frameworks/av/services/camera/libcameraservice/api1/client2/Parameters.h

/vendor/sprd/platform/frameworks/av/service/camera/libcameraservice/api1/client2/

/cts/tests/camera/libctscamera2jni/native-camera-jni.cpp (revision 70d4f1e1)

class StaticInfo

升级前:W20.31.2
升级后:W20.43.3

pac包路径:\10.0.1.110\Hudson\ShareData\CSDataRelease\Test_Products_Library\sprdroid10_trunk_19c\MOCORDROID10_Trunk_19C_RLS1\MOCORDROID10_Trunk_19C_RLS1_W20.43.3\Images

  1. sharkle手机,大概相同版本的手机

pac包路径:\10.0.1.110\Hudson\ShareData\CSDataRelease\Test_Products_Library\sprdroid10_trunk_19c\MOCORDROID10_Trunk_19C\MOCORDROID10_Trunk_19C_PATCH_W20.43.7\Images\sp9832e_1h10_gofu-userdebug-native

然后再.cpp中加log, 打印所有的count的iso的值,

然后看客户问题机器下发多少?

hal层传输给app,app传输给framework

Bug 1451746**平台是否有接口或者log可以获知camera实时的帧率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DCJE3CNK-1611556899075)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201112151051270.png)]

在log中搜索processcapture,可以看到每秒有多少帧。后边的cap_intent=1表示预览、2表示拍照、3表示录像。

setPreviewFps搜索帧率范围,动态帧率。

Bug 1452066 打了pwm相关的patch后,在相机界面按电源键休眠会进sysdump

834976

1416513之前

背光用的是pwmb,闪光灯用的是pwmc。

PWM信号把模拟信号转化为数字电路所需要的编码,现在基本是采用数字电路,因此在很多场合都采用PWM信号,我们经常见到的就是交流调光电路。

systemstate dump 系统状态奔溃

camera 检查一下闪光灯配置

k 4.4 pwm 底层驱动如果关闭pwm ,又去修改pwm的会引起死机的。要保证上层的逻辑是正确的。

关闭pwmb,再把栈空比置空,然后再去检验

现在要使用pwmc控制闪光灯,然后把pwmb关闭,这时要把栈空比置0,回退代码验证。

之前打的patch是修改的闪光灯部分即pwmc,现在打入patch出现sysdump。所以要把代码回退掉,看下在背光(pwmb)和闪光灯情况下是否还有sysdump情况出现。

Bug 1456327点亮gc0310 yuv sensor,请帮忙确认目前的基线是否支持yuv sensor

http://review.source.unisoc.com/gerrit/#/c/701507/

1 9747f6d.diff.zip请直接打到vendor/sprd/modules/libcamera
2 sprd_camera.rar直接覆盖kernel/drivers/misc下的sprd_camera

参考:Bug 1081222 - [SL8541E] [FOTON] [M04] 是否支持yuv摄像头

不支持YUV Sensor ,GC0310是支持Bayer Raw输出的,建议Sensor支持输出Bayer Raw

这样版本默认是支持的。功能,性能,稳定性都是有保证的,是经过量产验收的,

如果重新开发YUV Sensor,开发周期,功能,性能,稳定性都需要大量时间才能达到

量产需求,时间上是不可控的。

bug1464620使用camera app打开camera报错,但是另外一个app能打开camera

从log中分析:

11-27 03:05:47.771   456   812 D cmr_oem : 11734, camera_local_stop_preview: E
11-27 03:05:47.771   456   812 I cmr_oem : 11738, camera_local_stop_preview: don't previewing
11-27 03:05:47.771   456   812 D cmr_oem : 11817, camera_local_stop_preview: X
11-27 03:05:47.771   456   812 D Cam3OEMIf: 2496, setCameraState: X: camera state = SPRD_IDLE, preview state = SPRD_IDLE, capture state = SPRD_IDLE focus state = SPRD_IDLE set param state = SPRD_IDLE
11-27 03:05:47.771   456   812 I Cam3OEMIf: 3512, stopPreviewInternal: X Time:0 ms camera id 0

11-27 03:05:47.788   456   812 E CamDevSession@3.2-impl: processOneCaptureRequest: HAL process_capture_request call failed!
11-27 03:05:47.788   743  9524 E Camera3-Device: Camera 0: sendRequestsBatch: RequestThread: Unable to submit capture request 3 to HAL device: Function not implemented (-38)
11-27 03:05:47.789  8981  8981 E CAM_ModeListView: Capture layout helper needs to be set first.
11-27 03:05:47.795  8981  9472 E CAM2PORT_AndCam2AgntImp: Camera device '0' encountered error code '4'

492 E cmr_prev: 3393, prev_error_handle: hal_err error type 0x10001, camera_id 0

搜10001错误

Bug 1462989X7项目,摄像头压力人脸识别之后,摄像头打开很慢,要重启才能恢复

人脸解锁前摄——打开前摄——关闭前摄——打开后摄——预览

在打开后摄和预览之间时间太长,看log时间在5s左右。

目前系统log等级为四级,可能会有些影响,建议降为一级试下。

搜this is看进入camera

slowmotion 高帧率 sensor work mode3 高帧率模式

FaceLock|libfacedetect|stopPreview|requestCameraOpen|cmr_oem|cmr_fd_sprd|camera_id|this is

Bug 1464620 使用camera app打开camera报错,但是另外一个app能打开camera

修改zsl配置

iff --git a/device/sprd/sharkle/sp9820e_2h10/BoardConfig.mk b/device/sprd/sharkle/sp9820e_2h10/BoardCo

index e711141…358aeeb 100644

— a/device/sprd/sharkle/sp9820e_2h10/BoardConfig.mk

+++ b/device/sprd/sharkle/sp9820e_2h10/BoardConfig.mk

@@ -132,7 +132,7 @@ TARGET_BOARD_AF_VCM_DW9800W := false

#------section 3: feature config------

#select camera zsl cap mode

  1. /vendor/sprd/modules/libcamera/[SprdCtrl.mk 351行
  2. /vendor/sprd/modules/libcamera/SprdCtrl.mk

TARGET_BOARD_CAMERA_CAPTURE_MODE := false

-TARGET_BOARD_CAMERA_CAPTURE_NOZSL := false

+TARGET_BOARD_CAMERA_CAPTURE_NOZSL := true

#support 4k record

TARGET_BOARD_CAMERA_SUPPORT_4K_RECORD := false

diff --git a/vendor/sprd/modules/libcamera/hal3_2v1/SprdCamera3Setting.cpp b/vendor/sprd/modules/libcam

index 6b1ebcc…df76193 100644

— a/vendor/sprd/modules/libcamera/hal3_2v1/SprdCamera3Setting.cpp

+++ b/vendor/sprd/modules/libcamera/hal3_2v1/SprdCamera3Setting.cpp

@@ -3651,8 +3651,6 @@ int SprdCamera3Setting::updateWorkParameters(

​ pushAndroidParaTag(ANDROID_SPRD_ZSL_ENABLED);

}

- s_setting[mCameraId].sprddefInfo.sprd_zsl_enabled = 1;

- pushAndroidParaTag(ANDROID_SPRD_ZSL_ENABLED);

int32_t cropRegionUpdate = false;

if (frame_settings.exists(ANDROID_SCALER_CROP_REGION)) {

​ 这个修改是不进行zsl的拍照

-TARGET_BOARD_CAMERA_CAPTURE_NOZSL := false

+TARGET_BOARD_CAMERA_CAPTURE_NOZSL := true

下面这个修改是强制让底层走zsl拍照.原生代码里面没有,应该是贵司添加的

- s_setting[mCameraId].sprddefInfo.sprd_zsl_enabled = 1;

- pushAndroidParaTag(ANDROID_SPRD_ZSL_ENABLED);

1464620-使用camera app打开camera报错,但是另外一个app能打开camera

updateWorkParameters

1465726-闪光灯打闪通过i2c写命令,但实际设计打闪应该是通过GPIO口

修改DTS,把i2c0里边的写到i2c2里

已经有驱动,修改makefile中的依赖关系

/sprdroid10_trunk_20a/bsp/kernel/kernel4.14/arch/arm64/boot/dts/sprd/ud710-20c10.dts

/sprdroid10_trunk_20a/bsp/modules/camera/flash/ocp8137/flash_ic_ocp8137_drv.c

datasheet

AW36423是一个高功率双通道LED闪存驱动,在2.7V到5.5V输入电压范围内,两个源LED都能提供最高可达1.0A的输出。

该设备为硬件闪存启用(STROBE频闪仪)有一个逻辑输入。这个逻辑输入有一个内部300k下拉电阻到GND。

该设备是通过一个I2c兼容接口控制,包括调整闪光灯和手电筒当前值,改变闪光超时持续时间和IVFM水平,此外,还有标志和状态位,指示flash电流超时,LED超温条件,LED故障(短),设备终端关机和VIN欠压条件。

  • 闪光模式

在闪光模式下,LED电流源(LED1/2)提供从3.9mA到10A的256个目标电流电平。闪光电流通过LED1和LED2闪光亮度寄存器进行调节。闪光灯模式通过使能寄存器激活(将M1、M0设置为“11”),或者在使能时通过拉频闪仪引脚(使能寄存器)。一旦闪光序列被激活,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0qiu2ZpE-1611556899077)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201203170742304.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IwiAirLF-1611556899078)(C:\Users\cong.hai\AppData\Roaming\Typora\typora-user-images\image-20201203170920779.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值