AV/C 流式处理格式 GUID
与任何内核流式处理驱动程序一样,AV/C 流式处理子单元驱动程序使用格式 GUID 为每个引脚指定它支持的数据格式范围。 然后,内核流式处理应用程序使用这些格式 GUID 为特定数据格式执行数据范围交集。 结果是填充的 KSDATAFORMAT 结构。 AVStream 中的数据范围交集中进一步介绍了数据交集。
KSDATAFORMAT 结构为其主要格式、格式子类型和说明符指定 GUID。 说明符指定内存中 KSDATAFORMAT 结构后面的扩展数据结构。 例如,假设数据格式的主要格式为 KSDATAFORMAT_TYPE_INTERLEAVED,格式子类型为 KSDATAFORMAT_SUBTYPE_DVSD,说明符为 KSDATAFORMAT_SPECIFIER_DVINFO。 在这种情况下,扩展数据结构是 DVINFO 结构。
avcstrm.h 头文件定义以下流式处理格式 GUID:
GUID | 描述 |
---|---|
KSDATAFORMAT_TYPE_INTERLEAVED | 指定交错的音频和视频信号。 任何包含音频的视频流都应将此 GUID 指定为流的类型。 |
KSDATAFORMAT_TYPE_MPEG2_TRANSPORT_STRIDE | 指定偏离正常 188 字节 MPEG2 数据包大小的 MPEG2 流类型。 KSDATAFORMAT_TYPE_MPEG2_TRANSPORT_STRIDE类型与符合 IEC 61883-4 规范的流一起使用。 这些流使用 MPEG2_TRANSPORT_STRIDE 结构,该结构允许流描述不同于典型 188 字节数据包的格式。 例如,MPEG2_TRANSPORT_STRIDE的 dwOffset 成员将设置为 4,dwPacketLength 成员设置为 188,dwStride 成员设置为 192。 |
KSDATAFORMAT_SUBTYPE_DVSD | 指定 IEC 61883-2 标准定义 25 Mbps DV 信号,该信号对 NTSC 信号使用 4:1:1 采样结构,或对 PAL 信号使用 4:2:0 采样结构。 此格式子类型使用 DVINFO 结构作为数据格式的扩展数据结构。 |
KSDATAFORMAT_SUBTYPE_DVSL | 指定 IEC 61883-3 长播放 12.5 Mbps DVSD 信号,该信号的行数与 NTSC 或 PAL 信号相同,但实现更高的压缩比。 此格式子类型使用 DVINFO 结构作为数据格式的扩展数据结构。 |
KSDATAFORMAT_SUBTYPE_DVHD | 指定 IEC 61883-3 高清 DV 信号,例如 1125 行 60-Hz NTSC 信号或 1250 行 50-Hz PAL 信号。 当前不支持此格式子类型。 |
KSDATAFORMAT_SUBTYPE_DV25 | 指定 SMPTE 314M 25 Mbps DVCPRO 视频信号,该信号对 NTSC 和 PAL 信号使用 4:1:1 采样结构。 此格式子类型使用 DVINFO 结构作为数据格式的扩展数据结构。 |
KSDATAFORMAT_SUBTYPE_DV50 | 指定 SMPTE 314M 50-Mbps DVCPRO50 视频信号,该信号对 NTSC 和 PAL 信号使用 4:2:2 采样结构。 此格式子类型使用 DVINFO 结构作为数据格式的扩展数据结构。 |
KSDATAFORMAT_SUBTYPE_DVH1 | 指定 SMPTE 370M 100-Mbps 高清 DV 视频信号,例如 720p (渐进式) 或 1080i (交错) 信号。 此格式子类型使用 DVINFO 结构作为数据格式的扩展数据结构。 |
KSDATAFORMAT_SPECIFIER_DVINFO | 将 DVINFO 结构指定为内存中 KSDATAFORMAT 之后的扩展数据结构。 |
KSDATAFORMAT_SPECIFIER_DV_AVC | 将 DVINFO 和 AVCCONNECTINFO 结构指定为内存中 KSDATAFORMAT 之后的扩展数据结构。 |
KSDATAFORMAT_SPECIFIER_AVC | 将 AVCCONNECTINFO 结构指定为内存中 KSDATAFORMAT 之后的扩展数据结构。 此说明符还可以与 MPEG2TS 格式一起使用,具体取决于格式的子类型。 |
KSDATAFORMAT_SPECIFIER_61883_4 | 指定遵循 IEC 61883-4 协议的 MPEG2-TS 格式。 此说明符不使用任何扩展数据结构来遵循内存中的 KSDATAFORMAT。 |
注释
Avcstrm.sys 和 Msdv.sys 支持 Windows Vista 中的KSDATAFORMAT_SUBTYPE_DV25、KSDATAFORMAT_SUBTYPE_DV50和KSDATAFORMAT_SUBTYPE_DVH1格式子类型、Windows Server 2003 service Pack 1 (SP1) 以及 Windows XP with Service Pack 2 (SP2) 操作系统。
请注意,KSDATAFORMAT_SUBTYPE_DVSD和KSDATAFORMAT_SUBTYPE_DV25格式子类型使用 NTSC 的 4:1:1 采样兼容。 但是,PAL 格式的KSDATAFORMAT_SUBTYPE_DV25使用 4:1:1 采样,但 PAL 格式的KSDATAFORMAT_SUBTYPE_DVSD使用 4:2:0 采样,从而区分 DVDSD 和 DV25。
子单位驱动程序指示其格式子类型和扩展数据结构组合) 的帧大小 (样本大小。 例如,KSDATAFORMAT_SUBTYPE_DVSD格式子类型和 DVINFO 扩展数据结构中设置的 NTSC 位的组合表示 DV 帧大小为 120 KB。
KSDATAFORMAT 结构包含用于验证扩展数据结构大小的 FormatSize 成员。 也就是说,在有效的扩展数据结构大小中,FormatSize 等于 (KSDATAFORMAT) + sizeof (extended-data structure (s) ) 。
下表描述了 KS 数据格式说明符 GUID 及其相应的扩展数据结构。
KS 数据格式说明符 | Extended-data 结构 |
---|---|
KSDATAFORMAT_SPECIFIER_DVINFO | DVINFO |
KSDATAFORMAT_SPECIFIER_DV_AVC | DVINFO 和 AVCCONNECTINFO |
KSDATAFORMAT_SPECIFIER_AVC | AVCCONNECTINFO |
KSDATAFORMAT_SPECIFIER_61883_4 | 不使用扩展数据结构 |
Microsoft Corporation 在 Windows 98 SE 中引入了 msdv.sys 子单元驱动程序。 此驱动程序在相机模式和 VTR (视频磁带记录器) 模式下都支持大多数 MiniDV 摄像机。
Microsoft Corporation 在 Windows Me 中引入了 mstape.sys 磁带子单元驱动程序。 此驱动程序支持 D-VHS 磁带组和 MPEG 摄像机设备。
注意
Microsoft 不提供编解码器来支持 DVCPro 格式解码。