做过海康二次开发的入,求预览回调的实现思路

做过海康二次开发的进,求预览回调的实现思路
这个项目是基于海康DVR或者视频采集卡的SDK完成的
我现在已经实现了基本的录像、预览、抓图等功能,目前我想做的是,在预览开启之前,对图像进行一些处理后再预览出来。比如说在预览画面上增加一个矩形框等

没有做过关于视频流的分析,我的想法是,有没有办法可以对视频流进行分解,PAL的摄像头好像是每秒25帧,是不是可以转化为25副图片?我在部分图片上进行处理(增加矩形),处理完毕以后再在实时预览中显示出来。

这样是否可以呢?
还有就是回调函数是什么意思呢?是不是就是说,我这里处理完毕后再回传回去以后,再让视频显示出来?

主要真心对视频流不了解,希望大家给点思路.

这个项目的最终目的是,我想对视频流中的图像每一秒截取部分帧(一秒有30帧,我可能就需要2帧就好)转化为BMP图片,然后对这个图片进行处理,有矩形框标记的图片转存下来,留待以后分析

求思路,如果有做过的案例,更好,谢谢
------解决方案--------------------
调用NET_DVR_RigisterDrawFun试试

NET_DVR_RigisterDrawFun
预览画面叠加字符和图像,Linux下无此接口。

BOOL NET_DVR_RigisterDrawFun(
  LONG        lRealHandle,
  fDrawFun    cbDrawFun,
  DWORD       dwUser
);
Parameters
lRealHandle 
[in] NET_DVR_RealPlay或NET_DVR_RealPlay_V30的返回值 
cbDrawFun 
[in] 画图回调函数 
dwUser 
[in] 用户数据 
Callback Function
typedef void(CALLBACK *fDrawFun)(
  LONG      lRealHandle,
  HDC       hDc,
  DWORD     dwUser
);
Callback Function Parameters
lRealHandle 
[out] 当前的预览句柄 
hDc 
[out] 画图DC 
dwUser 
[out] 用户数据 
Return Values
TRUE表示成功,FALSE表示失败。获取错误码调用NET_DVR_GetLastError

Remarks
该接口主要完成注册回调函数,获得当前表面的device context。用户可以在这个DC上画图或写字,就好像在窗口的客户区DC上绘图,但这个DC不是窗口客户区的DC,而是播放器DirectDraw里的Off-Screen表面的DC。 

如果调用接口NET_DVR_RealPlay_V30进行预览,参数bBlocked建议置1(TRUE),这样预览接口返回成功即可该调用该接口。如果参数bBlocked置0,预览接口返回成功但图像还未正常显示,该接口会返回失败,获取错误号为12(调用次序错误)。