Текущее время: 28 мар 2024, 19:33 • Часовой пояс: UTC + 3 часа
Сообщения без ответов | Активные темы

DSPack + beholder

Начать новую темуОтветить на тему Страница 1 из 1 [ Сообщений: 3 ]
Версия для печати Пред. тема | След. тема
АвторСообщение
Сообщение Добавлено: 25 июл 2012, 10:27. Заголовок сообщения:  DSPack + beholder
Зарегистрирован:
    25 июл 2012, 10:08
Сообщения: 2
Работа горит. помогите, подскажите как поступить. Нужна запись одновременно с 2-х карт. все работает, но разрешение не переключается. Знаю, что можно настроить так, что-бы запись через DirectShow автоматически настраивалась на нужное мне разрешение (так уже работало на старой машине) но как это сделать не знаю. В прошлый раз получилось случайно...

Пишу на дельфи, использую библиотеку DSPack (Классовая обертка над DirectShow)
к библиотеке идут примеры.
один из них - простейший захват с веб-камеры или тв-тюнера: выбирается
устройство, выбирается разрешение, кнопка записи.

Старенький авермедиа отрабатывает отлично.

а вот бехолдеры находятся:
Behold TV 609 FM: A/V Capture [Slot 3]
Behold TV 609 RDS: A/V Capture [Slot 4]

Но задать разрешение невозможно:
Major Type: Analogvideo - Sub Type: UnKnown Format: Unknown

что делать, где рыть?
Профиль 
Сообщение Добавлено: 25 июл 2012, 11:58. Заголовок сообщения:  Re: DSPack + beholder
Beholder
Аватара пользователя
Зарегистрирован:
    19 авг 2004, 11:47
Сообщения: 190
Разрешение кадра меняется на пине Capture устройства A/V захвата.

Цитата:
Major Type: Analogvideo - Sub Type: UnKnown Format: Unknown

Это не тот пин что вам нужен, это служебный входной пин, там формат менять не нужно.

Действия примерно такие:
1) Находим указатель на пин Capture устройства A/V захвата.
2) Получаем интерфейс IAMStreamConfig с этого пина.
3) Меняем формат посредством IAMStreamConfig::SetFormat. Структуру AM_MEDIA_TYPE можно сначала получить через IAMStreamConfig::GetFormat, затем ее модифицировать и записать обратно через SetFormat.

Получить интерфейс IAMStreamConfig можно также в лоб через ICaptureGraphBuilder2:
Код:
hr := pICaptureGraphBuilder2.FindInterface(@PIN_CATEGORY_CAPTURE, @MEDIATYPE_Video, g_pAnalogCapture, IID_IAMStreamConfig, pIAMStreamConfig);

pICaptureGraphBuilder2 - указатель на интерфейс ICaptureGraphBuilder2
g_pAnalogCapture - указатель на интерфейс IBaseFilter устройства A/V захвата
pIAMStreamConfig - получаемый указатель на интерфейс IAMStreamConfig
Профиль 
Сообщение Добавлено: 26 июл 2012, 15:38. Заголовок сообщения:  Re: DSPack + beholder
Зарегистрирован:
    25 июл 2012, 10:08
Сообщения: 2
Благодарю.

действительно, разработчики библиотеки видно посчитали, что пин Capture всегда должен быть первым... Проблема решена.
Профиль 
Показать сообщения за:  Поле сортировки:    
Начать новую темуОтветить на тему  Страница 1 из 1  [ Сообщений: 3 ]  
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Найти:  
Перейти: