Add zero-copy camera pipeline sample using NDK Camera2 and OpenGL ES
- Dominant language
- C++
- Stars
- 10.5k
- Forks
- 4.3k
- PR merge metrics
- No merged PRs in 30d
Description
Hi NDK Team,
I would like to propose adding a new sample demonstrating a high-performance, zero-copy camera rendering pipeline using the NDK camera2 APIs, AImageReader, and OpenGL ES.
**Motivation**
While the existing camera sample effectively demonstrates basic Native Camera2 usage, developers frequently face bottlenecks when attempting low-latency preview rendering, zero-copy frame processing, and synchronization between camera capture streams and the rendering thread.
**What the Sample Demonstrates**
- Zero-Copy Architecture: Leveraging native buffers (AHardwareBuffer / AImageReader) with OpenGL ES external textures (GL_OES_EGL_image_external) to avoid CPU-memory copy overhead.
-
- Low-Latency Rendering: Clean separation of camera capture threads and rendering loops using standard Android NDK synchronization primitives.
-
- Modern Best Practices: Minimal overhead, leak-free buffer recycling, and lifecycle-aware lifecycle management purely in C++ and NDK.
I have already implemented a working prototype in a standalone repository:
[https://github.com/MohammadNouri5700/zerostallcam](https://github.com/MohammadNouri5700/zerostallcam)
**Question**
Would the maintainers be open to accepting this as a new standalone sample in android/ndk-samples?
If so, I am ready to refactor the project to strictly align with this repository's structure, Gradle/CMake conventions, documentation style, and Google CLA requirements before submitting a Pull Request.
**Thank you for your time and feedback!**
Contributor guide
Research direction
Review the existing camera sample in android/ndk-samples and compare the standalone zerostallcam prototype linked in the issue. Check the repository's Gradle, CMake, documentation, and Google CLA conventions first; done means a self-contained sample demonstrating the proposed zero-copy camera-to-OpenGL ES pipeline and conforming to those project conventions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, cpp
- Domain
- build-system, computer-graphics, mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100