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