一、 DVR RDK 整体架构
二、 McFW API
从功能上划分四个子系统:
VCAP –Video Capture
VDIS –Video Display
VENC –Video Encode
VDEC –Video Display
VCAP API –ti_vcap.h
VDIS API –ti_vdis.h
VENC API –ti_venc.h
VDEC API –ti_vdec.h
VSYS API –ti_vsys.h
VSYS 功能特性:
初始化,建立,删除特定用例;
分配和释放连续 buffer;
注册特定 event handlers。
流程示例:
启动阶段
// Set Default params
Vsys_param_init(&vsysParams);
Vcap_param_init(&vcapParams);
Vdis_param_init(&vdisParams);
Venc_param_init(&vencParams);
Vdec_param_init(&vdecParams);
// init sub-systems
Vsys_init(&vsysParams);
Vcap_init(&vcapParams);
Vdis_init(&vdisParams);
Venc_init(&vencParams);
Vdec_init(&vdecParams);
// create use-case
Vsys_create();
// register user callbacks
Venc_registerCallback(. . .);
Vsys_registerEventHandler(. . .);
// start sub-systems
Vdis_start();
Venc_start();
Vdec_start();
Vcap_start();
执行阶段
// call McFW APIs as required
Vsys_allocBuf(. . .);
Vcap_setFrameRate(. . .);
Vcap_setDynamicParamChn(. . .);
Venc_setDynamicParam(. . .);
Vdis_setMosaicParams(. . .);
Venc_getBitstreamBuffer(. . .);
Venc_releaseBitstreamBuffer(. . .);
Vdec_requestBitstreamBuffer(. . .);
Vdec_putBitstreamBuffer(. . .);
Vsys_freeBuf(. . .);
关闭阶段
// Stop subsystem’s
Vcap_stop();
Vdis_stop();
Venc_stop();
Vdec_stop();
// delete use-case
Vsys_delete();
// exit sub-system
Vcap_exit();
Vdis_exit();
Venc_exit();
Vdec_exit();
Vsys_exit();
三、 Link API
Link Interrface
包括:
link API ,用来配置和控制 link
Inter link API 用来两个 link 间交换 frame
Link Output Queue 被别的 link 用来交换 frame 的 queue
其中
LinkAPI 包括:
System
Link API 使得用户可以创建、控制和连接各个 links。
在视频处理流程中,一个 link 是一个基本的处理单元 。比如:capture, display, DEI, Noise Filter,
encode, decode 都可以是一个 link。
一个 link 包含一个与 message box 偶联的 BIOS6/Linux thread,各个 link 彼此并行。
message box 使得应用程序与 link、link 与 link 之间可以通信。
Link 间可以交换 video frames 和 bit streams 。
不同处理器间可以直接进行帧交换,而不需要 HOST A8 的介入。
McFW API 可以使用 Link API 创建一个 “chain” 或者 use-case
Link 列表
M3 Video
Encoder
Decoder
M3 Vpss
Capture
Display
Noise Filter
Scalar
De-Interlace
Grpx
SW Mosaic
IPC Links
IPC M3 In/Out
IPC Frames In/Out
IPC Bitstream In/Out
Connector links
Merge
Dup
Select
System Links
M3 VPSS
M3 Video
Dsp
DSP
Alg Link
OSD (On Screen Display)
SCD (Scene change Detection)
Link 分布