Skip to content

API_Index

SweerItTer edited this page Feb 1, 2026 · 3 revisions

utilsCore API 文档

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 参数模块

📚 模块详细文档

DMA 模块

  • DmaBuffer - DMA-BUF 缓冲区管理
    • DmaBuffer 类:创建、导入、映射 DMA-BUF
    • 所有权管理和 RAII 封装
    • 使用示例

DRM 模块

  • DeviceController - DRM 设备控制器

    • DeviceController 类:设备初始化、资源管理
    • 热插拔处理机制
    • 平面资源查询
  • DrmLayer - DRM 图层管理

    • DrmLayer 类:Framebuffer 创建和更新
    • LayerProperties 结构体
    • Fence 同步机制
  • PlanesCompositor - DRM 平面合成器

    • PlanesCompositor 类:多图层合成
    • 原子提交和属性更新
    • Z-Order 管理
  • DrmBpp - DRM 格式定义

    • BPP 映射表
    • 平面信息计算
    • 格式转换工具
  • README - DRM 模块总览

V4L2 模块

  • CameraController - V4L2 相机控制器

    • CameraController 类:相机采集控制
    • Config 配置结构体
    • DMA-BUF 和 MMAP 支持
    • 回调机制
  • Frame - 帧数据接口

    • Frame 类:统一帧数据接口
    • FrameMeta 结构体
    • 所有权管理
  • FormatTool - V4L2 格式工具

    • 格式映射表
    • 平面缩放计算
  • Exception - V4L2 异常定义

  • README - V4L2 模块总览

V4L2 参数模块

  • ParamControl - V4L2 参数控制

    • ParamControl 类:参数查询和设置
    • V4L2ControlInfo 结构体
    • diffParamInfo 方法
  • ParamLogger - 参数日志

  • ParamProcessor - 异步参数处理

    • ParamProcessor 类:后台参数调整
    • Callback 回调机制
    • 重试机制
  • README - 参数模块总览

RGA 模块

  • RgaConverter - RGA 转换器

    • RgaConverter 类:格式转换、缩放、填充
    • RgaParams 结构体
    • 单例模式
  • RgaProcessor - RGA 处理流水线

    • RgaProcessor 类:异步 RGA 处理
    • Config 配置结构体
    • 缓冲池管理
  • FormatTool - RGA 格式工具

    • RGA/DRM/V4L2 格式映射
    • 字节序转换说明
  • README - RGA 模块总览

MPP 模块

系统监控模块

鼠标模块

通用工具模块


🔗 快速导航

按功能查找

功能 模块
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

📖 文档格式说明

每个模块文档包含以下部分:

  1. 模块概述 - 职责、用途、适用场景
  2. 依赖关系 - 需要的其他模块
  3. 类/结构体分析 - 每个类的详细说明
  4. 方法 API 文档 - 包括:
    • 方法签名
    • 参数说明(输入)
    • 返回值说明(输出)
    • 所有权归属
    • 使用注意事项
    • 使用例程(伪代码)
  5. 数据结构文档 - 关键结构体说明
  6. 所有权规则总结 - 表格形式
  7. 线程安全说明 - 同步机制
  8. 典型使用场景 - 完整示例

🛠️ 使用指南

依赖要求

  • 目标平台: 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 模块

NET 模块

V4L2 模块

V4L2Param 模块

RGA 模块

MPP 模块

Sys 模块

Mouse 模块

Utils 模块

Clone this wiki locally