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.
Tópicos relacionados