Skip to content

Instantly share code, notes, and snippets.

@francioshu
Last active November 17, 2021 08:37
Show Gist options
  • Save francioshu/51d9fe0996b7800b7c92f20ebacca4c5 to your computer and use it in GitHub Desktop.
Save francioshu/51d9fe0996b7800b7c92f20ebacca4c5 to your computer and use it in GitHub Desktop.
3383_patch

保存YUV原图patch

francis:~/3383(master-isp-1.66)$ git d external/uvc_app/mpp_enc_cfg.conf
diff --git i/external/uvc_app/mpp_enc_cfg.conf w/external/uvc_app/mpp_enc_cfg.conf
index 4785902bd..ee0a23dc9 100755
--- i/external/uvc_app/mpp_enc_cfg.conf
+++ w/external/uvc_app/mpp_enc_cfg.conf
@@ -10,10 +10,10 @@
                 "force_idr_period": 5,
                 "frc_fps": 0,
                 "frc_mode": 2,
-                "stream_save_dir": "tmp",
+                "stream_save_dir": "data",
                 "rotation": 0,
                 "subsection": 4,
-                "debug": 1
+                "debug": 0
             },
             "param_change": {
 
francis:~/3383(master-isp-1.66)$ git d external/uvc_app/uvc/uvc_encode.cpp
diff --git i/external/uvc_app/uvc/uvc_encode.cpp w/external/uvc_app/uvc/uvc_encode.cpp
index 15a1ade78..982ab90ce 100755
--- i/external/uvc_app/uvc/uvc_encode.cpp
+++ w/external/uvc_app/uvc/uvc_encode.cpp
@@ -228,7 +228,7 @@ bool uvc_encode_process(struct uvc_encode *e, void *virt, struct MPP_ENC_INFO *i
     {
         if (e->mpi_data->fp_input)
         {
-            // fwrite(virt, 1, info->size, e->mpi_data->fp_input);
+            fwrite(virt, 1, info->size, e->mpi_data->fp_input);
 #if RK_MPP_DYNAMIC_DEBUG_ON
             if (e->mpi_data->common_cfg.debug && access(RK_MPP_DYNAMIC_DEBUG_IN_CHECK, 0))
             {
francis:~/3383(master-isp-1.66)$

获取统计亮度信息

void get3AStats() { DEBUG_3361("%s \n", func); rk_aiq_isp_stats_t stats; rk_aiq_uapi_sysctl_get3AStats(db_aiq_ctx, &stats);

for (int i = 0; i < 225; i++)
    DEBUG_3361("blk_luma[%d]=%d \n", i,
               stats.aec_stats.ae_data.chn[0].rawae_big.channelg_xy[i]);

}

// static int getEnvLight(rk_aiq_isp_stats_t stats,int indexStart){ // int value,num,sum; // for(int i = 0; i < indexStart;i++){ // sum += stats.aec_stats.ae_data.chn[0].rawae_big.channelg_xy[i]; // num++; // DEBUG_3361("%s, channelg_xy[%d]=%d \n", func,i, stats.aec_stats.ae_data.chn[0].rawae_big.channelg_xy[i]); // } // return sum/num; // }

void get3AStats() { int sunG = 0; int num = 0; DEBUG_3361("%s \n", func); rk_aiq_isp_stats_t stats; rk_aiq_uapi_sysctl_get3AStats(db_aiq_ctx, &stats);

for (int i = 0; i < 225; i++){
    int value = stats.aec_stats.ae_data.chn[0].rawae_big.channelg_xy[i];
    DEBUG_3361("%s , light =========>   value[%d] = %d \n", __func__,i,value);
    sunG += value;
    num++;
}
DEBUG_3361("%s , light =========>   avg = %d \n", __func__,sunG/num);

}

    if (lightValue > lastLight){
                    for (int i = lastLight; i <= lightValue; i=i+20){
                        char cmd[50];
                        DEBUG_3361("%s, step :  %d \n",__func__,i);
                        sprintf(cmd, "echo %d > /sys/class/pwm_led_cls/pwm_anker_led/pwm_cold_led", i);
                        system(cmd);
                        usleep(200);
                    }
                }else{
                    for (int i = lastLight; i >= lightValue; i=i-20){
                        char cmd[50];
                        DEBUG_3361("%s, step :  %d \n",__func__,i);
                        sprintf(cmd, "echo %d > /sys/class/pwm_led_cls/pwm_anker_led/pwm_cold_led", i);
                        system(cmd);
                        usleep(200);
                    }
                }
                lightValue = lastLight;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment