ASF 분할자 개체 만들기

ASF 분할자 개체는 ASF(Advanced Systems Format) 파일의 ASF 데이터 개체를 구문 분석하는 WMContainer 계층 개체입니다. ASF 분할자 개체의 새 instance 만들려면 MFCreateASFSplitter 함수를 호출합니다. 이 함수는 빈 분할기 개체를 나타내는 IMFASFSplitter 인터페이스에 대한 포인터를 반환합니다.

분할기 구문 분석을 시작하려면 먼저 애플리케이션이 ASF 헤더 개체의 정보를 사용하여 분할자를 초기화해야 합니다. 분할자를 초기화하려면 IMFASFSplitter::Initialize 메서드를 호출합니다. 이 메서드는 구문 분석할 ASF 파일의 헤더 정보를 포함하는 ASF ContentInfo 개체 에 대한 포인터를 사용합니다. 애플리케이션은 미디어 파일의 특성을 애플리케이션에 알 수 있도록 분할기로 전달하기 전에 ContentInfo 개체를 초기화해야 합니다. 분할자의 Initialize 메서드는 스트림 번호와 같은 ContentInfo 개체에서 스트림 정보를 추출하므로 분할자는 데이터 패킷을 구문 분석할 수 있습니다.

예제

다음 코드 예제에서는 분할기를 만들고 기존 ContentInfo 개체를 사용하여 초기화하는 방법을 보여줍니다.

// Create and initialize the ASF splitter.

HRESULT CreateASFSplitter (IMFASFContentInfo* pContentInfo, 
    IMFASFSplitter** ppSplitter)
{
    IMFASFSplitter *pSplitter = NULL;

    // Create the splitter object.
    HRESULT hr = MFCreateASFSplitter(&pSplitter);

    // Initialize the splitter to work with specific ASF data.
    if (SUCCEEDED(hr))
    {
        hr = pSplitter->Initialize(pContentInfo);
    }
    if (SUCCEEDED(hr))
    {
        // Return the object to the caller.
        *ppSplitter = pSplitter;
        (*ppSplitter)->AddRef();
    }
    SafeRelease(&pSplitter);
    return hr;
}

참고

이 예제에서는 SafeRelease 함수를 사용하여 인터페이스 포인터를 해제합니다.

 

ASF 분할기