다음을 통해 공유


인코더 설치 및 등록

인코더 필터가 있는 드라이버의 INF 파일에는 다음을 정의하는 항목이 포함되어야 합니다.

  • 추가 커널 스트리밍 캡처 구성 요소

  • KsProxy에서 노출해야 하는 COM 인터페이스

  • 인코더 필터의 기능을 설명하는 메타데이터 값

  • 필터의 커널 스트리밍 범주

추가 커널 스트리밍 캡처 구성 요소

인코더 디바이스용 드라이버를 설치하는 데 사용되는 INF 파일은 인코더 구성 요소에 필요한 지원을 추가하므로 [DefaultInstall] 섹션에서 ks.infkscaptur.inf 를 캡처 드라이버로 참조해야 합니다. 예:

[DefaultInstall]
include=ks.inf,kscaptur.inf
needs=[Your driver's DDInstall section],KS.Registration,KSCAPTUR.Registration.NT

노출해야 하는 COM 인터페이스 KsProxy

드라이버 INF 파일의 AddReg 섹션에서 KsProxy 플러그 인(encapi.dll)이 클라이언트에 노출해야 하는 COM 인터페이스를 나타내기 위해 다음 세 GUID 중 하나를 지정합니다. COM 인터페이스는 인코더 필터에서 구현한 속성 지원에 의해 결정됩니다.

인터페이스 GUID 속성 Description

{B43C4EEC-8C32-4791-9102-508ADA5EE8E7}

CLSID_IVideoEncoderProxy

KsProxy가 IVideoEncoder COM 인터페이스를 노출하도록 하려면 이 GUID를 지정합니다(Microsoft에서 제공하는 이전 세대의 인코더 지원과의 호환성을 위해). 클라이언트는 IEncoderAPI COM 인터페이스에서 이 인터페이스를 파생해야 합니다.

{7FF0997A-1999-4286-A73C-622B8814E7EB}

CLSID_ICodecAPIProxy

KsProxy가 ICodecAPI COM 인터페이스를 노출하도록 하려면 이 GUID를 지정합니다(오디오 전용 인코더와 같은 비비디오 인코딩 디바이스의 경우).

{B05DABD9-56E5-4FDC-AFA4-8A47E91F1C9C}

CLSID_IVideoEncoderCodecAPIProxy

KsProxy가 IVideoEncoderICodecAPI COM 인터페이스를 모두 노출하도록 하려면 이 GUID를 지정합니다(이전 버전과 정방향 호환성을 위해).

예:

[Your driver's AddReg section]
HKR,Interfaces\{B43C4EEC-8C32-4791-9102-508ADA5EE8E7},,,

이로 인해 KsProxy는 IVideoEncoder (CLSID_IVideoEncoderProxy) COM 인터페이스만 노출합니다.

이러한 COM 인터페이스는 DIRECTX 9 및 Windows XP용 Windows SDK SP1 이상의 DirectShow 섹션에 설명되어 있습니다.

인코더 필터의 기능을 보급하는 메타데이터 값

인코더의 INF 파일에서 레지스트리의 디바이스 매개 변수\기능 영역에서 메타데이터 값을 지정할 수 있습니다. 애플리케이션은 이러한 메타데이터 값을 사용하여 사용자에게 구현하거나 노출할 기능을 결정할 수 있습니다.

예:

[Your driver's AddReg section]
HKR,Capabilities,,,
HKR,Capabilities,"{12345678-1234-1234-1234-12345678abcd}",,guid1

그러면 인코더 레지스트리 설정의 디바이스 매개 변수\기능 영역에 "{12345678-1234-1234-1234678abcd} = guid1"이라는 메타데이터 항목이 생성됩니다. 아직 없는 경우 레지스트리 키를 만들려면 빈 줄이 필요합니다.

인코더 필터는 애플리케이션에서 사용할 INF 파일에 이러한 정적 메타데이터를 지정할 수 있습니다. 예를 들어 Windows XP Media Center Edition은 Windows XP Media Center Edition 규격임을 나타내는 인코더를 확인합니다.

필터의 커널 스트리밍 범주

커널 스트리밍 필터는 해당 필터가 속한 커널 스트리밍 범주를 지정해야 합니다. Microsoft는 인코더 필터 및 mux(멀티플렉서) 필터를 비롯한 일반적인 범주에 대한 GUID를 정의합니다.

필터는 미니드라이버 INF 파일의 필터 섹션에 있는 AddInterface 지시문에 다음 GUID 중 하나 이상을 지정하여 해당 범주를 나타냅니다.

커널 스트리밍 범주 GUID 속성 Description

{19689BF6-C384-48FD-AD51-90E58C79F70B}

KSCATEGORY_ENCODER

인코더 필터에 대해 이 GUID를 지정합니다.

{7A5DE1D3-01A1-452C-B481-4FA2B96271E8}

KSCATEGORY_MULTIPLEXER

mux 필터에 대해 이 GUID를 지정합니다.

인코더 필터를 등록하려면 드라이버의 DDInstall에서 KSCATEGORY_ENCODER GUID를 지정합니다. 인터페이스 INF 파일 섹션. 예:

[Your Driver's DDInstall.Interface section]
AddInterface=%KSCATEGORY_ENCODER%,%KSNAME_Filter%,MyEncoderDevice.AddInterface

[MyEncoderDevice.AddInterface]
AddReg=MyEncoderDevice.AddReg

[MyEncoderDevice.AddReg]
HKR,,CLSID,,%KSProxy.CLSID%
HKR,,FriendlyName,,%MyEncoderDeviceFriendlyName%

[Strings]
KSCATEGORY_ENCODER="{19689BF6-C384-48FD-AD51-90E58C79F70B}"
KSNAME_Filter="{9B365890-165F-11D0-A195-0020AFD156E4}"
KSProxy.CLSID="17CCA71B-ECD7-11D0-B908-00A0C9223196"
MyEncoderDeviceFriendlyName="My Encoder Device"

참고:KSNAME_Filter 대해 지정된 GUID는 필터를 설명하는 KSFILTER_DESCRIPTOR 구조에서 지정한 ReferenceGuid 멤버와 일치해야 합니다.