November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Sunday, January 17th, 2010 03:06 am

По мотивам раздумий о судьбах звука в HDMI.

Заставить звук выводиться из компьютера через HDMI мне так и не удалось. Девайс есть, драйвер его видит, mplayer в него играет, а в телевизоре тишина. А поскольку  телевизор сильно вумный, то как только он обнаруживает, что в HDMI у него звук может быть, он аналоговый вход отключает. И неважно, что на самом деле в HDMI звука нет. Он же может..

Полдня гугления показали, что проблема известная (даже в Windows), а как ее решать, никто толком не знает. Остаётся ждать, пока nVidia напишет правильный аудиодрайвер. Они уже пообещали.

Но если переключиться в текстовый режим, то телевизор таки берёт звук из аналогового входа, хотя изображение получает по тому же HDMI. Это наводит на мысль, что телевизору можно как-то объяснить, что вот конкретно сейчас в HDMI звука нет. Производитель телевизора на вопрос, как это сделать, вот уже неделю молчит.

Оказалось, что это можно сделать со стороны компьютера. Для этого надо nVidia’вскому драйверу объяснить, что телевизор по ту сторону HDMI звук не поддерживает, тогда драйвер не скажет телевизору, что может подавать в него звук, и телевизор будет его брать из аналога. Что и требуется. В Windows это делается путём записи магических значений в registry.

А в линуксе так:

запускаем nvidia-settings, находим там телевизор, нажимаем на кнопочку Acquire EDID, сохраняем в файл. Внимательно разглядываем файл и обнаруживаем, что он длиной больше 128 байт. А значит, в нём присутствует extended section, в которой и описываются аудио-возможности телевизора. Берём первые 128 байт, затем меняем предпоследний байт на 00 (раньше там было 01, что свидетельствовало о наличии отрезанной extended section), и корректируем последний байт (это контрольная сумма). Полученный файл подсовываем драйверу в виде Option “CustomEDID”, перезапускаем X-Window, и с радостью обнаруживаем, что аналоговый звук больше не исчезает.

Корректировка контрольной суммы оставляется интересующимся читателям в качестве самостоятельного задания. Это очень просто.

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Sunday, January 17th, 2010 01:01 pm (UTC)
угу, но не гарантирует, что полученный результат поможет еще кому-нибудь.
Впрочем, как и вообще не гарантирует, что эту возможность удастся реализовать ;(
Sunday, January 17th, 2010 01:04 pm (UTC)
Да, гарантий никаких. А в мире софта реальную "железную" гарантию вообще получить непросто... Проприетарщики при первом же случае задницу еулой прикрывают.
Sunday, January 17th, 2010 01:06 pm (UTC)
в мире просто софта - да. Но вон, как минимум один раз с MS удалось получить :)

Но вот на стыке софт-железо, шансы есть хоть немного ощутимые. И эти шансы оцениваются вполне конкретными деньгами (цена железяки) и немного подкрепляются законами защиты прав потребителя (хотя, тоже не без фокусов ;((
Sunday, January 17th, 2010 01:09 pm (UTC)
> Но вон, как минимум один раз с MS удалось получить :)
Это ж не гарантия, это решение конкретной проблемы. Гарантия - это жесткая ответственность за решение любой проблемы (или финансовая компенсация).

В остальном - согласен. Но мы все-таки говорим про шансы. Вероятность...
Sunday, January 17th, 2010 01:16 pm (UTC)
Насколько я понимаю, если MS бы не решил вопрос, то покупатель был бы вправе вернуть лицензию обратно и получить возврат денег.
Sunday, January 17th, 2010 01:25 pm (UTC)
Так ли это легко в реальности?
Sunday, January 17th, 2010 01:29 pm (UTC)
думаю, что нелегко.
Но тут интересный вопрос (ответа на который у меня нет) - в каком случае легче получить результат, в случае проприетарщина+деньги или opensource+этика(+деньги)
Sunday, January 17th, 2010 01:36 pm (UTC)
ответ в каждом конкретном случае получается разный. есил бы он был однозначный, то вымер бы либо closed-source, либо open :)
Sunday, January 17th, 2010 01:39 pm (UTC)
угу :)
Sunday, January 17th, 2010 02:46 pm (UTC)
У меня тоже. Уверен, что это зависит от конкретного случая. Именно поэтому я скидываю со счетов этот фактор и выбираю этику.