Фильтр разделителя AVI

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Фильтр разделителя AVI используется для воспроизведения файлов AVI. Он принимает данные в формате AVI и разбивает их на составляющие потоки для дальнейшей обработки и (или) отрисовки.

Метка Значение
Интерфейсы фильтрации IAMMediaContent, IBaseFilter, IPersistMediaPropertyBag
Типы носителей входных контактов MEDIATYPE_Stream, MEDIASUBTYPE_Avi
Интерфейсы ввода-закрепления IPin, IQualityControl
Типы носителей выводных контактов Обычно MEDIATYPE_Video или MEDIATYPE_Audio. Точный тип зависит от содержимого файла, сжатия файла и используемого кодека.
Интерфейсы вывода контактов IMediaPosition, IMediaSeeking, IPin, IPropertyBag, IQualityControl
Фильтр CLSID CLSID_AviSplitter
CLSID страницы свойств Страница свойств отсутствует.
Исполняемый файл quartz.dll
Заслуга MERIT_NORMAL
Категория фильтра CLSID_LegacyAmFilterCategory

 

Комментарии

Этот фильтр обычно подключается к фильтру источника асинхронного файла на входном контакте. Он может подключаться к любому фильтру, чей выходной контакт поддерживает IAsyncReader и предлагает правильный тип носителя входному контакту фильтра разделителя AVI.

Выходные контакты в разделитете AVI поддерживают метод IPropertyBag::Read для чтения свойств из отдельных потоков. В настоящее время определено следующее свойство.

Свойство Описание
name Возвращает имя потока, взятое из 'strn' блока в файле AVI. Если этот фрагмент отсутствует, метод Read возвращает E_INVALIDARG.

 

Метод IPropertyBag::Write возвращает E_FAIL. Фильтр AVI Mux поддерживает IPropertyBag::Write для сохранения свойств потока в AVI-файл.

Разделитель AVI не позволяет подчиненным фильтрам использовать собственный распределитель.

Длительность чередование в файле определяет, сколько памяти будет выделено разделителям AVI для его обработки. Для обработки файла, который чередуется в одну секунду, потребуется гораздо больше памяти, чем для файла, длительность чередование которого составляет один или два кадра. На современных компьютерах это, как правило, не является проблемой, если вы не используете несколько экземпляров разделителя AVI одновременно.

Ищут

Если файл содержит видеопоток, разделитель AVI поддерживает поиск по номеру кадра. Чтобы включить поиск на основе кадров, вызовите метод IMediaSeeking::SetTimeFormat в диспетчере фильтров графов со значением TIME_FORMAT_FRAME.

Если файл содержит аудиопоток, разделитель AVI поддерживает поиск по номеру выборки. Чтобы включить поиск на основе примеров, вызовите Метод SetTimeFormat в диспетчере фильтров графов со значением TIME_FORMAT_SAMPLE.

В обоих случаях выходной контакт для этого потока должен быть подключен к фильтру отрисовщика.

Фильтры DirectShow