关键词不能为空

当前您在: 主页 > 英语 >

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详细介绍(二)的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文