Написание компонента OpenMAX IL, с чего начать

Я собираюсь захватить видео выход моего 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, который кажется довольно странным. С чего мне начать? Это осуществимый подход?

С уважением

3

Решение

Если вы хотите, чтобы декодированные данные, то просто не отправляйте рендереру. Вместо рендеринга возьмите данные и делайте все, что хотите. Декодированные данные должны быть взяты из выходного порта video_decode Компонент OpenMAX IL. Полагаю, вам также необходимо установить правильный формат выходного пикселя, поэтому установите выходной порт компонента в нужный вам формат, чтобы преобразование выполнялось с помощью графического процессора (доступны YUV или RGB565).

2

Другие решения

Сначала я думаю, что вы должны прикрепить буфер к выходу компонента камеры, сделать все, что вы хотите с этим кадром в ЦП, и отправить кадр через буфер, подключенный к входному порту рендеринга, это не будет тривиальным задача, так как есть немного документации об OpenMax на малину.

Лучшее место для начала:
https://jan.newmarch.name/RPi/

Лучшее место, чтобы иметь на руках:
http://home.nouwen.name/RaspberryPi/documentation/ilcomponents/index.html

Следующее лучшее место: исходные коды, распространяемые через Интернет.

Удачи.

0

По вопросам рекламы [email protected]