Создание объекта разделитировщика ASF
Объект разделителя ASF — это объект слоя WMContainer, который анализирует объект данных ASF файла расширенного формата систем (ASF). Чтобы создать новый экземпляр объекта разделения ASF, вызовите функцию MFCreateASFSplitter . Эта функция возвращает указатель на интерфейс IMFASFSplitter , представляющий пустой объект разделителя.
Прежде чем разделитель сможет начать синтаксический анализ, приложение должно инициализировать разделитель с помощью сведений из объекта заголовка ASF. Чтобы инициализировать разделитель, вызовите метод IMFASFSplitter::Initialize . Этот метод принимает указатель на объект ASF ContentInfo , содержащий сведения о заголовке ФАЙЛА ASF для анализа. Приложение должно инициализировать объект ContentInfo перед его передачей в разделитель, чтобы характеристики файла мультимедиа были известны приложению. Метод инициализации разделения извлекает сведения о потоке из объекта 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 используется для освобождения указателей интерфейса.
Связанные темы