Android CamerHal dump 数据流

博客介绍了Rockchip平台,基于Android 6.0系统、Kernel 3.10.92的相机数据dump相关内容。默认关闭,通过设置property打开,需自行创建/data/下的dump目录并设置权限,dump数据可直接查看,每次设置property会dump一帧,使用UVC Camera,还提及了相关文件改动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

说明:
1. 默认关闭,通过设置property debug.camera.preview为1 来打开
2. /data/下的dump目录需要自己创建,权限设置为777或者是media用户
3. dump出来的数据不用工具直接可以查看
4. 每设置一次property会dump一帧,文件名包含分辨率以及第几帧
5. 用是UVC Camera,上来的就是mjpeg(yuyv)数据流
这里写图片描述
这里写图片描述

改动如下:
hardware/rockchip/camera/camerahal/CameraAdapter.cpp

 
 

diff --git a/CameraHal/CameraAdapter.cpp b/CameraHal/CameraAdapter.cpp
index 3a86e8c..50e4dd7 100755
--- a/CameraHal/CameraAdapter.cpp
+++ b/CameraHal/CameraAdapter.cpp
@@ -666,7 +666,6 @@ int CameraAdapter::getFrame(FramInfo_s** tmpFrame){
      if(mPreviewFrameIndex < FILTER_FRAME_NUMBER || mPreviewFrameIndex % 2 == 0)
 #endif
 /*Kris, 170210, reduce fps to lower cpu usage. }*/
-
     {
         LOG2("%s:filter frame %d",__FUNCTION__,mPreviewFrameIndex);
        mCamDriverStreamLock.lock();
@@ -699,6 +698,25 @@ int CameraAdapter::getFrame(FramInfo_s** tmpFrame){

     *tmpFrame = &(mPreviewFrameInfos[cfilledbuffer1.index]);
     LOG2("%s(%d): fill  frame info success",__FUNCTION__,__LINE__);
+
+/*Kris, 170719, add support to dump preview data dynamicly. {*/
+    char value[PROPERTY_VALUE_MAX];
+    char filename[40];
+    property_get("debug.camera.preview", value, NULL);
+    if (atoi(value) > 0) {
+        sprintf(filename, "/data/dump/raw_%dx%d_%d.jpg",mCamDrvWidth,mCamDrvHeight,mPreviewFrameIndex);
+        FILE *debug_preview_fp = fopen(filename,"wb");
+        if(!debug_preview_fp) {
+            ALOGE("Create %s failed(%d, %s)",filename,debug_preview_fp, strerror(errno));
+        } else {
+            ALOGI("Dump preview data to file %s", filename);      
+            fwrite(mPreviewFrameInfos[cfilledbuffer1.index].vir_addr ,mPreviewFrameInfos[cfilledbuffer1.index].frame_siz
+            fclose(debug_preview_fp);
+        }
+        property_set("debug.camera.preview", "0");
+    }
+/*Kris, 170719, add support to dump preview data dynamicly. }*/
+
  //   if (gLogLevel == 2)
   //      debugShowFPS();
 getFrame_out:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值