Pull to refresh

Comments 16

Интересное решение вполне стандартной задачи. Приведите пож пример из жизни, для чего это понадобилось. Плюс я бы расширил решение этой задачи от просто DVB-T до DVB-? (T\T2\S\C).
Спасибо за статью!
Нам нужно было реализовать рендеринг видео и дать возможность пользователям просматривать все доступные в TS каналы. А также полученные SID использовались для записи одного канала в файл.
А как узнать название фильтров для произвольного тюнера? У меня китайский нонейм, хочу на нем попробовать эту программу.
PS: не могли бы вы сделать картинку с графом побольше, а то она такая маленькая, что я там не нашел даже audio decoder & audio filter
Для этого можно использовать программу GraphEditPlus или бесплатную MONOGRAM GraphStudio.

В списке фильтров выбираете соответствующий (обычно название фильтра тюнера строится из названия производителя (AVerMedia) + некоторых уточнений (716x BDA DVBT) и слова (Tuner), название фильтра capture строится по таким же правилам, только в конце вме6сто Tuner стоит слово Capture).

Также название фильтра можно узнать в реестре, но проще, конечно, используя GraphEditPlus или MONOGRAM GraphStudio

А если совсем Ноунейм, то может посмотреть в диспетчере устройств, каким его видит ваш компьютер или на самой плате, возможно есть какие-нибудь опознавательные знаки))))

image

audio decoder & audio filter нет в этом приложении, идет только картинка. Как воссоздать звук для этого графа — это вообще отдельная статья, которая только в процессе создания.
Нельзя делать так, как написано в статье. Нужно использовать ICaptureGraphBuilder2, который самостоятельно подберёт нужные фильтры. Кода будет в 10 раз меньше, и работать будет везде.

Если ОС ниже Win7 не интересуют, то есть более современное решение: msdn.microsoft.com/en-us/library/dd940439%28v=VS.85%29.aspx Можно взять пример из поставки Windows SDK и доработать до нужного состояния.
Довольно полезная информация.
А вы не копали уровни более глубокие, чем DirectShow? Интересно, можно ли добраться до зашифрованного raw-содержимого кодированных каналов через что-то, отличное от libusb (или вообще самописного драйвера в случае PCI-тюнера).
До буферов данных, передающихся между фильтрами можно добраться описывая собственный фильтр. Для этого предусмотрены DirectShow Base Classes
Смысла нет, там, похоже, где-то на уровне драйвера идет отсечение зашифрованной инфы, до DirectShow она не добирается.
Жаль под Windows. У меня давно без дела лежит гибридный тюнер. Всё лень под Linux настроить (вроде возможно). Хотя смысла наверно не будет, т.к. тот маленький набор федеральных каналов кодируют.
Если вы про Свердловскую область, то основные каналы — ОРТ, НТВ, Культура etc не закодированы. Кодирована только разная туфта вроде ТНТ, Дома Кино, и некоторых региональных. Декодер для них, кстати, жуткий полусамопальный CAM-модуль, работающий безо всяких смарт карт — подозреваю, что алгоритм его работы довольно просто расколоть.
Вот как раз то, что нужно как раз и закодировано. На счёт декодера — самопальный в TE-8310 (в своё время убил его прошивкой, до сих пор восстановить не могу, т.к. ремонтируют только в Екатеринбурге и нужно туда 2 раза съездить (больше 1000 на каждую поездку туда и обратно + за восстановление прошивки неизвестно сколько возьмут). На декодере все микросхемы обработаны шкуркой, чтобы не было видно название. Было бы интересно подключить этот декодер к компьютеру, чтобы сделать что-то вроде шаринг-сервера, всё равно зря пропадает.
А вот в TRI 1000 уже используется более или менее стандартный декодер. Правда качество работы самой приставки оставляет желать лучшего.
Хорошая статья за одним исключением: так делать нельзя. Нельзя соединять пины, отыскивая их по названиям. Не следует добавлять фильтры в граф по названиям. То, что работает в Вашем конкретном случае, почти наверняка не заработает у соседа с таким же тюнером. Нет гарантии работы программы после обновления компонентов ПО тюнера.
Sign up to leave a comment.

Articles