Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Маршрутизация фильтров DirectShow


Alx Jourey

Рекомендуемые сообщения

Насколько я понял (чисто эмпирическим путём, т.е. без какой-бы то ни было справочной информации, а только по ПЛОСКИМ спискам фильтров) современный медиаплеер - это программа, которая может грамотно нацеплять друг за другом DirectShow-фильтры. Кроме этого, больше ничего делать плеер не умеет, да и не нужно ему, когда уже всевозможные фильтры написаны. Разумеется не все плееры такие, однако все популярные плееры изготовлены именно на базе DirectShow (xxxDVD, BSPlayer, Core Media Player, Light Alloy, итд).

Проблема №1: DirectShow-фильтров слишком много.

Действительно, если вы взглянете на список всех DirectShow-фильтров (например, с помощью DirectShow Filter Manager от Softella), то увидите множество, в том числе, и сходных фильтров конкурирующих производителей.

Проблема №2: Закрытая политика.

Как мне думается, DirectShow-фильтры должны быть унифицированными, т.е. разнородно (от разных производителей) совместимыми, однако, как показала практика ручной борьбы с автоматической маршрутизацией, совместимость фильтров существует, в основном, в пределах одного производителя, т.е. сплиттеры и демультиплексоры от Nero будут работать стабильно только с декодировщиками и реендерами от Nero или дружественных ему компаний.

Я приведу пример. Играем Матрёшку (.mkv) на MatroskaDiag. Файл-матрёшка сформирован трансмуксингом из .mpg (Video: MPEG-2, Audio: MPEG-1 L2). Итак, после долгих попыток найти путь по куче фильтров был сформирован следующий путь для видео: .mkv(Video) -> InterVideo Video Decoder(~Subpicture Output) -> Video Renderer; и для аудио: .mkv(Audio) -> Nero Digital Audio Decoder(Digital Audio Out) -> Default DirectSound Device. Одна из интересных попыток маршрутизации, окончившееся ничем: .mkv(Video) -> InterVideo Video Decoder(~Line21 Output) -> Line 21 Decoder 2(XForm Out).

Проблема №3: А если мне не нравится декомпрессор от InterVideo, если я хочу использовать, скажем, от CyberLink?[/b]

CyberLink умеет делать приличный деинтерлейс и его прекрасно использует PowerDVD, однако попытка использовать этот декомпрессор (вместо InterVideo) окончилась неудачей!!! Подмена осуществлялась как за счёт смены приоритетов для фильтров, так и с использованием чёрных/белых листов фильтров у BSPlayer.

И вопрос: Как DirectShow работает? Как осуществляется маршрутизация? На основе каких media-type состыковываются по входу-выходу фильтры?

PS: Я чего-то не логоняю??? Где можно найти литературу по этому вопросу (фильтры DirectShow)?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...