android camera recording[转]
来源:互联网 发布:mac php redis 扩展 编辑:程序博客网 时间:2024/06/06 03:13
转自:http://leave001.blog.163.com/blog/static/16269129320101016104644615/
配置文件:/etc/media_profiles.xml 参考:Android平台上从Camera的jpegquality菜单研究JNI接口(三)
Recording:
VideoCamera::startVideoRecording(), VideoCamera.java
MediaRecorder::start(), MediaRecorder.java
android_media_MediaRecorder_start(), android_media_MediaRecorder.cpp
MediaRecorder::start(), mediarecorder.cpp
MediaRecorderClient::start(), MediaRecorderClient.cpp
PVMediaRecorder::stop(), PVMediaRecorder.cpp /* 呼入OpenCore */
PVMediaRecorder::doStart()
AuthorDriver::handleStart()
PVAuthorEngine::Start(), pvauthorengine.cpp
PVAuthorEngine::DoStart()
AndroidCameraInput继承了PvmiMIOControl,因此PVAuthorEngine::DoStart()最终会呼入:
AndroidCameraInput::DoStart(), android_camera_input.cpp
mCamera->setListener(mListener); /* 设置listener。mListener为AndroidCameraInput构造函数中创建的AndroidCameraInputListener对象 */
mCamera->startRecording();
Camera::startRecording(), Camera.cpp
c->startRecording(); // sp <ICamera> c = mCamera, 为connect时创建的CameraService::Client对象
CameraService:
CameraService::Client::startRecording()
mHardware->enableMsgType(CAMERA_MSG_VIDEO_FRAME); /* enable CAMERA_MSG_VIDEO_FRAME消息 */
startCameraMode(CAMERA_RECORDING_MODE);
startRecordingMode();
mHardware->startRecording(recordingCallback, mCameraService.get()); /* 传入recordingCallback */
mRecordingCallback = cb; /* 保存cb到mRecordingCallback */
数据流向:
CameraService:
CameraHardware::previewThread()
mDataCb(CAMERA_MSG_VIDEO_FRAME, mBuffers[index], mCallbackCookie);
c->dataCallbackTimestamp(timestamp, msgType, dataPtr), CameraService.cpp
Camera::dataCallbackTimestamp()
listener->postDataTimestamp(timestamp, msgType, dataPtr);
listener为AndroidCameraInputListener对象
listener->postDataTimestamp(timestamp, msgType, dataPtr); /* listener在AndroidCameraInput::DoStart()中设置 */
AndroidCameraInputListener::postDataTimestamp(), android_camera_input.cpp
mCameraInput->postWriteAsync(timestamp, dataPtr);
AndroidCameraInput::postWriteAsync()
iFrameQueue.push_back(data);
AndroidCameraInput::Run()
iPeer->writeAsync(PVMI_MEDIAXFER_FMT_TYPE_DATA, 0, ptr,...), /* 将数据写入到iPeer中 *
- android camera recording[转]
- Android Camera fw学习(四)-recording流程分析
- 简单的安卓video recording 以及实时播放(来自:https://developer.android.com/training/camera/videobasics.html#TaskV)
- Recording
- recording
- Recording and Performance testing Android
- (转)android camera 小结
- Spark Camera's recording meter Deconstructing a minimal camera control that combines form and funct
- com.android.camera.Camera
- [转]Android 上Camera分析
- Android camera
- Android Camera
- android camera
- android camera
- Android Camera
- Android Camera
- Android Camera
- Android:Camera
- 使用maven cxf plugin从wsdl生成java类
- MySQL 客户端无法连接 mysqld-nt 问题的解决
- Apache 默认字符集 影响 浏览器 自动选择 页面字符编码 问题!
- JavaScript初学者应注意的七个细节
- Ubuntu 下建立ARM交叉编译工具链(转)
- android camera recording[转]
- .net程序集强名称签名实践
- 云计算的缺陷
- 正则表达式 规则
- 1人30天44587行代码,分享舍得网开发经验
- 在WindowsXP下用VS2005编译live555(2009.11.27)
- 风雨20年:我所积累的20条编程经验
- sql语句的问题
- 水晶报表(crystal report)--回忆