1. linux视频相关内存机制概述

1 常用框架总览

视频通路经常使用大块buf,会用到一些内存相关的内核机制,本文对这些机制做概要介绍,并附一些参考资料。

1. cma

2. dma分配

  • dma相关分配接口,真正分配内存,常以cma为基础

3. dma buf

  • 与dma和内存分配没有直接关系,只是对buffer的管理和共享机制
  • 链接别的机制实际分配的buffer
  • 将一块块buffer与文件系统中的file和fd对应
  • 利用file的唯一性,实现不同驱动模块、内核和用户空间、进程间的buffer共享
  • dma buf只有框架,需要额外提供若干回调函数实现具体功能, ion,dma-heap,还有v4l2、drm里有这些回调的实现
  • 参考: https://blog.csdn.net/hexiaolong2009/article/details/102596744

4 ION

  • 安卓的buffer共享机制,本质是dma-buf的再包装
  • linux 4.14中有ION, 在5.x版本中被删除,取而代之的是dma heap机制

5 dma heap

  • linux里对dma buf的包装,实现若干回调,对外使用更方便和友好
posted @ 2022-01-20 20:18  liuwanpeng  阅读(799)  评论(0编辑  收藏  举报