美文网首页
Framebuffer/OpenMax/GStreamer框架学

Framebuffer/OpenMax/GStreamer框架学

作者: applecai | 来源:发表于2020-06-27 11:10 被阅读0次

FFmpeg入门后发现和opengl类似,主要就是知道一个流程,然后调用相关API。当然,关于显示类的都有应用框架,比如openMax/GStreamer。所以今天就了解下框架。虽然正常渲染等都希望用GPU,但是没有GPU的情况下只能用cpu,在linux的cpu的显示驱动就是Framebuffer。
好了,今天要了解的目标已经确认.

一,Linux Framebuffer

要素1:流程open/ioctrl/write or mmap。mmap是共享内存
对于应用程序就是操作一块内存(俗称帧缓存), 当然也有可能是双缓存, 一般用于高帧率场景, 一块帧在填充数据时, 另一块在显示, 接着对调过来,
那通过设置哪里告知驱动层读取哪块帧数据呢? 答案是用vinfo.xoffset, vinfo.yoffset
  需要注意的是, 无论用write()、还是mmap()后直接操作内存都只是填充内存而已, 并不代表能够立马显示, 这得看驱动, 如果驱动实现了自刷新(不断从帧缓存拿数据刷到LCD上), 那填充数据到帧缓存就会立马显示出来,
如果驱动没有实现,那应用程序需要主动的调用 ioctl(fp, FBIOPAN_DISPLAY, &vinfo);, 告知驱动可以刷数据了, 如果这都没显示出来, 估计驱动没实现FBIOPAN_DISPLAY功能。
**要素2:内存中填充颜色数据,比如红色值就要看显示设备的格式了,若为rgb565,说明一个颜色用16bit描述。最高的5个bit就是红色的值。
linux Framebuffer设备驱动框架

image.png
参考网址
linux驱动之framebuffer
Linux framebuffer测试程序
Linux Framebuffer编程简介

二,openMax框架

DL、IL、AL三层,看上去有点像autosar的框架,还用了port的概念。2012年就停止更新了,貌似淘汰了。

image.png
参考网址
OpenMAX编程 初识
OpenMAX编程-组件
Android Multimedia框架总结

三,GStreamer框架

貌似由于他的可扩展性,包括FFmpeg都可以作为它的一个插件,所以它是比较受欢迎的多媒体应用框架

image.png
参考网址
GStreamer框架
Gstreamer被ffmpeg或其他媒体框架淘汰了吗?
Gstreamer入门起步helloworld

小结:了解了这些框架后,之后还是详细阅读FFmpeg源码,然后再使用下GStreamer及学习其源码,学习下设计思想。

相关文章

网友评论

      本文标题:Framebuffer/OpenMax/GStreamer框架学

      本文链接:https://www.haomeiwen.com/subject/hsjmfktx.html