Я собираюсь захватить видео выход моего Raspberry Pi, чтобы передать его своего рода системе освещения.
Плеер XBMC для PI, omxplayer, пользователи OpenMAX API для декодирования и других функций.
Изучение кода дает следующее:
m_omx_tunnel_sched.Initialize(&m_omx_sched, m_omx_sched.GetOutputPort(), &m_omx_render, m_omx_render.GetInputPort());
насколько я понимаю, это устанавливает конвейер между планировщиком видео и средством визуализации [S] -> [R].
Теперь моя идея состоит в том, чтобы написать компонент граббера и подключить его едва ли в конвейер [S] -> [G] -> [R]. Граббер извлечет пиксели из кадрового буфера и передаст его демону, который будет управлять светодиодами.
Теперь я собираюсь углубиться в API OpenMAX, который кажется довольно странным. С чего мне начать? Это осуществимый подход?
С уважением
Если вы хотите, чтобы декодированные данные, то просто не отправляйте рендереру. Вместо рендеринга возьмите данные и делайте все, что хотите. Декодированные данные должны быть взяты из выходного порта video_decode Компонент OpenMAX IL. Полагаю, вам также необходимо установить правильный формат выходного пикселя, поэтому установите выходной порт компонента в нужный вам формат, чтобы преобразование выполнялось с помощью графического процессора (доступны YUV или RGB565).
Сначала я думаю, что вы должны прикрепить буфер к выходу компонента камеры, сделать все, что вы хотите с этим кадром в ЦП, и отправить кадр через буфер, подключенный к входному порту рендеринга, это не будет тривиальным задача, так как есть немного документации об OpenMax на малину.
Лучшее место для начала:
https://jan.newmarch.name/RPi/
Лучшее место, чтобы иметь на руках:
http://home.nouwen.name/RaspberryPi/documentation/ilcomponents/index.html
Следующее лучшее место: исходные коды, распространяемые через Интернет.
Удачи.