strmif.h) (AM_SAMPLE2_PROPERTIES 结构

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

AM_SAMPLE2_PROPERTIES 结构描述媒体示例的属性。 IMediaSample2 接口使用此结构。

语法

typedef struct tagAM_SAMPLE2_PROPERTIES {
  DWORD          cbData;
  DWORD          dwTypeSpecificFlags;
  DWORD          dwSampleFlags;
  LONG           lActual;
  REFERENCE_TIME tStart;
  REFERENCE_TIME tStop;
  DWORD          dwStreamId;
  AM_MEDIA_TYPE  *pMediaType;
  BYTE           *pbBuffer;
  LONG           cbBuffer;
} AM_SAMPLE2_PROPERTIES;

成员

cbData

属性数据的长度(以字节为单位)。 此结构成员用于扩展性。

dwTypeSpecificFlags

特定于类型的标志。 标志是为每个媒体类型单独定义的。 默认值为AM_VIDEO_FLAG_INTERLEAVED_FRAME (零) 。 以下标志用于视频流。 它们在头文件 dvdmedia.h 中定义。

标志 含义
AM_VIDEO_FLAG_FIELD_MASK
0x0003
使用此掩码检查样本是字段还是帧。
AM_VIDEO_FLAG_INTERLEAVED_FRAME
0x0000
示例是一个帧。 (使用AM_VIDEO_FLAG_FIELD_MASK位掩码测试此值。)
AM_VIDEO_FLAG_FIELD1
0x0001
示例为字段 1。 (使用AM_VIDEO_FLAG_FIELD_MASK位掩码测试此值。)
AM_VIDEO_FLAG_FIELD2
0x0002
示例为字段 2。 (使用AM_VIDEO_FLAG_FIELD_MASK位掩码测试此值。)
AM_VIDEO_FLAG_FIELD1FIRST
0x0004
如果设置了此标志,则首先显示字段 1。 否则,首先显示字段 2。 仅当每个 sample 有两个字段时, (才适用。)
AM_VIDEO_FLAG_WEAVE
0x0008
如果设置了此标志,请使用编织模式 (即,不要将示例) 取消交错。 否则,请使用 bob 模式。 仅当每个样本有两个字段时,此标志才适用。
AM_VIDEO_FLAG_REPEAT_FIELD
0x0040
如果设置了此标志,则显示第二个字段后再次显示第一个字段。 仅当每个 sample 有两个字段时, (才适用。)
AM_ReverseBlockStart
0x2
在反向播放 DVD 视频期间发出 VOBU 开始的信号。 有关详细信息,请参阅 Windows Vista 中的 DVD 播放增强功能
AM_ReverseBlockEnd
0x4
在 DVD 视频反向播放期间发出 VOBU 结束的信号。 DVD 导航器在空样本上设置此标志,以指示 VOBU 结束。 有关详细信息,请参阅 Windows Vista 中的 DVD 播放增强功能
AM_UseNewCSSKey
0x1
对于 DVD 播放,指示流中的点,解码器应应用新的内容混排系统 (CSS) 键。

DVD 导航器在重新协商 CSS 标题键之前,在空媒体样本上设置此标志。

以前,DVD 导航器在协商光盘密钥之前错误地发送了此密钥。 从 Windows 7 开始,如果解码器的 AM_PROPERTY_DVDCOPY_SUPPORTS_NEW_KEYCOUNT 属性返回 TRUE,则 DVD 导航器不会在协商光盘键之前发送此标志。 请参阅 DVD 复制保护属性集

 

其他标志已定义,但当前未使用。 请参阅 dvdmedia.h。

dwSampleFlags

标记 AM_SAMPLE_PROPERTY_FLAGS 枚举数据类型的按位组合。 未定义的位是保留的,必须为零。

lActual

缓冲区中有效数据的长度。

tStart

开始时间(如果有效)。 dwSampleFlags 成员指定此成员是否有效。

tStop

停止时间(如果有效)。 dwSampleFlags 成员指定此成员是否有效。

dwStreamId

Stream标识符。 如果值为 AM_STREAM_MEDIA,则流包含媒体数据。 如果值为 AM_STREAM_CONTROL,则流包含控制信息。 应用程序可以定义 0x80000000 或更大的值供自己使用。 (请参阅 AM_SAMPLE_PROPERTY_FLAGS.)

pMediaType

指向 AM_MEDIA_TYPE 结构的指针,该结构指定格式更改时媒体类型。 如果此格式未更改,则此成员为 NULL

pbBuffer

指向示例缓冲区的指针。

cbBuffer

样本缓冲区的大小(以字节为单位)。

要求

要求
Header strmif.h (包括 Dshow.h)

另请参阅

DirectShow 结构