常规注册表项

必须为解码器和编码器单独创建以下注册表项:

HKEY_CLASSES_ROOT
   CLSID
      {Your Encoder/Decoder CLSID}
         Author = Author's Name
         Description = Your Codec Description
         DeviceManufacturer = Manufacturer's Name
         DeviceModels = Device,Device
         FriendlyName = Codec Friendly Name
         Date = mm-dd-yyyy
         Vendor = {GUID_Vendor}
         ContainerFormat = {GUID_ContainerFormat}
         Version = Major.Minor.Build.Number
         SpecVersion = Major.Minor.Build.Number
         MimeTypes = Your Mime Type
         SupportAnimation = 0|1
         SupportChromakey = 0|1
         SupportLossless = 0|1
         SupportMultiframe = 0|1
         Formats
            {Supported PixelFormat GUID 1}
            {Supported PixelFormat GUID ...}
            {Supported PixelFormat GUID N}
         ArbitrationPriority  = 0-10

FriendlyName、VendorGUID、ContainerFormat、MimeTypes、FileExtensions 和 Formats 条目是必需的。 所有其他选项都是可选的。

请注意,DeviceManufacturer 和 DeviceModels 条目特定于原始编解码器,并引用编解码器适用的相机制造商和相机型号。 规范版本是编解码器所遵循的映像格式规范的版本。 格式项指定编解码器支持的像素格式。 编解码器可能支持多个像素格式。 在这种情况下,将在 HKEY_CLASSES_ROOT\CLSID\{Encoder/Decoder CLSID}\Formats 下输入多个键。

ArbitrationPriority

从Windows 8开始,ArbitrationPriority 是一个新的注册表项。 有效值为 0 到 10。 如果存在 ArbitrationPriority 键,则此键的值将指示 WIC 将关联的编解码器优先于具有较低 ArbitrationPriority 值的任何其他编解码器。 此评估在现有 WIC 编解码器仲裁发生之前进行,并确保关联的编解码器优先于任何竞争编解码器,即使它具有或更强大的功能。 注册表中未定义显式 ArbitrationPriority 值的任何编解码器都将默认为 Priority 0。

概念性

CODEC 安装和注册

编码器特定的注册表项

如何编写WIC-Enabled CODEC

Windows 映像组件概述

Windows 映像组件的工作原理:编解码器发现和仲裁