DirectX Media Object DMO 의 관련 정보 DMO 의 인터페이스 IDMOVideoOutputOptimizations   [목차열람] [주소복사] [슬롯비우기]
IDMOVideoOutputOptimizations 인터페이스
 
Microsoft DirectX 9.0

IDMOVideoOutputOptimizations 인터페이스

IDMOVideoOutputOptimizations 인터페이스는, Microsoft DirectX Media Object (DMO)의 비디오 최적화를 지원 한다.

애플리케이션은, 이 인터페이스를 사용해, DMO 와의 사이에 비디오 출력 최적화를 네고시에이트 할 수 있다. DMO 는, 애플리케이션으로부터의 지원을 필요로 하는 최적화를 실행할 수 있을 때, 이 인터페이스를 공개한다. 애플리케이션은, DMO 의 우선 기능을 DMO 에 문의해 그 기능의 제공을 승낙 또는 거부할 수 있다. DMO 는, 애플리케이션이 최적화를 거부했을 경우에서도 출력을 처리할 필요가 있다.

예를 들어, 비디오 디코더는, 전의 출력 프레임에 델타를 적용하는 것에 의해 출력 프레임을 생성하는 일이 있다. 문의를 받으면 비디오 디코더는, 출력 버퍼를 사용해 전의 프레임을 공급하도록(듯이) 애플리케이션에 요구한다. 애플리케이션은 이 요구를 승낙하는 일도 거부할 수도 있다.

비디오 최적화는, 출력 스트림 마다 개별적으로 네고시에이트 된다.

이하의 유사 코드는, 애플리케이션이 DMO 와 네고시에이트 하는 방법을 나타내고 있다.

IDMOVideoOutputOptimizations *pVidOpt;
// DMO 에 IDMOVideoOutputOptimizations 를 문의한다 (여기에서는 나타나지 않았다).

BOOL  bWantsPreviousBuffer = FALSE;
DWORD wFlags;
pVidOpt->QueryOperationModePreferences(0, &dwFlags);

if (dwFlags & DMO_VOSF_NEEDS_PREVIOUS_SAMPLE) 
{
    // 요구를 승낙한다.

    pVidOpt->SetOperationMode(0, DMO_VOSF_NEEDS_PREVIOUS_SAMPLE);
    bWantsPreviousBuffer = TRUE;
}

// 처리 루프
while (there is input).
{
    ProcessInput(0, ...);
    if (bWantsPreviousBuffer)
        pDMO->ProcessOutput(0, ...) // 전회와 같은 버퍼를 사용한다.
    else
        pDMO->ProcessOutput(0, ...) // 새로운 버퍼를 사용할 수 있다.
}

IUnknown 로부터 계승하는 메서드에 가세해,IDMOVideoOutputOptimizations 인터페이스에서는 이하의 메서드가 공개되고 있다.

메서드 설명
GetCurrentOperationMode 현재 유효한 최적화 기능을 얻어온다.
GetCurrentSampleRequirements 애플리케이션이 이미 승낙한 기능이 있는 경우에, 다음 샘플을 처리하는데 필요한 최적화 기능을 얻어온다.
QueryOperationModePreferences DMO 의 우선 최적화 기능을 얻어온다.
SetOperationMode 현재 유효한 최적화 기능을 DMO 에 통지한다.

요건

Mediaobj.h 로 선언한다. Dmo.h 를 인클루드 한다.

Dmoguids.lib 에 링크한다.

↑TOP