|
tweaked bt878 WDM drivers >> Вопросы и ответы
Q1: Что такое WDM-драйвера и зачем они нужны?
Q2: Откуда вообще взялись эти драйвера?
Q3: У меня карта на чипе bt878, подойдут ли к ней драйвера, ведь там написано "bt848"?
Q4: Моего тюнера нет в compatibility list. Будут ли работать драйвера с моим тюнером?
Q5: Моя карта занесена в compatibility list, но я никак не могу получить звук.
Q6: Сделайте пожалуйста поддержку для моего тюнера модели <ХХХ>!
Q7: Я поставил ваши драйвера для своего ТВ-тюнера и они работают прекрасно. Я проверял работу драйверов с помощью программ BorgTV и JTV. Занесите, пожалуйста, мой тюнер в compatibility list.
Q8: Почему я не могу захватывать в VirtualDub кадр высотой более 288 (240) строк?
Q1: Что такое WDM-драйвера и зачем они нужны?
A:
Первая технология для обработки видео под Windows была представлена компанией Microsoft в ноябре 1992 года для Windows 3.1 и носила незатейливое название "Video for Windows" (VFW). С того времени аппаратные средства PC стремительно эволюционировали, вышли новые версии Windows. Технология VFW, имеющая ряд архитектурных ограничений, не могла предоставить приемлемых решений для организации видеоконференций, поддержки TV-тюнеров, работы с полями кадра, декодированием телетекстовых сообщений. Производителям видеооборудования для PC приходилось каждый раз <изобретать велосипед>, что бы программное обеспечение могло в полной мере использовать особенности таких устройств как web-камера, TV-тюнер или плата видеозахвата
Для преодоления этих трудностей Microsoft разработала новую мультимедийную технологию DirectShow, которая очень тесно связана с использованием драйверов нового типа - WDM (Windows drivers model). Помимо универсальности (WDM-драйвера могут работать как в Win98, так и Win2000), WDM-драйвера обладают рядом ценных особенностей, значительно расширяющими возможности по управлению видеоустройствами. В результате, приложения ориентированные на архитектуру WDM-драйверов и технологию DirectShow могут с легкостью работать с любыми устройствами, будь то веб-камера или TV-тюнер, ничего не зная об аппаратных особенностях этих устройств.
Несколько слов о Windows 2000. Для этой операционной системы и для следующей ее версии - Windows XP, использование WDM-драйверов является необходимостью, поскольку старые VFW-драйвера разработанные для семейства Win9x не работают под Windows 2000. В то же время использование Windows 2000 и WDM-драйверов имеет значительные преимущества при захвате и обработке видео: Во-первых, размер .avi-файла может быть совершенно любым, в то время как .avi-файл под Win9x не может быть размером более 4GB. Во-вторых под Win2000 более продвинутые управление памятью, кэширование диска и многозадачность позволяют избежать выпадений кадров на протяжении всего сеанса видеозаписи.
Наверх
Q2: Откуда вообще взялись эти ваши драйвера?
A:
В 2000 году фирма-производитель чипов bt8x8 Conexant допустила утечку со своего FTP исходных текстов референсных драйверов 3.1.28. В последствии доступ к FTP закрыли, но к тому времени исходники 3.1.28 расползлись по всему интернету и сегодня их может найти любой, кто пожелает. Я ждал некоторое время, что кто-нибудь доведет их до совершенства, поскольку референсные WDM-драйвера 3.1.28 мало пригодны для практической работы (они имеют ряд багов и ограничений), но героев не нашлось, и пришлось делать все самому. История улучшений отражена в файле history.txt. На момент написания этого FAQ фирма Conexant и очень многие производители TV-тюнеров использующие референсные WDM-драйвера так и не удосужились исправить <детские болезни> свойственные билду 3.1.28. Вместо этого, производители TV-тюнеров переключают звуковой тракт и осуществляют настройку на каналы с помощью всякого рода нестандартных .dll, пользоваться которыми может только <родной> софт.
Наверх
Q3: У меня карта на чипе bt878, подойдут ли к ней драйвера, ведь там написано "bt848"?
A:
Подойдут, поскольку драйвера рассчитаны как на чипы bt848 так и на bt878, тем более, что они очень похожи. Если ваш тюнер присутствует в compatibility list, то волноваться вообще не о чем, иначе стоит почитать ответ на следующий вопрос.
Наверх
Q4: Моего тюнера нет в compatibility list. Будут ли работать драйвера с моим тюнером?
A:
Скорее да, чем нет, но есть некоторые проблемы. Первая из них - по умолчанию обычно ставится устройство "bt848 tweaked WDM Video Capture", которое изначально настроено на чип bt878. Если у вас карта на более старом чипе bt848, то возможно вы получите вместо картинки размазанные наклонные полосы. Лечится это изменением значения параметра InitPLL с "1" на "0". Это можно сделать либо в системном реестре (просто поищите все InitPLL в реестре) либо, непосредственно перед инсталляцией драйверов, в файле Bt848.inf.
Вторая проблема, это радиочастотный модуль тюнера - <жестянка> на плате, которая отвечает за настройку тюнера на канал. Помимо того, что радиочастотные модули могут быть от нескольких производителей - Philips, Temic, Alps, они еще могут откликаться по разным адресам шины I2C. К счастью, возможных вариантов адресов обычно бывает два - либо 0xC0, либо 0xC2. Эти значения так же могут быть откорректированы в реестре либо в файле bttuner.inf - ищите параметр TunerI2Caddress.
Третья проблема самая серьезная. Возникает она из того факта, что сам чип bt848/878 не занимается коммутацией аудио сигнала. За выбор источника аудио (TV/FM/EXT)отвечает обычно маленький отдельно стоящий чип-коммутатор, марку которого каждый производитель TV-тюнера выбирает сам, кроме того, каждый производитель считает своим долгом припаять чип-коммутатор звука к bt8x8 каким-нибудь особенным способом. В итоге оказывается, что даже у одного производителя различные модели TV-тюнеров имеют свое особенное и неповторимое переключение звукового тракта. Это означает, что если вашей карты нет compatibility list то, скорее всего будет очень легко добиться картинки на экране, и гораздо сложнее услышать звуковое сопровождение
Наверх
Q5: Моя карта занесена в compatibility list, но я никак не могу получить звук.
A:
Некоторые карты не имеют уникального SUBSYS_ID - в этом поле у них содержаться нули. В результате при установке драйверов Windows не может точно идентифицировать карту и подсовывает первое совместимое устройство из списка. Обычно это бывает "bt848 tweaked WDM Video Capture". Как правило, такой вариант не будет работать правильно. Если ваша карта присутствует в compatibility list, а в менеджере устройств в качестве устройства видеозахвата болтается "bt848 tweaked WDM Video Capture", то необходимо вызвать свойства этого драйвера и выполнить обновление драйвера с правильным названием, используя режим <выбрать из списка вручную>.
Наверх
Q6: Сделайте, пожалуйста, поддержку для моего тюнера модели <ХХХ>!
A:
Я не произвожу TV-тюнеров, не торгую ими, и даже не коллекционирую их. Я не могу обеспечить поддержку вашей конкретной модели, не имея на руках самой карты или хотя бы информации об аппаратных особенностях вашего TV-тюнера. Многие карты появились в compatibility list только потому, что некоторые продвинутые пользователи карт сами прислали мне обновления для *.inf файлов. Если вы знаете, каким образом переключается звуковой тракт на вашем тюнере, и вашего тюнера нет в compatibility list - пришлите мне эту информацию, я постараюсь сделать поддержку вашей карты. У Борга (http://www.borgtech.org) есть пара очень полезных утилит btTool и btInspector, которые позволяет "подглядывать" за портами bt8x8 в то время, как работает другая программа просмотра TV. Методика такова: Запускаете <родное> приложение от производителя тюнера для просмотра TV, в котором звук переключается правильно, затем запускаете btTool. Поочередно переключая режимы в <родном> приложении TV/FM/VHS/MUTE делаете "снимки" регистров bt8x8 и присылаете их мне. Этот метод определения работает с ~80% моделей карт. Остальные 20% моделей переключают звук настолько хитро, что с помощью btTool ничего узнать не удастся. Кроме информации о переключении звука желательно прислать еще информацию о PCI SUBSYS_ID. Для этого просто экспортируйте из реестра веточку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI в текстовый файл и пришлите ее мне.
Наверх
Q7: Я поставил ваши драйвера для своего ТВ-тюнера и они работают прекрасно. Я проверял работу драйверов с помощью программ BorgTV и JTV. Занесите, пожалуйста, мой тюнер в compatibility list.
A:
Увы, я пока не стану торопиться заносить вашу карту в compatibility list. Дело в том, что с помощью программ BorgTV и JTV невозможно протестировать работоспособность WDM-драйверов: BorgTV и JTV используют для доступа к тюнеру свои собственные нестандартные драйвера и не используют никаких функций WDM-драйверов. Если вы хотите протестировать работоспособность WDM-драйверов, то лучше воспользоваться любой программой базирующейся на технологии DirectShow. Это может быть простая AMCAP.EXE от Microsoft или моя утилита iuVCR.
Наверх
Q8: Почему я не могу захватывать в VirtualDub кадр высотой более 288 (240) строк?
A:
Как и всякое другое VFW-приложение VirtualDub работает с WDM-драйверами через специальную программную прослойку-wrapper, которая транслирует вызовы VFW в вызовы DirectShow. Помимо некоторого ухудшения производительности, wrapper, в силу особенностей реализации, позволяет захватывать только одно поле, что ограничивает максимальную высоту кадра в 288 строк для PAL/SECAM и 240 строк для NTSC. Я полагаю, что существует теоретическая возможность модификации WDM-драйверов для решения этой проблемы, но к сожалению не располагаю временем и оборудованием для более подробных исследований.
Наверх
Замечания, исправления, добавления принимаются здесь
|