DirectShow DirectShow 레퍼런스 인터페이스 IEncoderAPI [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
주 : 이 인터페이스는, 하위 호환성을 유지하는 목적에서만 유지되고 있으므로, 사용은 피하는 것. 새로운 애플리케이션 및 드라이버는, 이 인터페이스는 아니고 ICodecAPI 인터페이스를 사용하는 것.
IEncoderAPI 인터페이스는, 애플리케이션이나 드라이버가 써드파티제의 하드웨어 엔코더 또는 소프트웨어 엔코더와 통신해 인터페이스를 처리 하는 표준의 방법을 정의한다. 이 인터페이스의 사용법의 더 자세한 정보는, 「엔코더 API 」를 참조할것.
IEncoderAPI 인터페이스는,IUnknown 로부터 계승하는 메서드 이외에 이하의 메서드도 공개한다.
메서드 | 설명 |
GetDefaultValue | 인수에 디폴트값이 있는 경우는 그 디폴트값을 얻어온다. |
GetParameterRange | 인수가 특정의 값의 리스트는 아니고, 스텝 되는 범위를 지원 하는 것 같은 경우에, 인수가 지원 하는 유효한 값의 범위를 얻어온다. |
GetParameterValues | 지정된 인수가 지원 하는 값의 리스트를 얻어온다. |
GetValue | 지정된 인수의 현재의 값을 얻어온다. |
IsAvailable | 지정한 파라미터가 이용 가능한가 어떤가를 문의한다. |
IsSupported | 지정된 인수가 지원 되고 있는지를 문의한다. |
SetValue | 인수의 현재의 값을 설정한다. |
주의
다양한 인터페이스 메서드에서는, uuids.h 에 정의되고 있는 다음의 GUID 를 사용해, 어느 인수가 설정되어 있는지, 취득되는지를 나타내고 있다.
파라미터 | 설명 |
ENCAPIPARAM_BITRATE | bit rate (비트/초)를 지정한다. 정수 bit rate(CBR) 모드에서는, 이 값으로 정수 bit rate를 지정한다. 몇개의 변수 bit rate에서는, 평균 bit rate를 지정한다. 이 값은, 32 비트 부호 없음 (long)이다. |
ENCAPIPARAM_PEAK_BITRATE | 피크 bit rate를 지정한다. 이 인수는, ENCAPIPARAM_BITRATE_MODE 가 VariableBitRatePeak 로 설정되어 있는 경우에 한정해, 의미가 있다. |
ENCAPIPARAM_BITRATE_MODE | bit rate 모드를VIDEOENCODER_BITRATE_MODE 열거값 (32 비트의 부호 첨부 (long))로서 지정한다. |
다음의 표는,VIDEOENCODER_BITRATE_MODE 로 정의되는 2 개의 변수 bit rate 모드로, 극단적으로 높은가 낮은 bit rate 조건에 있는 경우에, 엔코더가 예상되는 동작을 설명한 것이다.
조건 | 모드 | 동작 |
장면(scene)가 어두워지는지, 움직임이 제로가 된다. | VariableBitRateAverage | 짧은 동안 (몇초간), bit rate가 ENCAPIPARAM_BITRATE 인수로 지정된 레이트를 밑돈다. 그러나, 4 분의 주기를 지나면 엔코더는 필요에 따라서 "더미" 비트를 스트림에 추가해 평균 레이트를 유지한다. |
장면(scene)가 어두워지는지, 움직임이 제로가 된다. | VariableBitRatePeak | bit rate는, ENCAPIPARAM_BITRATE 인수의 값으로 지정되는 예상 레이트를 밑돈다고 예상된다. 이 레이트는, 보다 복잡한 장면(scene)가 시작 되지 않는 이상 그 레벨에 머무르게 된다. |
장면(scene)가 극단적으로 복잡하다. | VariableBitRateAverage | 몇초간, 레이트는 오른다. 장면(scene)가 복잡한 상태인 채라고, 레이트는 내려, 화면은, ENCAPIPARAM_BITRATE 인수의 값으로 지정된 평균을 유지하기 위해서, 농담이 생긴다. |
장면(scene)가 극단적으로 복잡하다. | VariableBitRatePeak | 레이트는 올라, 높은 상태를 유지해, ENCAPIPARAM_BITRATE 인수의 값으로 지정된 예상 레이트를 웃돌 가능성이 있다. 그러나, ENCAPIPARAM_PEAK_BITRATE 인수로 지정된 피크를 웃도는 것은 결코 없다. |
참조