Criando o objeto divisor ASF

O objeto divisor ASF é um objeto de camada WMContainer que analisa o Objeto de Dados ASF de um arquivo ASF (Advanced Systems Format). Para criar uma nova instância do objeto divisor ASF, chame a função MFCreateASFSplitter . Essa função retorna um ponteiro para a interface IMFASFSplitter que representa um objeto divisor vazio.

Antes que o divisor possa começar a analisar, o aplicativo deve inicializar o divisor com informações do Objeto de Cabeçalho ASF. Para inicializar o divisor, chame o método IMFASFSplitter::Initialize . Esse método usa um ponteiro para o Objeto ContentInfo do ASF que contém informações de cabeçalho do arquivo ASF a ser analisado. O aplicativo deve inicializar o objeto ContentInfo antes de passá-lo para o divisor para que as características do arquivo de mídia sejam conhecidas pelo aplicativo. O método Initialize do divisor extrai informações de fluxo do objeto ContentInfo, como números de fluxo, para que o divisor possa analisar os pacotes de dados.

Exemplo

O exemplo de código a seguir mostra como criar um divisor e inicializá-lo com um objeto ContentInfo existente.

// 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;
}

Observação

Este exemplo usa a função SafeRelease para liberar ponteiros de interface.

 

Divisor ASF