tagAM_SAMPLE_PROPERTY_FLAGS 枚举 (strmif.h)

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

指定 AM_SAMPLE2_PROPERTIES 结构的值。 这些值描述媒体示例的属性。

语法

typedef enum tagAM_SAMPLE_PROPERTY_FLAGS {
  AM_SAMPLE_SPLICEPOINT = 0x1,
  AM_SAMPLE_PREROLL = 0x2,
  AM_SAMPLE_DATADISCONTINUITY = 0x4,
  AM_SAMPLE_TYPECHANGED = 0x8,
  AM_SAMPLE_TIMEVALID = 0x10,
  AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
  AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
  AM_SAMPLE_STOPVALID = 0x100,
  AM_SAMPLE_ENDOFSTREAM = 0x200,
  AM_STREAM_MEDIA = 0,
  AM_STREAM_CONTROL = 1
} ;

常量

 
AM_SAMPLE_SPLICEPOINT
值: 0x1
示例是一个接合点, (无需引用以前的数据) 即可对其进行解码。
AM_SAMPLE_PREROLL
值: 0x2
示例是预滚动示例。
AM_SAMPLE_DATADISCONTINUITY
值: 0x4
此示例中的初始数据是一个接合点。 上一个示例中的数据不应后跟此示例中的数据。 有关详细信息,请参阅“备注”。
AM_SAMPLE_TYPECHANGED
值: 0x8
示例类型已更改。
AM_SAMPLE_TIMEVALID
值: 0x10
时间有效。
AM_SAMPLE_TIMEDISCONTINUITY
值: 0x40
在此示例之后开始数据中的时差。 在这种情况下 ,AM_SAMPLE2_PROPERTIES 结构可以为 NULL
AM_SAMPLE_FLUSH_ON_PAUSE
值: 0x80
仅适用于实时数据;指示处于暂停状态的放弃。
AM_SAMPLE_STOPVALID
值: 0x100
停止时间有效。
AM_SAMPLE_ENDOFSTREAM
值: 0x200
流结束发生在此示例之后。 此标志保留用于内核流式处理。 DirectShow 当前不使用它。
AM_STREAM_MEDIA
值: 0
正常数据流标识符。
AM_STREAM_CONTROL
值:1
控制流标识符。 大于 0x7FFFFFFF 的值指示应用程序定义的流。

注解

AM_SAMPLE_DATADISCONTINUITY标志指示当前媒体示例中的数据不被视为与先前示例中的数据相邻。 接收设置了 AM_SAMPLE_DATADISCONTINUITY 标志的样本的筛选器不应放弃其缓冲区中未处理的数据。 在处理缓冲数据之前等待传入数据的筛选器应立即处理缓冲数据;因此,如果缓冲数据不完整,则可能会放弃该数据。

例如,当视频解压缩器筛选器的缓冲区中具有两个完整的压缩视频帧和一个不完整的压缩视频帧时,它可能会接收设置了 AM_SAMPLE_DATADISCONTINUITY 标志的媒体样本。 在这种情况下,筛选器会解压缩两个完整的帧,并丢弃不完整的第三帧,然后再开始处理来自当前媒体样本的数据。

AM_SAMPLE_DATADISCONTINUITY标志是在刷新或停止后收到的第一个样本上设置的。 此外,在源中切换内容时、通道发生更改 () 可能存在格式更改时,或者由于流中断而缺少数据时,应使用 AM_SAMPLE_DATADISCONTINUITY 标志。

AM_SAMPLE_DATADISCONTINUITY标志等效于返回S_OKIMediaSample::IsDiscontinuity 方法。

要求

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

另请参阅

DirectShow 枚举类型