-
Notifications
You must be signed in to change notification settings - Fork 1
API_Index
SweerItTer edited this page Feb 1, 2026
·
3 revisions
utilsCore - 嵌入式视觉系统硬件抽象和多媒体工具库
本文档库提供了 utilsCore 的完整 API 参考文档,涵盖所有头文件和实现文件的详细分析。
| 模块 | 描述 | 文档 |
|---|---|---|
| DMA | DMA-BUF 缓冲区管理,支持零拷贝传输 | DMA 模块 |
| DRM | Direct Rendering Manager 显示管理 | DRM 模块 |
| V4L2 | Video4Linux2 摄像头采集 | V4L2 模块 |
| RGA | Rockchip 2D 图形加速器 | RGA 模块 |
| MPP | Rockchip 媒体处理平台(编解码) | MPP 模块 |
| 模块 | 描述 | 文档 |
|---|---|---|
| utils | 通用工具类(线程池、队列、监控等) | 通用工具模块 |
| sys | 系统监控(CPU、内存) | 系统监控模块 |
| mouse | 鼠标事件监控 | 鼠标模块 |
| 模块 | 描述 | 文档 |
|---|---|---|
| v4l2param | V4L2 参数控制和日志 | V4L2 参数模块 |
-
DmaBuffer - DMA-BUF 缓冲区管理
- DmaBuffer 类:创建、导入、映射 DMA-BUF
- 所有权管理和 RAII 封装
- 使用示例
-
DeviceController - DRM 设备控制器
- DeviceController 类:设备初始化、资源管理
- 热插拔处理机制
- 平面资源查询
-
DrmLayer - DRM 图层管理
- DrmLayer 类:Framebuffer 创建和更新
- LayerProperties 结构体
- Fence 同步机制
-
PlanesCompositor - DRM 平面合成器
- PlanesCompositor 类:多图层合成
- 原子提交和属性更新
- Z-Order 管理
-
DrmBpp - DRM 格式定义
- BPP 映射表
- 平面信息计算
- 格式转换工具
-
README - DRM 模块总览
-
CameraController - V4L2 相机控制器
- CameraController 类:相机采集控制
- Config 配置结构体
- DMA-BUF 和 MMAP 支持
- 回调机制
-
Frame - 帧数据接口
- Frame 类:统一帧数据接口
- FrameMeta 结构体
- 所有权管理
-
FormatTool - V4L2 格式工具
- 格式映射表
- 平面缩放计算
-
Exception - V4L2 异常定义
-
README - V4L2 模块总览
-
ParamControl - V4L2 参数控制
- ParamControl 类:参数查询和设置
- V4L2ControlInfo 结构体
- diffParamInfo 方法
-
ParamLogger - 参数日志
-
ParamProcessor - 异步参数处理
- ParamProcessor 类:后台参数调整
- Callback 回调机制
- 重试机制
-
README - 参数模块总览
-
RgaConverter - RGA 转换器
- RgaConverter 类:格式转换、缩放、填充
- RgaParams 结构体
- 单例模式
-
RgaProcessor - RGA 处理流水线
- RgaProcessor 类:异步 RGA 处理
- Config 配置结构体
- 缓冲池管理
-
FormatTool - RGA 格式工具
- RGA/DRM/V4L2 格式映射
- 字节序转换说明
-
README - RGA 模块总览
- EncoderContext - MPP 编码器上下文
- EncoderCore - MPP 编码核心
- JpegEncoder - JPEG 编码器
- StreamWriter - 流写入器
- MppResourceGuard - MPP 资源管理
- FileTools - 文件工具
- FormatTool - MPP 格式工具
- README - MPP 模块总览
- CpuMonitor - CPU 监控
- MemoryMonitor - 内存监控
- Base - 基础工具
- README - 系统监控模块总览
- AsyncThreadPool - 异步线程池
- FdWrapper - 文件描述符包装
- FenceWatcher - Fence 监控
- FixedSizePool - 固定大小对象池
- Logger - 日志系统
- ObjectsPool - 对象池
- OrderedQueue - 有序队列
- ProgressBar - 进度条
- SafeQueue - 安全队列
- SharedBufferState - 共享缓冲区状态
- SimpleVariant - 变体类型
- ThreadPauser - 线程暂停器
- ThreadUtils - 线程工具
- Types - 类型定义
- UdevMonitor - udev 监控
- ConcurrentQueue - 并发队列
- README - 通用工具模块总览
| 功能 | 模块 | 类 |
|---|---|---|
| DMA-BUF 管理 | DMA | DmaBuffer |
| 显示输出 | DRM | DeviceController, DrmLayer, PlanesCompositor |
| 摄像头采集 | V4L2 | CameraController, Frame |
| 格式转换 | RGA | RgaConverter, RgaProcessor |
| 参数控制 | v4l2param | ParamControl, ParamProcessor |
| 视频编码 | MPP | EncoderCore, JpegEncoder |
| 线程管理 | utils | asyncThreadPool, ThreadPauser |
| 队列管理 | utils | ConcurrentQueue, SafeQueue, OrderedQueue |
| 系统监控 | sys | CpuMonitor, MemoryMonitor |
| 热插拔 | utils | UdevMonitor |
| 头文件 | 功能 | 关键类 |
|---|---|---|
dma/dmaBuffer.h |
DMA-BUF 管理 | DmaBuffer |
drm/deviceController.h |
DRM 设备控制 | DeviceController |
drm/drmLayer.h |
DRM 图层 | DrmLayer |
drm/planesCompositor.h |
DRM 合成 | PlanesCompositor |
v4l2/cameraController.h |
摄像头采集 | CameraController |
v4l2/frame.h |
帧数据 | Frame |
rga/rgaProcessor.h |
RGA 处理 | RgaProcessor |
mpp/jpegEncoder.h |
JPEG 编码 | JpegEncoder |
utils/asyncThreadPool.h |
线程池 | asyncThreadPool |
utils/threadPauser.h |
线程控制 | ThreadPauser |
每个模块文档包含以下部分:
- 模块概述 - 职责、用途、适用场景
- 依赖关系 - 需要的其他模块
- 类/结构体分析 - 每个类的详细说明
-
方法 API 文档 - 包括:
- 方法签名
- 参数说明(输入)
- 返回值说明(输出)
- 所有权归属
- 使用注意事项
- 使用例程(伪代码)
- 数据结构文档 - 关键结构体说明
- 所有权规则总结 - 表格形式
- 线程安全说明 - 同步机制
- 典型使用场景 - 完整示例
- 目标平台: RK356x (ARMv8.2-A)
- 编译环境: Ubuntu 20.04+ (x86_64)
- 工具链: GCC 9.0+ (C++14)
-
依赖库:
- Rockchip MPP SDK
- Rockchip RGA SDK
- libdrm
- libudev
- pthread
# 作为子模块使用
git submodule add https://github.com/SweerItTer/utilsCore.git third_party/utils
git submodule update --init --recursive
# CMakeLists.txt
add_subdirectory(third_party/utils)
target_link_libraries(your_app utils pthread)#include <v4l2/cameraController.h>
int main() {
CameraController::Config cfg;
cfg.device = "/dev/video0";
cfg.width = 1280;
cfg.height = 720;
cfg.format = V4L2_PIX_FMT_NV12;
cfg.use_dmabuf = true;
CameraController camera(cfg);
camera.setFrameCallback([](FramePtr frame) {
printf("Frame: %dx%d\n", frame->meta.w, frame->meta.h);
});
camera.start();
sleep(10);
camera.stop();
return 0;
}文档版本: 1.0
作者: SweerItTer
最后更新: 2026-01-30
主页
API 文档
DMA 模块
DRM 模块
- DRM 模块总览
- DeviceController - DRM 设备控制器
- DrmLayer - DRM 图层管理
- PlanesCompositor - DRM 平面合成器
- DrmBpp - DRM 格式定义
NET 模块
- NET 模块总览
- TcpServer - TCP 服务器
- SocketConnection - Socket 连接管理
- CommandHandler - 命令处理器
- DataPacket - 数据包
V4L2 模块
- V4L2 模块总览
- CameraController - V4L2 摄像头控制器
- Frame - V4L2 帧数据结构
- FormatTool - V4L2 格式工具
- Exception - V4L2 异常类
V4L2Param 模块
- V4L2Param 模块总览
- ParamControl - 参数控制
- ParamLogger - 参数日志
- ParamProcessor - 参数处理器
RGA 模块
- RGA 模块总览
- RgaConverter - RGA 转换器
- RgaProcessor - RGA 处理器
- FormatTool - RGA 格式工具
MPP 模块
- MPP 模块总览
- EncoderContext - 编码器上下文
- EncoderCore - 编码器核心
- JpegEncoder - JPEG 编码器
- StreamWriter - 流写入器
- MppResourceGuard - MPP 资源守护
- FileTools - 文件工具
- FormatTool - 格式工具
Sys 模块
- Sys 模块总览
- CpuMonitor - CPU 监控器
- MemoryMonitor - 内存监控器
- Base - 基础类
Mouse 模块
- Mouse 模块总览
- Watcher - 鼠标监视器
Utils 模块
- Utils 模块总览
- AsyncThreadPool - 异步线程池
- ConcurrentQueue - 并发队列
- FdWrapper - 文件描述符包装器
- FenceWatcher - 围栏监视器
- FixedSizePool - 固定大小对象池
- Logger - 日志记录器
- ObjectsPool - 对象池
- OrderedQueue - 有序队列
- ProgressBar - 进度条
- SafeQueue - 安全队列
- SharedBufferState - 共享缓冲区状态
- SimpleVariant - 简单变体类型
- ThreadPauser - 线程暂停器
- ThreadUtils - 线程工具
- Types - 类型定义
- UdevMonitor - Udev 监视器