ILMVUserCallback3接口

ILMVUserCallback3是用户自定义的接口。方法的put_ReceiveProcObj方法来注册ILMVCallback接口。这个接口有一个方法。

接口方法:

HRESULT ReceiveProc (long long pData, long lWidth, long lHeight, long lBitCount, long lSize, long bTopDown, long lFOURCC)

参数

pData 一个指向帧数据的有效指针,传递给一个LONGLONG (__int64)变量。
lWidth 边框宽度。
lHeight 框架的高度。
lBitCount 帧的每像素位。
lSize 帧缓冲区的大小,以字节为单位。
bTopDown 值,该值指示传递的缓冲区(pData)中的图像是自上而下(1)还是自下而上(0)。
lFOURCC 代表帧的媒体格式的FOURCC代码值。0表示RGB格式。

描述

属性接收到的每一帧都调用此方法视频回调过滤器.用户可以通过修改帧的数据来修改每一帧。请注意,每个帧的内存都属于回调过滤器。如果您希望保留帧数据,则必须对其进行复制。用户回调函数可以通过用户回调函数返回代码来指定在回调之后是否继续使用该帧。

返回

在处理帧数据后,这个函数可以返回以下值之一:

价值 意义
VDCALBK_ERR_OK 成功。过滤器继续正常工作,传递经过处理的帧。
VDCALBK_ERR_DROP 请勿交付框架。过滤器将丢弃帧,并正常地继续处理流中的下一帧。
VDCALBK_ERR_DELIVERLASTFRAME 交付前一帧(交付的最后一帧)。过滤器保存它向下游传递的最后一帧,以防需要多次传递相同的帧。

C/ c++用户注意:你可以简单地将pData转换为指向unsigned char的指针。

.NET用户注意事项:关于如何在.NET应用程序中使用帧数据的更多示例,请参阅ILMAUserCallback3接口

.NET用户注意事项:这些回调函数在. net中是作为一个没有返回值的函数实现的。为了能够从应用程序返回VDCALBK_ERR_OK以外的值,你需要在从ReceiveProc返回之前抛出HRESULT异常。这样做的一种方法是如下面的例子:

公共ReturnValueException:异常公共HResultValue ReturnValueException(对象)HResult = (int) HResultValue;公共LEADCallbackPlay: LMVCallbackLib。ILMVUserCallback3公共无效ReceiveProc (intpData,intlWidth,intlHeight,intlBitCount,intlSize,intbTopDown,intlFOURCC)你需要只是一个错误如果你想要返回除了VDCALBK_ERR_OKReturnValueException (LMVCallbackLib.VdCalBkErrConstants.VDCALBK_ERR_DROP);

LEADTOOLS过滤C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。