Android中视频电话中camera部分数据流分析

Android中视频电话中camera部分数据流分析

ID:43323631

大小:98.00 KB

页数:5页

时间:2019-09-28

Android中视频电话中camera部分数据流分析_第1页
Android中视频电话中camera部分数据流分析_第2页
Android中视频电话中camera部分数据流分析_第3页
Android中视频电话中camera部分数据流分析_第4页
Android中视频电话中camera部分数据流分析_第5页
资源描述:

《Android中视频电话中camera部分数据流分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Android系统中视频电话中camera部分数据流分析最近在研究如何移植Android的camera系统,对camera的应用场景做了一些分析。Camera一般用于图像浏览、拍照和视频录制。图像浏览和扌“照的数据流是比较清晰的,这里就不做赘述了。视频录制应用于视频电话中。拨打视频电话时,既可以看见对方的图像,又可以看见自己的图像;当然,对方也是如此。从camera获取的图像数据,既需要在本地浏览,还需要videoencoder编码后传输到对方手机。这样的场景中,图像数据要同时做preview和record两种操作。一、回调函数传递首先需要将客户端的回调函数传递到底层,当底层获

2、取完图像数据后,回调该函数,通知上层,做相应的处理。类AndroidCameral叩ut作为客户端,它有两个成员,分别为:spmCamera;spmListener;类AndroidCameralnput就可以通过mCamera访问camera系统的对外接口。类AndroidCameralnputListener继承于类CameraListener,它有三个成员函数,分别为:virtualvoidnotify(int32_tmsgType,int32_textl,int32_text2){

3、}virtualvoidpostData(int32_tmsgType,constsp&dataPtr);virtualvoidpostDataTimestamp(nsecs_ttimestamp,int32_tmsgType,constsp&dataPtr);这里需要说明的是postDataTimestampO,它是客户端实现的回调函数,其定义为:voidAndroidCameralnputListener::postDataTimestamp(nsecs_ttimestamp,int32_tmsgType,constsp

4、&dataPtr){}当cameraHAL层捕获到一帧数据后,就会调用该冋调函数,告诉客户端。客户端在这个回调函数里先判断参数msgType是不是CAMERA_MSG_VIDEO_FRAME,如果是,即表示要对该帧数据进行编码处理,编码结束后会调用mCamera的函数releaseRecordingFrame(),其对应的HAL层的定义为:voidQualcommCameraHardware::releaseRecordingFrame(constsp&mem_attibute_((unused))){}在这个函数里,会调用函数LINK_camera_rele

5、ase_frame()告诉camera硬件,存放当前帧的buffer可以被释放,用于下一帧使用。回调函数postDataTimestampO如何注册到HAL层,这里需要详细说明。在客户端中,是通过mCamera的setListener()函数将mListener注册到mCamera中的,既将几个回调函数注册给mCamera:mCamera->setListener(mListener);mCamera继承于类BnCameraClient,而BnCameraClient继承于类ICameraCliento类ICameraClient有纯虚函数:virtualvoiddataCal

6、lbackTimstamp(nsecs_ttimestamp,int32_tmsgType,constsp&data)=0;类Camera屮定义了虚函数dataCallbackTimstamp()并做了实现:virtualvoiddataCallbackTimstamp(nsecs_ttimestamp,int32_tmsgType,constsp&data);dataCallbackTimstampO实现中,调用了类Camera的成员mListener的成员函数postDataTimestampO。类CameraService有成员类Cli

7、ent,类Client有成员:spmCameraClient;spmHardware;在类CameraService的成员类Client构造函数中:CameraService::Client::Client(constsp&CameraService,constsp&cameraClient,pid_tclientPid){}其屮调用了mHardware

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。