我即将抓住我的覆盆子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]。抓取器将从帧缓冲区中提取像素并将其传递给将驱动LED的守护进程。
现在我要深入研究OpenMAX API,这看起来很奇怪。我应该从哪里开始?这是一种可行的方法吗?
最好的问候
答案 0 :(得分:2)
如果您想要解码数据,那么就不要发送给渲染器。而不是渲染,取出数据并做任何你想做的事情。解码数据应从video_decode OpenMAX IL组件的输出端口获取。我想您还需要设置正确的输出像素格式,因此将组件输出端口设置为您需要的正确格式,因此转换由GPU完成(YUV或RGB565可用)。
答案 1 :(得分:0)
起初我认为你应该在相机组件的输出上附加一个缓冲区,在CPU中用那个帧做你想做的一切,并通过附加到渲染的输入端口的缓冲区发送一个帧,它不会这是一项微不足道的任务,因为在树莓上几乎没有关于OpenMax的文档。
最佳起点: https://jan.newmarch.name/RPi/
手上最好的地方: http://home.nouwen.name/RaspberryPi/documentation/ilcomponents/index.html
下一个最佳位置:源代码分布在互联网上。
祝你好运。