Skip to content

fix(#7): ESP32-CAM 최신 프레임 캡처 모드 적용#8

Merged
AI-WonYJ merged 1 commit into
developfrom
fix/7-camera-buffer-lag
Jun 30, 2026
Merged

fix(#7): ESP32-CAM 최신 프레임 캡처 모드 적용#8
AI-WonYJ merged 1 commit into
developfrom
fix/7-camera-buffer-lag

Conversation

@AI-WonYJ

Copy link
Copy Markdown
Contributor

🍀 이슈 번호


📝 변경 사항

  • 카메라 grab mode를 CAMERA_GRAB_LATEST로 변경
  • 최신 프레임 갱신을 위해 frame buffer 수를 1개에서 2개로 조정
  • ESP32-CAM이 기존 버퍼에 남아 있던 과거 프레임이 아닌 최신 프레임을 우선 반환하도록 설정 변경
  • PSRAM 기반 frame buffer 할당을 위해 ESP-IDF 설정 변경 사항 확인

🎯 목적

ESP32-CAM에서 서버로 이미지를 전송할 때, 현재 화면이 아니라 과거 이미지가 업로드되는 문제가 있었습니다.

이는 카메라 드라이버의 frame buffer에 남아 있던 이전 프레임이 반환되어 서버로 전송되는 것으로 추정되며, 실시간 인원 카운팅 정확도에 영향을 줍니다.

이번 변경에서는 Espressif 공식 문서의 capture mode 설명을 참고하여, 기존 프레임보다 최신 프레임을 우선적으로 가져올 수 있도록 CAMERA_GRAB_LATEST 모드를 적용했습니다.

📂 적용 범위

  • embedded/ssccam/main/camera_manager.c

    • grab_mode 설정 변경
    • fb_count 설정 변경

🖥️ 주요 코드 설명

.fb_count = 2,
.grab_mode = CAMERA_GRAB_LATEST

기존 설정에서는 frame buffer가 비어 있을 때만 새 프레임을 받는 CAMERA_GRAB_WHEN_EMPTY 방식을 사용했습니다.

이번 변경에서는 백그라운드 드라이버가 최신 프레임을 계속 갱신하도록 CAMERA_GRAB_LATEST를 적용했습니다.
또한 CAMERA_GRAB_LATEST 모드에서는 드라이버가 frame buffer 하나를 점유하므로, 애플리케이션 레이어에서 프레임을 정상적으로 가져올 수 있도록 fb_count를 2로 조정했습니다.


📋 체크리스트

  • Merge 대상 브랜치가 올바른가?
  • 코드가 정상적으로 빌드되는가?
  • 최종 코드가 에러 없이 잘 동작하는가?
  • 전체 변경사항이 500줄을 넘지 않는가?

📌 참고 사항

- 카메라 grab mode를 CAMERA_GRAB_LATEST로 변경
- 최신 프레임 갱신을 위해 frame buffer 수를 2개로 조정
- 하드웨어 동작 검증 전
- 참고: https://docs.espressif.com/projects/esp-faq/en/latest/application-solution/camera-application.html
@AI-WonYJ AI-WonYJ self-assigned this Jun 30, 2026
@AI-WonYJ AI-WonYJ added the bug Something isn't working label Jun 30, 2026
@AI-WonYJ AI-WonYJ requested a review from Copilot June 30, 2026 07:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

ESP32-CAM에서 이미지 캡처 시 프레임 버퍼에 남아 있던 과거 프레임이 업로드되는 문제(#7)를 완화하기 위해, 카메라 드라이버가 “가장 최신 프레임”을 우선 반환하도록 캡처 모드를 조정하는 PR입니다.

Changes:

  • 카메라 grab mode를 CAMERA_GRAB_WHEN_EMPTYCAMERA_GRAB_LATEST로 변경
  • CAMERA_GRAB_LATEST 동작을 위해 frame buffer 개수를 fb_count = 1fb_count = 2로 변경

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@AI-WonYJ AI-WonYJ merged commit 79ec6c1 into develop Jun 30, 2026
1 check passed
@AI-WonYJ AI-WonYJ deleted the fix/7-camera-buffer-lag branch June 30, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: ESP32-CAM 캡처 시 현재 화면이 아닌 과거(버퍼) 이미지가 전송되는 문제

2 participants