다음을 통해 공유


ASF 분리기 객체를 만들기

ASF 스플리터 개체는 ASF(Advanced Systems Format) 파일의 ASF 데이터 개체를 구문 분석하는 WMContainer 레이어 개체입니다. ASF 분할자 개체의 새 인스턴스를 만들려면 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 분할자