DirectShow IAMVideoProcAmp
От: AR  
Дата: 19.01.04 20:04
Оценка:
Здравствуйте.

Подскажите пожалуйста как правильно использовать IAMVideoProcAmp при захвате видео с камеры и как направить видеопоток на DirectDrawSurface.

Заранее спасибо.
Re: DirectShow IAMVideoProcAmp
От: Edge  
Дата: 20.01.04 18:57
Оценка:
Здравствуйте, AR, Вы писали:

AR>Подскажите пожалуйста как правильно использовать IAMVideoProcAmp

Там все просто — надо сначала сделать GetRange, а затем менять эначения через Set/Get в этом диапазоне А что, какие-то траблы?

AR>как направить видеопоток на DirectDrawSurface.


Ну, если используется DX9, то через VideoMixerRenderer9 (VMR9) все это легко и замечательно делается через Custom Allocator-Presenters, про это пример в SDK есть и топик в документации.
... << RSDN@Home 1.1.2 stable >>
Re[2]: DirectShow IAMVideoProcAmp
От: AR  
Дата: 20.01.04 21:36
Оценка:
Здравствуйте, Edge, Вы писали:

E>Здравствуйте, AR, Вы писали:


AR>>Подскажите пожалуйста как правильно использовать IAMVideoProcAmp

E>Там все просто — надо сначала сделать GetRange, а затем менять эначения через Set/Get в этом диапазоне А что, какие-то траблы?

Вроде бы так я и делаю, но когда пишу:

hr=pBuilder->FindInterface(&PIN_CATEGORY_CAPTURE,&MEDIATYPE_Video,pCapture, IID_IAMVideoProcAmp, (void **)&pVPA);


то возвращается E_NOINTERFACE. Из-за чего это может быть: может дрова от камеры (SONY DCR-TRV345) не те, а может я неправильно строю граф. Если можно, приведите, пожалуйста, пример.

Спасибо.
Re[3]: DirectShow IAMVideoProcAmp
От: Edge  
Дата: 21.01.04 06:10
Оценка:
Здравствуйте, AR, Вы писали:

AR>возвращается E_NOINTERFACE. Из-за чего это может быть: может дрова от камеры (SONY DCR-TRV345) не те, а может я неправильно строю граф. Если можно, приведите, пожалуйста, пример.


Дело в том, что DV-камеры обычно появляются в системе как Microsoft DV Camera. В этом capture-device, насколько я знаю, управление яркостью/контрастом, etc не предусморено и, соответственно, интерфейса IAMVideoProcAmp нет.
Если используются драйвера от Сони (в чем я сомневаюсь) то там, может быть, и есть IAMVideoProcAmp, не знаю.
Еще в графе должна быть такая штука, как DV-splitter. Я не помню точно, но может быть на ней есть IAMVideoProcAmp. Еще один путь — покопаться в интерфейсах IAMExtDevice и IAMExtTransport, которые представляют камеру, может чего-нить удастся через них вытащить.

Для общего развития можно сходить сюда и
сюда
... << RSDN@Home 1.1.2 stable >>
Re[4]: DirectShow IAMVideoProcAmp
От: Edge  
Дата: 21.01.04 16:54
Оценка:
Здравствуйте, Edge, Вы писали:

>Еще в графе должна быть такая штука, как DV-splitter. Я не помню точно, но может быть на ней есть IAMVideoProcAmp


Фу, глупость сказал В SDK поленился глянуть...
... << RSDN@Home 1.1.2 stable >>
Re[4]: DirectShow IAMVideoProcAmp
От: AR  
Дата: 21.01.04 21:50
Оценка:
Здравствуйте, Edge, Вы писали:

E>Дело в том, что DV-камеры обычно появляются в системе как Microsoft DV Camera. В этом capture-device, насколько я знаю, управление яркостью/контрастом, etc не предусморено и, соответственно, интерфейса IAMVideoProcAmp нет.

E>Если используются драйвера от Сони (в чем я сомневаюсь) то там, может быть, и есть IAMVideoProcAmp, не знаю.
E>Еще в графе должна быть такая штука, как DV-splitter. Я не помню точно, но может быть на ней есть IAMVideoProcAmp. Еще один путь — покопаться в интерфейсах IAMExtDevice и IAMExtTransport, которые представляют камеру, может чего-нить удастся через них вытащить.

Драйвера я использовал родные от SONY. Пробовал подключать камеру и через USB, и через DV, но ничего не помогло, похоже она просто не поддерживает эти интерфейсы. Интерфейс IAMExtDevice находит только VCR на камере.
Если камера не поддерживает эти интерфейсы, возможно ли быстро захватывать кадры (через ISampleGrabber слишком медленно), а дальше я из сам преобразую.

Спасибо.
Re[5]: DirectShow IAMVideoProcAmp
От: Edge  
Дата: 22.01.04 06:53
Оценка:
Здравствуйте, AR, Вы писали:

AR>Драйвера я использовал родные от SONY. Пробовал подключать камеру и через USB, и через DV, но ничего не помогло, похоже она просто не поддерживает эти интерфейсы.

Чтобы точно убедиться, возьми GraphEdit, вставь туда фильтр камеры и пощелкай везде свойства. Если нигде на property pages яркости/контраста нет, то не судьба...

AR>Интерфейс IAMExtDevice находит только VCR на камере.

Вообще-то через IAMExtTransport::GetTransportBasicParameters можно общаться напрямую с девайсом через FireWire путем посылки неких последовательностей данных. Вот здесь все достаточно подробно сказано, и там же есть линк на станарт FireWire. Почитай стандарт, поэкспериментируй и, может быть, будет тебе счастье в управлении камерой.

AR>Если камера не поддерживает эти интерфейсы, возможно ли быстро захватывать кадры

Какая тут связь? Кадры с capture-device будут отдаваться с такой скоростью, какой скажешь.

AR>(через ISampleGrabber слишком медленно), а дальше я из сам преобразую.

Не надо обижать ISampleGrabber . Я мерил, он данные сэмпла размером 768*576*8 за ~2-3 мс отдает (это время вызова GetCurrentBuffer). Если и это тебе медленно, пиши свой собственный фильтр или используй VMR9 в Renderless mode. Вообще, если нужно только отображениене, смысла использовать ISampleGrabber нет, лучше VMR9 подробно изучить.
... << RSDN@Home 1.1.2 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.