DS Filter as Audio Device
От: amid493 СССР http://gesell-ru.blogspot.com/
Дата: 09.03.10 08:34
Оценка:
Здравствуйте!

может кто может подскзаать — можно ли зарегестрировать в реестре DirectShow Audio Filter как И/О Аудио устройство, в каком нить HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum
причем что этот фильтр другие программы видели в списках устройств (всякие skype, виндовые аудио пропертиз)

можно ли так сделать или надо писать драйвер виртуального аудио устройства по типу VAC?

С уважением
Дмитрий

заранее спасибо за помощь
Re: DS Filter as Audio Device
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 09.03.10 08:50
Оценка:
Здравствуйте, amid493, Вы писали:

A>Здравствуйте!


A>может кто может подскзаать — можно ли зарегестрировать в реестре DirectShow Audio Filter как И/О Аудио устройство, в каком нить HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum

A>причем что этот фильтр другие программы видели в списках устройств (всякие skype, виндовые аудио пропертиз)

A>можно ли так сделать или надо писать драйвер виртуального аудио устройства по типу VAC?


A>С уважением

A>Дмитрий

A>заранее спасибо за помощь


Запросто! Смотри интерфейс CLSID_FilterMapper2. Регистрируешь в категории CLSID_AudioInputDeviceCategory.
Re[2]: DS Filter as Audio Device
От: alvas  
Дата: 09.03.10 09:02
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

A>>может кто может подскзаать — можно ли зарегестрировать в реестре DirectShow Audio Filter как И/О Аудио устройство, в каком нить HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum

A>>причем что этот фильтр другие программы видели в списках устройств (всякие skype, виндовые аудио пропертиз)

A>>можно ли так сделать или надо писать драйвер виртуального аудио устройства по типу VAC?


ATP>Запросто! Смотри интерфейс CLSID_FilterMapper2. Регистрируешь в категории CLSID_AudioInputDeviceCategory.


А это устройство будет видимым только для DirectShow?
http://alvas.net — Аудио-инструменты для .Net разработчиков
Re[2]: DS Filter as Audio Device
От: amid493 СССР http://gesell-ru.blogspot.com/
Дата: 09.03.10 09:09
Оценка:
ATP>Запросто! Смотри интерфейс CLSID_FilterMapper2. Регистрируешь в категории CLSID_AudioInputDeviceCategory.

ок спасибо буду глядеть)
Re[2]: DS Filter as Audio Device
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 09.03.10 11:05
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

A>>можно ли зарегестрировать в реестре DirectShow Audio Filter как И/О Аудио устройство, в каком нить HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum

A>>причем что этот фильтр другие программы видели в списках устройств (всякие skype, виндовые аудио пропертиз)

ATP>Запросто! Смотри интерфейс CLSID_FilterMapper2. Регистрируешь в категории CLSID_AudioInputDeviceCategory.


Человек спрашивал, можно ли сделать так, чтобы DirectShow Filter автоматически был представлен, как обычное звуковое устройство (MME/DS/WASAPI). А это, увы, невозможно. Наоборот — пожалуйста, стандартные фильтры DirectShow автоматически создаются для каждого известного звукового устройства.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: DS Filter as Audio Device
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 09.03.10 11:05
Оценка:
Здравствуйте, amid493, Вы писали:

A>можно ли зарегестрировать в реестре DirectShow Audio Filter как И/О Аудио устройство, в каком нить HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum

A>причем что этот фильтр другие программы видели в списках устройств (всякие skype, виндовые аудио пропертиз)

Нет.

A>или надо писать драйвер виртуального аудио устройства по типу VAC?


Да, только так. Под 2k/XP/2k3 можно обойтись user-mode драйвером, под Vista/Win7 — только WDM.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: DS Filter as Audio Device
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 09.03.10 13:32
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, amid493, Вы писали:


A>>можно ли зарегестрировать в реестре DirectShow Audio Filter как И/О Аудио устройство, в каком нить HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum

A>>причем что этот фильтр другие программы видели в списках устройств (всякие skype, виндовые аудио пропертиз)

ЕМ>Нет.


A>>или надо писать драйвер виртуального аудио устройства по типу VAC?


ЕМ>Да, только так. Под 2k/XP/2k3 можно обойтись user-mode драйвером, под Vista/Win7 — только WDM.


Вы хоть бы проверили сначала, прежде чем так уверенно утвердительно утверждать...

что этот фильтр другие программы видели в списках устройств (всякие skype, виндовые аудио пропертиз)

Skype — видит, Видео редакторы, граберы видят, почти все нормальные программы работающие с видео видят. Зачем посылать человека так далеко.... ???
Re[3]: DS Filter as Audio Device
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 09.03.10 17:17
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Вы хоть бы проверили сначала, прежде чем так уверенно утвердительно утверждать...


Не видел ни одного DS-фильтра, который бы виделся, как стандартное MME/DS устройство, и не представляю, за счет какой технологии это возможно. Примеров есть?

Да, если речь идет о Vista-only — там такое вполне возможно, но в исходном посте это не оговаривалось.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: DS Filter as Audio Device
От: amid493 СССР http://gesell-ru.blogspot.com/
Дата: 10.03.10 03:41
Оценка:
ЕМ>Да, если речь идет о Vista-only — там такое вполне возможно, но в исходном посте это не оговаривалось.

речь идет о решении под XP, Vista, Win7 и последующие оси.
Re[3]: DS Filter as Audio Device
От: amid493 СССР http://gesell-ru.blogspot.com/
Дата: 10.03.10 03:50
Оценка:
ATP>Skype — видит, Видео редакторы, граберы видят, почти все нормальные программы работающие с видео видят. Зачем посылать человека так далеко.... ???

речь идет именно о аудио фильтре, а не видео.
Re[4]: DS Filter as Audio Device
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 10.03.10 07:52
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, AcidTheProgrammer, Вы писали:


ATP>>Вы хоть бы проверили сначала, прежде чем так уверенно утвердительно утверждать...


ЕМ>Не видел ни одного DS-фильтра, который бы виделся, как стандартное MME/DS устройство, и не представляю, за счет какой технологии это возможно. Примеров есть?


ЕМ>Да, если речь идет о Vista-only — там такое вполне возможно, но в исходном посте это не оговаривалось.


Обыкновенный System Device Enumerator (CLSID_SystemDeviceEnum) создает COM объект представляющий устройство. Да, вы правы над драйвером автоматически создается оболочка DS, но ни что не мешает зарегистрировать уже готовый COM объект своего класса.
Re[5]: DS Filter as Audio Device
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 10.03.10 16:43
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Обыкновенный System Device Enumerator (CLSID_SystemDeviceEnum) создает COM объект представляющий устройство.


Какое устройство? Речь идет об устройствах, доступ к которым возможен через интерфейс MME (функции waveInXxx/waveOutXxx). Эти функции обслуживает winmm.dll. Первый раз за много лет слышу, чтобы winmm работала с устройствами, отличными от перечисленных в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\waveN. Поэтому повторяю вопрос: действующие примеры реализации есть? Где их можно посмотреть?

Разумеется, можно сделать свой user-mode драйвер, добавляемый через этот самый ключ Drivers32, а он уже может прокидывать запросы куда угодно, но это не будет работать в Vista/Win7.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: DS Filter as Audio Device
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 11.03.10 06:54
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Какое устройство? Речь идет об устройствах, доступ к которым возможен через интерфейс MME (функции waveInXxx/waveOutXxx). Эти функции обслуживает winmm.dll.


Какой MME ? Где в вопросе слово MME?

EM> Первый раз за много лет слышу, чтобы winmm работала с устройствами, отличными от перечисленных в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\waveN. Поэтому повторяю вопрос: действующие примеры реализации есть? Где их можно посмотреть?


Зачем вы пользуетесь устаревшим интерфейсом waveInXxx/waveOutXxx, который к тому же еще и эмулируется через DirectSound?

Примеры есть в PlatformSDK. Повторяю, для того что бы нормальные программы захвата видели ваше устройство в драйвера лезть необязательно.
Re[7]: DS Filter as Audio Device
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.03.10 07:23
Оценка: +1
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Какой MME ? Где в вопросе слово MME?


MME — это единственный звуковой интерфейс, поддерживаемый всеми без исключения 32-разрядными виндами. Когда говорят просто "звуковое устройство", без уточнения интерфейса — подразумевают именно MME. А в
вопросе было "причем что этот фильтр другие программы видели в списках устройств (всякие skype, виндовые аудио пропертиз)". При добавлении фильтра предложенными Вами методом он будет виден в списке устройств "Sound/Multimedia", его можно будет назначить стандартным системным устройством записи/воспроизведения, регулировать уровни и т.п.?

ATP>Зачем вы пользуетесь устаревшим интерфейсом waveInXxx/waveOutXxx


Затем, что это единственный универсальный и предсказуемый интерфейс общего назначения. Попробуйте, например, организовать надежную запись звука с относительно низким лагом и произвольным выбором форматов через "неустаревший" DirectSound, чтобы одинаково хорошо работало в XP/Vista/Win7 — посмеемся все вместе.

ATP>который к тому же еще и эмулируется через DirectSound?


Никогда и нигде MME не эмулировался через DirectSound. Вот DirectSound эмулировался через MME при отсутствии прямой поддержки VxD/WDM.

ATP>Примеры есть в PlatformSDK. Повторяю, для того что бы нормальные программы захвата видели ваше устройство в драйвера лезть необязательно.


Audacity, Sound Forge, Audition — это нормальные программы захвата? Какие именно примеры в PlatformSDK это позволяют? Коли заявляете о возможности — будьте добры указать конкретно, мне там копаться недосуг.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: DS Filter as Audio Device
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 11.03.10 09:18
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ> Вами методом он будет виден в списке устройств "Sound/Multimedia", его можно будет назначить стандартным системным устройством записи/воспроизведения, регулировать уровни и т.п.?


Все эти требования прозвучали в вопросе топикастера? Потом причем тут это. Я описал самый простой метод.

ЕМ>Затем, что это единственный универсальный и предсказуемый интерфейс общего назначения. Попробуйте, например, организовать надежную запись звука с относительно низким лагом и произвольным выбором форматов через "неустаревший" DirectSound, чтобы одинаково хорошо работало в XP/Vista/Win7 — посмеемся все вместе.


Так делал (и не раз) — все замечательно работает. Лаг 20 миллисекунд. Считаю что достаточно мало, во всяком случае меньше на non-real time OS и не нужно.

ЕМ>Никогда и нигде MME не эмулировался через DirectSound.

Насколько мне известно функции DSound реализуются драйвером практически без изменений. MME — преобразуется в вызовы драйвера заточенного под DSound. Если все реализовано оптимально, то разницы нет никакой. От куда у вас выигрыш в скорости?

ЕМ>Вот DirectSound эмулировался через MME при отсутствии прямой поддержки VxD/WDM.

Ну вы еще вспомните что было при Царе Горохе. Начиная с 98 Windows это уже не так.

ЕМ>Audacity, Sound Forge, Audition — это нормальные программы захвата? Какие именно примеры в PlatformSDK это позволяют? Коли заявляете о возможности — будьте добры указать конкретно, мне там копаться недосуг.


Понятие нормальность — относительно. Вам нужно вы и копайтесь. Я с вами не спорю, но зачем же людям начинать с драйверов... не подойдет мое решение, сами до написания драйверов дойдут.
Re[2]: DS Filter as Audio Device
От: amid493 СССР http://gesell-ru.blogspot.com/
Дата: 11.03.10 11:49
Оценка:
ATP>Запросто! Смотри интерфейс CLSID_FilterMapper2. Регистрируешь в категории CLSID_AudioInputDeviceCategory.

интересно.
зарегистрировал фильтр в указанной категории — camfrog одно из целевых приложений видит этот фильтр-устройство, а skype видать как то хитрее к делу подходит и отказывается видеть устройство)
Re[9]: DS Filter as Audio Device
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.03.10 11:51
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

ЕМ>>Вами методом он будет виден в списке устройств "Sound/Multimedia", его можно будет назначить стандартным системным устройством записи/воспроизведения, регулировать уровни и т.п.?


ATP>Все эти требования прозвучали в вопросе топикастера?


Они подразумевались, ибо относятся к поведению любого стандартного звукового устройства Windows, с которым может работать практически любой звуковой софт, если он сделан "для звука вообще", а не заточен под определенный интерфейс. Это, если что, элементарно, и до Вашего появления ни разу не нуждалось в уточнениях. А Ваше наивное удивление похоже на реакцию иного продавца компьютерной лавки: "вы же просили модем — я вам и продал винмодем, откуда я знаю, что вы его под какой-то юникс поставите, я и слов-то таких не знаю".

ATP> Потом причем тут это. Я описал самый простой метод.


Угу — с претензией на то, что он еще и универсальный. Человек спрашивал общее решение, Вы же ему выдали очень частное, но с таким видом, будто всегда и везде только так и делают.

ЕМ>>Попробуйте, например, организовать надежную запись звука с относительно низким лагом и произвольным выбором форматов через "неустаревший" DirectSound, чтобы одинаково хорошо работало в XP/Vista/Win7 — посмеемся все вместе.


ATP>Так делал (и не раз) — все замечательно работает. Лаг 20 миллисекунд.


Это Вам очень повезло. Ибо мало что в винде сделано настолько криво, как запись звука через DirectSound. Ибо DS изначально проектировался исключительно для быстрого воспроизведения в игрушках, и записи там не было, как класса — ее прикрутили позднее, и откровенно по-босяцки.

ATP>Насколько мне известно функции DSound реализуются драйвером практически без изменений.


Так было только в 9x/ME, и только на уровне VxD. Только это была не стандартная модель драйвера (там такой вообще не было, каждый делал, как хотел), а для поддержки DS нужно было в базовый VxD-драйвер добавить специальный интерфейс, действительно повторяющий DS. В 98 и дальше DS транслируется в WDM/KS, который на него совершенно не похож.

ATP>MME — преобразуется в вызовы драйвера заточенного под DSound.


Никогда такого не было. Либо драйвер сам экспортировал все необходимые для MME функции (9x/ME/2k/XP/2k3), либо MME транслируется напрямую в WDM/KS.

ATP> Если все реализовано оптимально, то разницы нет никакой. От куда у вас выигрыш в скорости?


ЕМ>>Вот DirectSound эмулировался через MME при отсутствии прямой поддержки VxD/WDM.


ATP>Ну вы еще вспомните что было при Царе Горохе. Начиная с 98 Windows это уже не так.


Ну-ну, и как же это, по-Вашему, было, начиная с 98?

ЕМ>>Audacity, Sound Forge, Audition — это нормальные программы захвата? Какие именно примеры в PlatformSDK это позволяют? Коли заявляете о возможности — будьте добры указать конкретно, мне там копаться недосуг.


ATP>Понятие нормальность — относительно. Вам нужно вы и копайтесь.


Вообще-то, в приличном обществе принято, что заявившему о факте наличия чего-либо следует предоставить и некие конкретные обоснования. Перекладывать бремя доказательство на сомневающихся — типичный подход жулика.

Я вот сделал поиск по дереву Samples из PSDK 2003 Server, и не нашел там ни CLSID_FilterMapper, ни CLSID_AudioInputDeviceCategory. Я искал в каком-то не том PSDK?

ATP>Я с вами не спорю, но зачем же людям начинать с драйверов... не подойдет мое решение, сами до написания драйверов дойдут.


Ага, при этом потеряв изрядное количество времени на прохождение тупикового пути, и не менее изрядно поматерив доброхота, уверенно по этому пути направившего...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: DS Filter as Audio Device
От: amid493 СССР http://gesell-ru.blogspot.com/
Дата: 11.03.10 11:51
Оценка:
ATP>Запросто! Смотри интерфейс CLSID_FilterMapper2. Регистрируешь в категории CLSID_AudioInputDeviceCategory.

но я не исключаю что я где то накосячил потому как с ДШ только начал знакомиться и возможно не правильно прописал пины или фильтр инфо.
Re[2]: DS Filter as Audio Device
От: amid493 СССР http://gesell-ru.blogspot.com/
Дата: 11.03.10 11:53
Оценка:
еще интересно что GraphEdit видит данный фильтр в категории Инпут Девайсов.
Re[2]: DS Filter as Audio Device
От: amid493 СССР http://gesell-ru.blogspot.com/
Дата: 11.03.10 12:10
Оценка:
похоже дело в том что фильтр прописался в CLSID_AudioInputDeviceCategory
но почему то не прописался в
HKEY_CURRENT_USER\Software\Microsoft\ActiveMovie\devenum
а скайп похоже именно оттуда берет список устройств
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.