brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
cv181x-mediaExpert 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, V…
Independent GitHub snapshot · Automated classification · Original documentation governs
When the user asks about exact API behavior, limits, struct fields, or error diagnosis, first confirm the available context:
If required context is missing:
Use the source order already defined in this skill: SDK headers first, SDK samples second, external material only if it is verified against the headers or samples
All 18 reference files with searchable keywords:
| File | Keywords | Key APIs |
|---|---|---|
references/vi.md | camera, sensor, ISP, MIPI, DEV, PIPE, CHN, video input | CVI_VI_*, CVI_ISP_*, CVI_MIPI_* |
references/vpss.md | scaling, crop, resize, rotate, cvtColor, format conversion, group, channel | CVI_VPSS_*, SendFrame, GetChnFrame |
references/venc.md | encode, H.264, H.265, HEVC, JPEG, MJPEG, bitrate, GOP | CVI_VENC_*, SendFrame, GetStream |
references/vdec.md | decode, JPEG decode, H.264 decode, bitstream | CVI_VDEC_*, SendStream, GetFrame |
references/vb.md | buffer pool, VB, memory, block, pool sizing, CommonPool | CVI_VB_*, GetBlock, ReleaseBlock |
references/sys.md | bind, unbind, init, exit, VI_VPSS_MODE, VPSS_MODE | CVI_SYS_*, Bind, SetVIVPSSMode |
references/vo.md | display, output, LCD, HDMI, layer, framebuffer | CVI_VO_*, SendFrame, ChnShow |
references/rgn.md | OSD, overlay, region, text, graphics, privacy mask | CVI_RGN_*, AttachToChn, SetBitMap |
references/gdc.md | distortion, fisheye, LDC, rotation, mesh, warp | CVI_GDC_*, AddCorrectionTask |
references/audio.md | audio, microphone, speaker, AI, AO, AENC, ADEC, VQE | CVI_AI_*, CVI_AO_*, CVI_AENC_* |
references/ion.md | ION, DMA, cache, flush, invalidate, physical address | CVI_SYS_IonAlloc, IonFlushCache |
references/debug.md | /proc, log, debug, status, diagnostics | /proc/cvitek/*, log level |
references/troubleshooting.md | error, ERR_VPSS_NOBUF, ERR_VB_NOBUF, failure, fix | error codes, solutions |
references/binding-cookbook.md | concurrent, dual pipeline, online, offline, scenario | multi-scenario design |
references/integration-guide.md | integration, cross-module, ownership, lifecycle | system design rules |
references/platform.md | SDK, path, pixel format, CV181X, CV182X, CV180X | platform differences |
references/overview.md | architecture, workflow, pipeline, introduction | system overview |
references/scenarios.md | example, surveillance, doorbell, NVR, application | complete examples |
| Task | Reference |
|---|---|
| Camera capture | references/vi.md |
| Video scaling/crop/rotate | references/vpss.md |
| H.264/H.265/JPEG encode | references/venc.md |
| JPEG/H.264 decode | references/vdec.md |
| Buffer pool planning | references/vb.md |
| Module binding | references/sys.md |
| Video display | references/vo.md |
| OSD/overlay | references/rgn.md |
| Fisheye correction | references/gdc.md |
| Audio capture/playback | references/audio.md |
| DMA memory | references/ion.md |
| Debugging | references/debug.md |
| Error diagnosis | references/troubleshooting.md |
| Error | Reference |
|---|---|
ERR_VPSS_NOBUF (0xc006800e) | references/troubleshooting.md |
ERR_VB_NOBUF | references/vb.md |
ERR_VENC_NOBUF | references/venc.md |
ERR_VI_NOTREADY | references/vi.md |
| Bind failure | references/sys.md |
| Pipeline | References |
|---|---|
| Camera -> VPSS (online) | vi.md, vpss.md, sys.md |
| File -> VPSS (offline) | vpss.md, vb.md |
| JPEG decode -> VPSS | vdec.md, vpss.md |
| VPSS -> VENC | venc.md, sys.md |
| Dual pipeline | references/binding-cookbook.md |
cvi_mpi/include/cvi_mpi/sample/| Mode | Use Case |
|---|---|
VI_OFFLINE_VPSS_ONLINE | Camera pipeline (recommended) |
VI_OFFLINE_VPSS_OFFLINE | Maximum flexibility |
VI_ONLINE_VPSS_ONLINE | Lowest latency |
CVI_SYS_Bind establishes relationshipCVI_VB_GetBlock(), set frame.u32PoolIdOn failure: /proc/cvitek/{sys,vb,vi,vpss,vdec,venc}
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
DEV0 = VPSS_INPUT_MEM -> Offline (SendFrame)
DEV1 = VPSS_INPUT_ISP -> Camera (Bind)
| Input | VpssDev |
|---|---|
| Camera (ISP) | 1 |
| File/Memory | 0 |
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
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