AltDvb 2.2 + SkyStar 2 + WDM Driver 4.4.0 + Vista 32 SP1 = fix



AltDvb глючит с Windows Vista. В первую очередь, не видит устройства SkyStar2 если установлены WDM драйвера.
Ну что ж, подумал я, неспешно взявшись за дебаггер...

Несколько часов спустя:

1. Немного поковырявшись, пофиксил проблему. Исправленный модуль устройства
для AltDvb брать ЗДЕСЬ:
http://rapidshare.com/files/146702568/dev_skystar2.int.html (заменить старый файл Dev_SkyStar2.int в папке Devices). Перезапустив AltDvb, видим милую сердцу картину с появившимся SkyStar2 в списке:



2. Возрадовавшись до плеши, убеждаемся, что все работает. Вроде бы.. На поверку оказалось, что картинка и звук несколько "заедают". Наиболее наглядно сие может проиллюстрировать скриншот: (чтобы полюбоваться на данное окошко, нужно нажать правой кнопкой на видео в AltDvb, далее в меню выбрать DS Filters -> Default DirectSound Device)



То есть, поток данных на пути от драйвера до наших глаз и ушей где-то тормозит, что выражается в обрыве потока звука при воспроизведении. Все мыслимые Шаманства с кодеками, видео рендерерами, настройками дров и тп результата не меняют. Помогла лишь замена файла драйвера SkyStar2 \system32\drivers\skynet.sys файлом драйвера версии 4.4.0 (у меня стояли дрова 4.4.3). Проблема с тормозами после этого пропала, обрывов потока 0 при постоянной заполненности буфера около 40%. Однако имеем другие глюки, вроде БСОДов при попытке отключить/включить SkyStar2 в диспетчере оборудования. Ибо драйвер 4.4.0 был написан еще когда висты в помине не было. С 4.4.1 та же проблема, что и с 4.4.3, то есть прерывания и заедания потока.


3. Ну ладно, с этим всем еще можно было бы жить, если бы не третий (и самый поганый глюк). Очень часто и почти всегда при переключении каналов вылетает следующая гадость:



Данная проблема НЕ ЗАВИСИТ от модуля устройства и драйвера, ибо проявляется и при работе с BDA драйвером и модулями устройств AltDvb BDA и BDA от Diodato. Это именно глюк самого AltDvb при работе под Vista. Судя по http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=3726270&SiteID=17, глюк возможно имеется только в Vista SP1 и отсуствует, если SP1 не установлен. У меня SP1, без SP1 не проверял. Этот глюк очень противный, ибо после него видео уже показывать не будет, а также AltDvb не закрывается, приходится снимать задачу. Типичное поведение дельфового приложения, когда возникает необработанный эксепшен.

УПД Через пару часов:
Побеждено. Инфа по итогам дебага: эксепшен выскакивает в виндовом модуле quartz.dll. То есть AltDvb вообще не виноват, это целиком глюки поделки Билли! Надо взять файл quartz.dll из Windows XP и положить в папку рядом с AltDVB.exe. Может, подойдет из чистой Vista без SP1 тоже. Я взял из русской XP SP3. Как бы там ни было - это решает проблему на 100%, а M$ сами себе сделали еще один DoS для Vista SP1 :)


Подытоживая: AltDvb вполне себе может работать с WDM дровами для SkyStar2 под Vista SP1 (ессно не без моих доработок, хехе), единственный повод для беспокойства - это пункт 2. Дело в том, что шибко умный автор AltDvb написал модуль устройства SkyStar2 так, чтобы он брал поток данных из драйвера НАПРЯМУЮ, минуя прокладочные (ДОКУМЕНТИРОВАННЫЕ В SkyStar2 SDK, между прочим) интерфейсы. В этом легко убедиться, ведь AltDvb прекрасно работает, не требуя установки софта от Technisat, а только голого драйвера - можете проверить это в Win XP, например. Как итог - со сменой версии драйвера, а также ОС будем иметь глюки, описанные в п.2. Как лечить - только переписывать модуль устройства SkyStar2 с нуля, чтобы он работал по документированному интерфейсу, так, как это делает например ProgDVB и у которого нет проблем ни с одной версией драйвера под Vista. Насколько я знаю, люди уже писали модули устройств для AltDvb, знаю, что MaxWin написал модуль для SkyStar3 который, вроде, работает стабильно. Не знаю как он разобрался с интерфейсом обмена данными между Альтом и модулями, в частности, в аргументах функции DvbDeviceControl (скорее всего тоже реверсил :), в любом случае, это уже совсем другая история и тема для другого топика.

AAC/AACplus/AACplusV2 streaming on Linux/Windows: hz Icecast/Shoutcast source client for Linux/Win32

hz - AAC/AAC+/AAC+V2 & MP1/MP2/MP3 Icecast/Shoutcast source client for Linux/Win32
=================================================================


What's the point?
=================
hz is a small, portable and fast MPEG1/2/2.5 LayerI/II/III and
AAC/AACplus/AACplusV2 Icecast/Shoutcast source client. It is written
to be nice and easy to use. It is also scriptable in some way, so
you can script your playlist handling with Lua scripting language.


What does "hz" mean?
====================
hz stands for "a h.. ego znaet". If you can understand this, I probably
shouldn't explain more. hz is also very antisocial.


Antisocial??
============
Yes, it doesn't like you by default. Neither your mom and girlfriend.
The only thing it likes to do is to hang out together with its rubber
duckling.

Collapse )

Downloads:

some mirror http://william.shallum.net/miscellaneous/hz


hz is written in FreePascal (I prefer not to code in C), so you'll probably need the compiler. Get it from http://freepascal.org.

aacPlus v2 encoder for Linux (courtesy of Matteo Croce) :
http://teknoraver.campuslife.it/software/mp4tools/