CImageAllocator 类
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
类 CImageAllocator
实现一个分配器,该分配器管理与 GDI 设备无关的位图 (DIB) 。 此类派生自 CBaseAllocator 类。 它创建使用 CImageSample 类实现的媒体示例。
分配器由两个连接的引脚共享,但始终由连接中的一个筛选器拥有。 使用 CImageAllocator
的筛选器必须跟踪分配器是由自己还是由另一个筛选器提供的。 如果分配器本身提供,则拥有筛选器可以依赖于分配器中的所有媒体样本都是 CImageSample 对象这一事实。 因此,它可以使用 CImageSample 对象来获取有关 DIB 的信息, DIB 存储在 DIBDATA 结构中。
每当媒体类型发生更改时,拥有筛选器都应调用 NotifyMediaType 。
受保护的成员变量 | 说明 |
---|---|
m_pFilter | 指向拥有筛选器的指针。 |
m_pMediaType | 指向当前媒体类型的指针。 |
受保护的方法 | 说明 |
Alloc | 为缓冲区分配内存。 |
CheckSizes | 根据当前媒体类型检查分配器属性。 |
CreateDIB | 创建 DIB。 |
CreateImageSample | 创建媒体示例。 虚拟。 |
免费 | 释放所有缓冲区内存。 |
公共方法 | 说明 |
CImageAllocator | 构造函数方法。 |
NotifyMediaType | 通知对象当前媒体类型。 |
IMemAllocator 方法 | 说明 |
SetProperties | 指定要分配的缓冲区数和每个缓冲区的大小。 |
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|