Awesome-omni-skill cv181x-media
Expert guide for CV181X/CV182X/CV180X (SG200X) multimedia development using CVI MPI API. Use this skill when working with: VI (video input/camera/ISP), VPSS (video processing/scaling/crop), VENC (H.264/H.265/JPEG encoding), VDEC (decoding), VB (video buffer pools), SYS binding, or any CVI_* API calls. Covers camera pipeline setup, offline VPSS processing, VB pool planning, and error diagnosis (ERR_VPSS_NOBUF, ERR_VB_NOBUF). API details in references/.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/content-media/cv181x-media" ~/.claude/skills/diegosouzapw-awesome-omni-skill-cv181x-media-804cd9 && rm -rf "$T"
manifest:
skills/content-media/cv181x-media/SKILL.mdsource content
CV181X/CV182X/CV180X Multimedia Skill
Complete Reference Index
All 18 reference files with searchable keywords:
| File | Keywords | Key APIs |
|---|---|---|
| camera, sensor, ISP, MIPI, DEV, PIPE, CHN, video input | , , |
| scaling, crop, resize, rotate, cvtColor, format conversion, group, channel | , , |
| encode, H.264, H.265, HEVC, JPEG, MJPEG, bitrate, GOP | , , |
| decode, JPEG decode, H.264 decode, bitstream | , , |
| buffer pool, VB, memory, block, pool sizing, CommonPool | , , |
| bind, unbind, init, exit, VI_VPSS_MODE, VPSS_MODE | , , |
| display, output, LCD, HDMI, layer, framebuffer | , , |
| OSD, overlay, region, text, graphics, privacy mask | , , |
| distortion, fisheye, LDC, rotation, mesh, warp | , |
| audio, microphone, speaker, AI, AO, AENC, ADEC, VQE | , , |
| ION, DMA, cache, flush, invalidate, physical address | , |
| /proc, log, debug, status, diagnostics | , log level |
| error, ERR_VPSS_NOBUF, ERR_VB_NOBUF, failure, fix | error codes, solutions |
| concurrent, dual pipeline, online, offline, scenario | multi-scenario design |
| integration, cross-module, ownership, lifecycle | system design rules |
| SDK, path, pixel format, CV181X, CV182X, CV180X | platform differences |
| architecture, workflow, pipeline, introduction | system overview |
| example, surveillance, doorbell, NVR, application | complete examples |
Quick Lookup
By Task
| Task | Reference |
|---|---|
| Camera capture | |
| Video scaling/crop/rotate | |
| H.264/H.265/JPEG encode | |
| JPEG/H.264 decode | |
| Buffer pool planning | |
| Module binding | |
| Video display | |
| OSD/overlay | |
| Fisheye correction | |
| Audio capture/playback | |
| DMA memory | |
| Debugging | |
| Error diagnosis | |
By Error Code
| Error | Reference |
|---|---|
| |
| |
| |
| |
| Bind failure | |
By Pipeline
| Pipeline | References |
|---|---|
| Camera -> VPSS (online) | , , |
| File -> VPSS (offline) | , |
| JPEG decode -> VPSS | , |
| VPSS -> VENC | , |
| Dual pipeline | |
Private Operating Procedures
1. Authoritative Source Order
- SDK headers in
cvi_mpi/include/ - SDK samples in
cvi_mpi/sample/ - Never: external repos without header verification
2. VPSS Input Ownership
- VPSS group for ONE input type: ISP or MEM
- Never switch between Bind and SendFrame at runtime
- Concurrent ISP + MEM: separate groups and VB pools
3. VI-VPSS Mode Selection
| Mode | Use Case |
|---|---|
| Camera pipeline (recommended) |
| Maximum flexibility |
| Lowest latency |
4. Binding Requirements
- Control plane:
establishes relationshipCVI_SYS_Bind - Data plane: Mode setting determines data flow
- Binding required even in ISP direct mode
- Unbind before stop; bind after start
5. Camera Readiness
- Warm up pipeline after start
- Discard first few frames before capture
6. VENC SendFrame Memory
- Must use VB pool, not raw ION
- Use
, setCVI_VB_GetBlock()frame.u32PoolId
7. Diagnostics
On failure:
/proc/cvitek/{sys,vb,vi,vpss,vdec,venc}
Module Init Order
1. CVI_VB_SetConfig + CVI_VB_Init 2. CVI_SYS_Init 3. CVI_SYS_SetVIVPSSMode 4. CVI_SYS_SetVPSSModeEx 5. VI: sensor -> mipi -> dev -> pipe -> isp -> chn 6. VPSS: CreateGrp -> SetChnAttr -> EnableChn -> StartGrp 7. CVI_SYS_Bind 8. Warmup
VPSS Mode Reference
VPSS_MODE_DUAL
DEV0 = VPSS_INPUT_MEM -> Offline (SendFrame) DEV1 = VPSS_INPUT_ISP -> Camera (Bind)
VpssDev Selection
| Input | VpssDev |
|---|---|
| Camera (ISP) | 1 |
| File/Memory | 0 |
VB Pool Sizing
Size = COMMON_GetPicBufferSize(w, h, fmt, DATA_BITWIDTH_8, COMPRESS_MODE_NONE, 0) Counts: Camera=4-6, VPSS=3-4, Encode=2-3, Decode=4-6
Debug Commands
cat /proc/cvitek/sys | grep -A 10 "BIND RELATION" cat /proc/cvitek/vb | grep -A 20 "PoolId" cat /proc/cvitek/vi | grep -A 5 "VI CHN STATUS" cat /proc/cvitek/vpss | grep -A 20 "WORK STATUS" echo "VI=7" > /proc/cvitek/log
Version: 2.4.0 | Updated: 2026-01-20 | Platform: SG200X