CAPL学习-AVB交互层-媒体函数1-回调&基本函数

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:媒体类型句柄。
  • lengthvalue 中的字符数(设为 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
  • 限制:---
  • 测量设置:---
  • 仿真/测试设置:•
相关推荐
好奇龙猫1 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
saoys2 小时前
Opencv 学习笔记:图像掩膜操作(精准提取指定区域像素)
笔记·opencv·学习
电子小白1233 小时前
第13期PCB layout工程师初级培训-1-EDA软件的通用设置
笔记·嵌入式硬件·学习·pcb·layout
sunfove3 小时前
光网络的立交桥:光开关 (Optical Switch) 原理与主流技术解析
网络
唯情于酒3 小时前
Docker学习
学习·docker·容器
charlie1145141914 小时前
嵌入式现代C++教程: 构造函数优化:初始化列表 vs 成员赋值
开发语言·c++·笔记·学习·嵌入式·现代c++
IT=>小脑虎5 小时前
C++零基础衔接进阶知识点【详解版】
开发语言·c++·学习
#眼镜&5 小时前
嵌入式学习之路2
学习
码农小韩5 小时前
基于Linux的C++学习——指针
linux·开发语言·c++·学习·算法
Kevin Wang7275 小时前
欧拉系统服务部署注意事项
网络·windows