Media CAPL Functions
回调&基本函数
1. Media CAPL 函数概述
CAPL 函数 >> Media CAPL 函数
媒体(MEDIA)
仅在带有 .Ethernet 选项时可用。
使用 CAPL 函数需包含 AVB_IL.DLL。
本页内容
- 更多主题
- 回调函数
- 通用函数
- 媒体接收器函数
- 媒体源函数
- 媒体类型函数
- 多路复用器
- 接收器写入器函数
- 源读取器函数
- 源读取器/接收器写入器函数
回调函数 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| OnMediaRead | 当源读取器上的异步读取操作完成时触发此回调。 |
通用函数 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| MediaGetLastError | 获取调用 CAPL 程序的 Media API 最后错误代码值。 |
| MediaGetProperty | 获取用于配置对象行为的属性。 |
| MediaSetProperty | 设置用于配置对象行为的属性。 |
| MediaGetPropertyRatio | 获取值为比率的属性。 |
| MediaSetPropertyRatio | 将比率设置为 64 位属性值。 |
| MediaGetPropertySize | 获取值为尺寸(以宽度和高度表示)的属性。 |
| MediaSetPropertySize | 将宽度和高度设置为单个 64 位属性值。 |
媒体接收器函数 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| MediaCreateAudioRenderer | 创建流式音频渲染器(SAR),即用于在输出设备中渲染音频的媒体接收器。 |
| MediaReleaseAudioRenderer | 释放音频渲染器。 |
媒体源函数 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| MediaCreateAudioCapturer | 创建流式音频捕获器,即用于从输入设备捕获音频的媒体源。 |
| MediaEnumAudioCapturers | 枚举音频捕获设备列表。 |
| MediaReleaseAudioCapturer | 释放音频捕获器。 |
| MediaEnumVideoCapturers | 枚举视频捕获设备列表。 |
| MediaReleaseVideoCapturer | 释放视频捕获器。 |
媒体类型函数 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| MediaReleaseMediaType | 释放通过 MediaGetMediaType 获取的媒体类型。 |
| MediaCreateMediaType | 创建空媒体类型。 |
多路复用器 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| MediaCreateMultiplexer | 为提供的输出媒体子类型创建多路复用器。 |
| MediaGetOutputType | 获取多路复用器在指定索引处生成的输出流的媒体类型。 |
| MediaProcessInput | 向多路复用器的输入流传递数据。 |
| MediaProcessOutput | 从当前输入数据生成输出。 |
| MediaReleaseMultiplexer | 释放多路复用器。 |
| MediaSetInputType | 为多路复用器的指定索引设置输入媒体类型。 |
接收器写入器函数 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| MediaCreateSinkWriterFromMediaSink | 从媒体接收器创建源读取器。 |
| MediaCreateSinkWriterFromURL | 从 URL 创建接收器写入器。 |
| MediaReleaseSinkWriter | 释放接收器写入器。 |
| MediaWrite | 向接收器写入器传递样本数据。 |
源读取器/接收器写入器函数 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| MediaGetMediaType | 获取源读取器的媒体类型。 |
| MediaSetMediaType | 为源读取器或接收器写入器设置媒体类型。 |
源读取器函数 [▲ 返回]
| 函数名 | 简短描述 |
|---|---|
| MediaCreateSourceReaderFromMediaSource | 从媒体源创建源读取器。 |
| MediaCreateSourceReaderFromURL | 从 URL 创建源读取器。 |
| MediaRead | 从媒体源读取样本数据。 |
| MediaReleaseSourceReader | 释放源读取器。 |
2. MediaGetLastError
CAPL 函数 >> Media API >> MediaGetLastError
函数
语法
c
dword MediaGetLastError();
功能
获取调用 CAPL 程序的 Media API 最后错误代码值。此代码表示 Windows HRESULT 值,通常在 Windows Media Foundation 保留的取值范围内(参见错误代码)。
参数
无
返回值
错误代码
可用性
- 版本:8.2 SP2
- 限制:Ethernet
- 测量设置:---
- 仿真/测试设置:•
示例
c
dword retVal;
dword listenerHandle;
// 打开监听器
listenerHandle = AvbOpenListener();
// 检查上次函数是否成功执行
if ((retVal = AvbGetLastError()) != 0)
{
write("AVB IL 错误发生:错误代码:%d", retVal);
}
3. MediaGetProperty
CAPL 函数 >> Media API >> MediaGetProperty
函数
语法
c
long MediaGetProperty(dword objHandle, char propertyName[], dword& value); // 形式 1
long MediaGetProperty(dword objHandle, char propertyName[], dword length, char value[]); // 形式 2
long MediaGetProperty(dword objHandle, char propertyName[], qword& value); // 形式 3
long MediaGetProperty(dword objHandle, char propertyName[], dword length, byte value[]); // 形式 4
功能
对象的行为可通过属性配置。可基于对象(如 MediaGetMediaType 返回的媒体类型对象)检索属性。
参数
propertyName:要检索的属性名称(属性列表参见媒体属性和主要媒体类型/子类型)。objHandle:媒体类型句柄。length:value中的字符数(设为elCount(value))。value:返回的属性值。
返回值
- 0:函数成功。
- ≠0:错误代码
可用性
- 8.5:形式 1、2
- 10.0:形式 3、4
- 限制:---
- 测量设置:---
- 仿真/测试设置:•
4. MediaGetPropertyRatio
CAPL 函数 >> Media API >> MediaGetPropertyRatio
函数
语法
c
long MediaGetPropertyRatio(dword objHandle, char propertyName[], dword& numerator, dword& denominator);
功能
检索值为比率的属性。可基于对象(如 MediaGetMediaType 返回的媒体类型对象)检索属性。
参数
propertyName:要检索的属性名称(属性列表参见媒体属性和主要媒体类型/子类型)。objHandle:媒体类型句柄。numerator:接收比率的分子。denominator:接收比率的分母。
返回值
- 0:函数成功。
- ≠0:错误代码
备注
某些属性将比率指定为打包的 QWORD 值。使用此函数可将分子和分母作为单独的 32 位值获取。
可用性
- 版本:10.0
- 限制:---
- 测量设置:---
- 仿真/测试设置:•
5. MediaGetPropertySize
CAPL 函数 >> Media API >> MediaGetPropertySize
函数
语法
c
long MediaGetPropertySize(dword objHandle, char propertyName[], dword& width, dword& height);
功能
检索值为尺寸(以宽度和高度表示)的属性。可基于对象(如 MediaGetMediaType 返回的媒体类型对象)检索属性。
参数
propertyName:要检索的属性名称(属性列表参见媒体属性和主要媒体类型/子类型)。objHandle:媒体类型句柄。width:接收宽度。height:接收高度。
返回值
- 0:函数成功。
- ≠0:错误代码
备注
某些属性将尺寸指定为打包的 QWORD 值。使用此函数可将宽度和高度作为单独的 32 位值获取。
可用性
- 版本:10.0
- 限制:---
- 测量设置:---
- 仿真/测试设置:•
6. MediaSetProperty
CAPL 函数 >> Media API >> MediaSetProperty
函数
语法
c
long MediaSetProperty(dword objHandle, char propertyName[], dword value); // 形式 1
long MediaSetProperty(dword objHandle, char propertyName[], dword length, char value[]); // 形式 2
long MediaSetProperty(dword objHandle, char propertyName[], qword value); // 形式 3
long MediaSetProperty(dword objHandle, char propertyName[], dword length, byte value[]); // 形式 4
功能
对象的行为可通过属性配置。可基于对象(如 MediaGetMediaType 返回的媒体类型对象)设置属性。
参数
propertyName:要设置的属性名称(属性列表参见媒体属性和主要媒体类型/子类型)。objHandle:媒体类型句柄。length(仅字符串重载):传递的value缓冲区长度。value:属性的新值。
返回值
- 0:函数成功。
- ≠0:错误代码
可用性
- 8.5:形式 1、2
- 10.0:形式 3、4
- 限制:---
- 测量设置:---
- 仿真/测试设置:•
7. MediaSetPropertyRatio
CAPL 函数 >> Media API >> MediaSetPropertyRatio
函数
语法
c
long MediaSetPropertyRatio(dword objHandle, char propertyName[], dword numerator, dword denominator);
功能
将比率设置为 64 位属性值。可基于对象(如 MediaGetMediaType 返回的媒体类型对象)设置属性。
参数
propertyName:要设置的属性名称(属性列表参见媒体属性和主要媒体类型/子类型)。objHandle:媒体类型句柄。numerator:比率的分子。denominator:比率的分母。
返回值
- 0:函数成功。
- ≠0:错误代码
备注
某些属性将比率指定为打包的 QWORD 值。此函数将分子和分母打包为单个 QWORD 值。
可用性
- 版本:10.0
- 限制:---
- 测量设置:---
- 仿真/测试设置:•
8. MediaSetPropertySize
CAPL 函数 >> Media API >> MediaSetPropertySize
函数
语法
c
long MediaSetPropertySize(dword objHandle, char propertyName[], dword width, dword height);
功能
将宽度和高度设置为单个 64 位属性值。可基于对象(如 MediaGetMediaType 返回的媒体类型对象)设置属性。
参数
propertyName:要设置的属性名称(属性列表参见媒体属性和主要媒体类型/子类型)。objHandle:媒体类型句柄。width:宽度。height:高度。
返回值
- 0:函数成功。
- ≠0:错误代码
备注
某些属性将宽度和高度指定为打包的 QWORD 值。此函数将宽度和高度打包为单个 QWORD 值。
可用性
- 版本:10.0
- 限制:---
- 测量设置:---
- 仿真/测试设置:•
9. OnMediaRead
CAPL 函数 >> Media API >> OnMediaRead
函数
语法
c
void OnMediaRead(dword sourceReaderHandle, long result, dword streamIndex, dword streamFlags, int64 timestamp, byte buffer[], dword length);
void OnMediaRead(dword sourceReaderHandle, long result, dword streamIndex, dword streamFlags, int64 timestamp, int buffer[], dword length);
void OnMediaRead(dword sourceReaderHandle, long result, dword streamIndex, dword streamFlags, int64 timestamp, long buffer[], dword length);
功能
当源读取器上的异步读取操作完成时触发此回调。
参数
sourceReaderHandle:源读取器句柄。result:操作的结果代码(0 表示成功,非 0 表示失败)。streamIndex:提供样本的流的从零开始的索引。streamFlags:流标志(见下表)。timestamp:时间戳。buffer:存储数据的缓冲区。length:接收数据的长度。
流标志说明
| 值 | 描述 |
|---|---|
| SOURCE_READERF_ERROR | 0x00000001:发生错误,不允许进一步调用 SourceReader 方法。 |
| SOURCE_READERF_ENDOFSTREAM | 0x00000002:源读取器到达流末尾。 |
| SOURCE_READERF_NEWSTREAM | 0x00000004:创建了一个或多个新流,需设置输出类型或更新流选择。 |
| SOURCE_READERF_NATIVEMEDIATYPECHANGED | 0x00000010:一个或多个流的原生格式已更改。 |
| SOURCE_READERF_CURRENTMEDIATYPECHANGED | 0x00000020:一个或多个流的当前媒体类型已更改,需调用 GetMediaType 获取。 |
| MF_SOURCE_READERF_STREAMTICK | 0x00000100:流中存在间隙。 |
| SOURCE_READERF_ALLEFFECTSREMOVED | 0x00000200:应用插入的所有转换已被移除(可能因格式更改)。 |
可用性
- 版本:8.5
- 限制:---
- 测量设置:---
- 仿真/测试设置:•