DirectShow DirectShow 레퍼런스 인터페이스 ICodecAPI [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
ICodecAPI 인터페이스는, 애플리케이션이나 드라이버가 써드파티제의 하드웨어 엔코더 또는 소프트웨어 엔코더와 통신해 인터페이스를 처리 하는 표준의 방법을 정의한다. 이 인터페이스의 사용법의 더 자세한 정보는, 「엔코더 API 」를 참조할것.
주 : 이 인터페이스는,IEncoderAPI 인터페이스에 대신하는 것이다. IEncoderAPI 인터페이스의 사용은 피하는 것.
엔코더는, 시스템 레지스트리에 프로파일 정보나 능력 정보를 저장 하면 상정된다. 애플리케이션은 이 인터페이스를 사용해, 장치 열거중에 장치를 조회할 수 있다. 디폴트의 프로파일은, HLKM\Software\Classes\CLSID\<category>\Profiles 에 저장 되고 있다. 각 프로파일은 레지스트리 키로, 그 디폴트 설정은 프로파일의 텍스트의 설명이다. 값은 각각, GUID 명과 그 뒤로 이어 수치의 GUID 값을 포함한 캐릭터 라인의 값을 가지고 있다. 이하에 예를 나타낸다.
HLKM\Software\Classes\CLSID\<category>\Profiles\DVD
default "HQ DVD"
REG_SZ {659e5ecc-b1b9-4d29-8304-86911fb33165} = "0"
REG_SZ {3c2009e0-7598-4454-86ba-de8edc342645} = "1234"
여기서 {...} (은)는, 애플리케이션이 자신의 사용자 인터페이스에 맵 할 수 있는 프로퍼티 GUID 이다. 일련의 표준 프로파일의 정의에 대해서는, 현재 검토중이다.
디폴트의 CODEC 기능은, HLKM\Software\Classes\CLSID\<category>\Instance\<Filter CLSID>\Capabilities 에 저장 되고 있다. 값은 각각, GUID 명과 그 뒤로 이어 수치의 GUID 값을 포함한 캐릭터 라인의 값을 가지고 있다. 이하에 예를 나타낸다.
HLKM\Software\Classes\CLSID\<category>\Instance\<My DVD encoder>\Capabilities
default "My DVD encoder"
REG_SZ_MULTI {659e5ecc-b1b9-4d29-8304-86911fb33165}
여기서 {...} (은)는, 애플리케이션이 자신의 사용자 인터페이스에 맵 할 수 있는 프로퍼티 GUID 이다.
ICodecAPI 인터페이스는,IUnknown 로부터 계승하는 메서드 이외에 이하의 메서드도 공개한다.
메서드 | 설명 |
GetAllSettings | 현재의 엔코더 설정을 스트림에 보존한다. |
GetDefaultValue | 인수에 디폴트값이 있는 경우는 그 디폴트값을 얻어온다. |
GetParameterRange | 인수의 유효한 값의 범위를 돌려준다. |
GetParameterValues | 지정된 인수가 지원 하는 값의 일람을 돌려준다. |
GetValue | 지정된 인수의 현재의 값을 얻어온다. |
IsModifiable | 인수를 변경할 수 있을지 어떨지를 조회한다. |
IsSupported | 지정된 인수가 지원 되고 있는지를 조회한다. |
RegisterForEvent | 엔코더로부터 지정된 이벤트를 받기 위해서(때문에) 애플리케이션을 등록한다. |
SetAllDefaults | 모든 인수를 디폴트의 값에 되돌린다. |
SetAllDefaultsWithNotify | 모든 인수를 디폴트의 값에 되돌려, 변경된 설정의 일람을 돌려준다. |
SetAllSettings | 스트림으로부터 엔코더 설정을 읽어들여, 그 설정을 엔코더로 설정한다. |
SetAllSettingsWithNotify | 스트림으로부터 엔코더 설정을 읽어들여, 그 설정을 엔코더로 설정해, 변경된 설정의 일람을 돌려준다. |
SetValue | 인수의 값을 설정한다. |
SetValueWithNotify | 인수의 값을 설정해, 그 결과적으로 변경된 다른 설정의 일람을 돌려준다. |
UnregisterForEvent | 지정된 엔코더 이벤트로부터 애플리케이션의 등록을 해제한다. |
주의
IEncoderAPI 인터페이스는, 다양한 엔코더 인수를 식별하는 일련의 GUID 를 정의했다. ICodecAPI 인터페이스도 이러한 GUID 를 지원 하지만, 이 인터페이스로 사용하는 경우는, 지원 되는 GUID 는 보다 폭넓은 일람이 정의되는 것이 예상된다. 지금까지 정의되고 있는 GUID 의 일람에 대해서는,IEncoderAPI 의 문서를 참조할것.
참조