我正在寻找一个直接在 Raspberry Pi 上解码视频的示例,而不使用 OpenMAX。
这解释了多媒体软件的不同层次:
这里没有显示一个附加层,“ MMAL ”层(我相信)它是围绕 OpenMAX 的 Broadcom 包装器。(如果不是,它将是 OpenMAX 替代方案,位于内核驱动程序之上)例如 raspivid 和 raspistill 是使用 MMAL 编写的。
我想要一个视频解码示例,其中输入是原始 H.264,输出是内存中的视频或屏幕上的视频。我想直接使用 VCHIQ来做到这一点,而不是使用 OpenMAX。(主要是出于性能和灵活性的原因)
这个 github 存储库:https ://github.com/raspberrypi/userland/包含上面显示的所有内容的源代码(橙色和绿色框;VCHIQ 本身的源代码,VCHIQ 之上的 OpenMAX IL 实现,还有 OpenGL 和 EGL 实现,. ..)。所以理论上它应该足够开始了。问题是如何使用它是非常不明显的,即使一个人非常熟悉 OpenMAX 和一般的多媒体框架。
例如:vchiq_bulk_transmit () 似乎是用于将视频发送到解码器的函数。但是如何初始化 type 的第一个参数VCHIQ_SERVICE_HANDLE_T
呢?结果在哪里,在帧缓冲区中,或者在结果句柄中,或者......?
编辑可以通过提供使用 vchiq 的视频解码的工作示例、显示调用序列的 API 演练(即使不是工作示例)或指向足够文档的指针来收集赏金。一个工作示例将获得大量额外的赏金:)