Думаю освоить DirectShow, так как помимо вебки далее придётся работать со звуком, а DS, как я понял, универсальное и актуальное на данный момент средство для работы с мультимедиа в Windows. Хочу начать с того, чтобы переписать свой класс камеры на DirectShow, но мне что-то не ясна логика работы этого API - графы, фильтры, инерфейсы...
Объясните пожалуйста пошагово, как при помощи DirectShow получить кадр с камеры?
Например, с vfw32 я делал следующее:
1. Создаю окно захвата capCreateCaptureWindow
2. Перебираю девайсы от 0 до 9, пытаясь capGetDriverDescription
3. Если успешно по пункту два, делаю бинд драйвера на окно захвата capDriverConnect
4. Если третий успешно, настраиваю камеру (capGetVideoFormat
и capSetVideoFormat
) и устанавливаю коллбек процедуру (capSetCallbackOnFrame
), в которой и описано заполнение глобального RGB-буфера кадра из структуры LPVIDEOHDR
.
То есть после этих действий, я отправляю окну захвата WM_CAP_GRAB_FRAME
и получаю unsigned char *
буфер с RGB-палитрой кадра.
Как прийти к этому RGB-буферу при помощи DirectShow?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
В Qt существует так называемый QGamepadManager Class который отвечает за подключение джойстика и получения с него сигналов при нажатии на кнопку или...
Уточнить корень уравнения x^2-x-03=0 на отрезке [1;2] с точностью Eps = 10^-5, используя метод деления отрезка пополам