关键词不能为空

当前您在: 主页 > 英语 >

android camera HAL v3.0详细介绍(二)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-02 20:07
tags:

-

2021年3月2日发(作者:acquaintances)


android camera HAL v3.0


详细介绍(二)








android camera HAL v3.0


详细介绍(二)


2015-12-21


11:11


412


人阅读




评论


(0)



收藏




举报分类:


android camera


20



p and expected


operation sequence


这段描述了使用


camera API


的详细步骤。其中涉及到的结


构体和函数请参考文件:


plat form/hardware/libhardware/include/hardware/camera3 .


h


1.








Framework


层调用函数


camera_module_t->()


,将返回一个


hardware_device_t


类型的结构体。



2.








Framework


层检查字段


hardw are_device_t->version


,根据版本信息,实例化一


个适合这个版本的


camera


硬件设备的句 柄。例如版本号是


CAMERA_DEVICE_API_VERSION_3_0


,则这个设备将被


转化为


camera3_ device_t




3.








Framework


层调用函数


camera3_device_t->ops-> initialize()


,并传递了


framework


层的回调函数指针。这个函数只能被调用一次,


且在调用函数


open()


之后,在其他函数被调用之前。



4.








Fra mework


层调用函数


camera3_device_t- >ops->configure_streams()


,向这

< p>


HAL


层设备传递了输入输出的流信息。



5.








Framework


层分配


gralloc buffer


;调用函数


camera3_device_t- >ops->register_stream_buffers()


,< /p>


至少使用一个


configure_streams


中列举的输出流。同一个


流只能被注册一次。



6.








Fra mework


层通过调用


camera3_device_t- >ops->construct_default_request_


s ettings()


获取用例的默认设置。


这个在第三步之后任 意地方


进行调用。



7.








Framework


层使用默认设置集合中某一套设置,


且保证之前注册了至少一个输出流,


创建并向


HAL


层发第一

< br>个捕获请求。这个请求将通过调用函数


camera3_device_t-&g t;ops->process_capture_request()


发送到< /p>


HAL


层。


HAL


必须阻止函数返回,直到


HAL


准备好


接收下一个请求。



8.








Framework


层连续地提交请 求。可能会调用函数


register_stream_buffers()

< p>
来注册没有注册过的流,


调用函数


constru ct_default_request_settings


获取其他用例所需的默


认设置。



9.








当一个请求的捕获开始时



sensor


开始曝光)


HAL


层将调用函数


camera3_callback_ ops_t->notify()


通知上



SHUTTER


事件,其中包括


sensor


开始曝光的帧号和时


间戳。


调用函数


process_capture_result()


处理这个帧号对应


的数据之前,


HAL


层必须发出


SHUTTER


通知。



10.





流水线持续一些时间后,


HAL


层开始 使用函数


camera3_callback_ops_t->process_ capture_result()



framework


层返回处理完的图像数据。返回结果的次序与提


交请求的次序完全一 致。多个请求可以被一次提交,但这取


决于


camera


HAL


层设备的流水线深度。



11.





工作一段时间之后,


framework


层可能会停止提交新


的请求,等待其他请求被完成(所有


bu ffer


被填充,所有结


果被返回)


, 然后再次调用函数


configure_streams()


。 这是


为一组新的输入输出流重启


camera

< br>硬件和流水线。前面配


置的一些流可能会被重复使用;如果流的

< br>buffer


已经注册到



HA L


层,


它们将不再被注册。


如果有一个 被注册的输出流


还存在,则


framework


层将从第七步重新开始(否则,将从


第五步开始)


。< /p>



12.





Framework


层将调用函数< /p>


camera3_device_t->common->close()< /p>


结束


camera


话。当


framework


层没有其他调用时,可以在任何 时间调用


这个函数,尽管这个调用会阻塞,直到所有正在处理的捕获

被完成


(所有结果被返回,


所有


b uffer


被填充)



函数

< p>
close()


返回之后,不允许


HAL


调用


camera3_callback_ops_t

< br>的任


何函数。一旦函数


close()

< br>被调用,


framework


层将不能调用


其他任何


HAL


层设备函数。



13.





如果发生错误或者其他异步事件,


H AL


层必须调用


函数


camera3_ callback_ops_t->notify()


告知上层对应的

< p>
错误或者事件信息。一个与设备相关的致命错误被通知上层


后,

< p>
HAL


应该像被调用了函数


close()


一样。


但是,


在调用函



notify()


之前,


HAL< /p>


必须取消或者完成所有未结束的数据


捕获操作,以便致命错误被上 报之后,


framework


不会收到


设备的任何回调函数。


除了函数


close()



致命错误信息发出


后,其他函数只能返回

< p>
-ENODEV


或者


NULL




Figure4. Camera operational flow



ional modes


Camera HAL



v3


版本的设备实现两种可能的操作模式之


一:


limited


模式和

< br>full


模式。新的高端设备预计会支持


full


模式。


Limited


模式与


camera


HAL



v1


版本一样,对硬件需求很低,用于旧的或者低价


设备。


Full


模式是


limited


模式的超集,如上面所述,它们有


着基本上一样的操作流程。

< br>


Camera HAL


层必须使用静态元数据


tedHardwareLevel


指明其所支持的模式。


0


表示支持


limited


模式,


1


表示支持


full

< p>
模式。



简单来讲,


li mited


模式设备不允许应用程序控制捕获数据信


息的设置< /p>



3A


控制除外)



大分辨率图像的高帧率捕获,


raw


数据的获取,或者上面所说的最大视频分辨率的


YUV


输出< /p>


流(对于大图像只支持


JPEG






Limited


模式行为的细节如下:



·









Limited


模式的设备不需要实现请求配置与实际捕

< p>
获图像数据的完全匹配。


相反,


将来有时改变配置 将更高效,


可能也不需要一个配置必须对应一个同样的输出帧。快速改

< br>变配置可能会使得某些配置从来没有被使用过。但是,有高


分辨率(大于


1080P


)输出


buffer


的捕获必须使用指定的配


置(处理速度的描述如下)




·










limited

< br>模式下,有高分辨率(大于


1080P


)输



buffer


的捕获在函数


process_capture_request()


中会阻塞,

< br>直到所有输出


buffer


都被填充。

< br>Full


模式


HAL


层设备必须 按


照静态元数据中指定的速率,处理相应像素格式的高分辨率


请 求的序列。


HAL


层调用函数


proc ess_capture_result()


产生


输出结果;< /p>


framework


层需要为函数


pro cess_capture_request()


做好准备,


然 后阻塞,


直到


limited


模式设备 的高分辨率捕获请求被函数


process_capture_result()


执行完毕。



·









Limited

< br>设备不需要支持大多数的配置、结果、静


态信息。只有下面的配置期待被


limited


模式


HAL

层设备所


支持:



o




bandingMode(controls)


o




sureCompensation(controls)


o




(controls)


o




(controls)


o




[OFF meansON_FLASH_TORCH]


o




ons(controls)


o




etFpsRange(controls)


o




(controls)


o




[OFF means infinityfocus]


o




ons(controls)


o




k(controls)


o




e(controls)


o




[OFF not supported]


o




ions(controls)

-


-


-


-


-


-


-


-



本文更新与2021-03-02 20:07,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/692679.html

android camera HAL v3.0详细介绍(二)的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文