摄像头在正常运行显示图像时,monitor中时不时会出现 bh 0x001d2d05 白色字样,此时该帧图像会显示花掉,monitor显示如下:
I (551899) camera_httpd: MJPG: 32000B 41ms (24.4fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
I (551939) camera_httpd: MJPG: 31942B 40ms (25.0fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
I (551979) camera_httpd: MJPG: 31733B 35ms (28.6fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
I (552019) camera_httpd: MJPG: 32000B 43ms (23.3fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
I (552059) camera_httpd: MJPG: 31813B 43ms (23.3fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
I (552099) camera_httpd: MJPG: 31831B 35ms (28.6fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
I (552139) camera_httpd: MJPG: 31443B 43ms (23.3fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
I (552179) camera_httpd: MJPG: 31740B 34ms (29.4fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
bh 0x001d2d05
I (552219) camera_httpd: MJPG: 31320B 47ms (21.3fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
I (552349) camera_httpd: MJPG: 31571B 123ms (8.1fps), AVG: 43ms (23.3fps), 0+0+0+0=0 0
I (552369) camera_httpd: MJPG: 31199B 20ms (50.0fps), AVG: 42ms (23.8fps), 0+0+0+0=0 0
查看代码,出现该提示字样在 esp-who\components\esp32-camera\driver\camera.c 这个文件中的
static void IRAM_ATTR dma_filter_buffer(size_t buf_idx)
{
//no need to process the data if frame is in use or is bad
if(s_state->fb->ref || s_state->fb->bad) {
return;
}
//check if there is enough space in the frame buffer for the new data
size_t buf_len = s_state->width * s_state->fb_bytes_per_pixel / s_state->dma_per_line;
size_t fb_pos = s_state->dma_filtered_count * buf_len;
if(fb_pos > s_state->fb_size - buf_len) {
//size_t processed = s_state->dma_received_count * buf_len;
//ets_printf("[%s:%u] ovf pos: %u, processed: %u\n", __FUNCTION__, __LINE__, fb_pos, processed);
return;
}
//convert I2S DMA buffer to pixel data
(*s_state->dma_filter)(s_state->dma_buf[buf_idx], &s_state->dma_desc[buf_idx], s_state->fb->buf + fb_pos);
//first frame buffer
if(!s_state->dma_filtered_count) {
//check for correct JPEG header
if(s_state->sensor.pixformat == PIXFORMAT_JPEG) {
uint32_t sig = *((uint32_t *)s_state->fb->buf) & 0xFFFFFF;
if(sig != 0xffd8ff) {
ets_printf("bh 0x%08x\n", sig);
s_state->fb->bad = 1;
return;
}
}
//set the frame properties
s_state->fb->width = resolution[s_state->sensor.status.framesize].width;
s_state->fb->height = resolution[s_state->sensor.status.framesize].height;
s_state->fb->format = s_state->sensor.pixformat;
uint64_t us = (uint64_t)esp_timer_get_time();
s_state->fb->timestamp.tv_sec = us / 1000000UL;
s_state->fb->timestamp.tv_usec = us % 1000000UL;
}
s_state->dma_filtered_count++;
}
能帮我分析处理下形成这个问题的原因吗?感谢!
图像时不时出现一帧花屏,出现频率还很高,请问是哪里出问题了吗?
Re: 图像时不时出现一帧花屏,出现频率还很高,请问是哪里出问题了吗?
都一天了,没人理我~~~好难过
Re: 图像时不时出现一帧花屏,出现频率还很高,请问是哪里出问题了吗?
都一周了,没人理我~~~好难过
Re: 图像时不时出现一帧花屏,出现频率还很高,请问是哪里出问题了吗?
都两周了,没人理我~~~好难过
Who is online
Users browsing this forum: No registered users and 15 guests