当前位置:   article > 正文

OpenHarmony媒体子系统媒体引擎组件_openharmony媒体子系统架构到硬件抽象适配层

openharmony媒体子系统架构到硬件抽象适配层

1、简介

        HiStreamer是一个轻量级的媒体引擎组件,提供播放、录制等场景的媒体数据流水线处理。

  • 播放场景分为如下几个节点:数据源读取、解封装、解码、输出;
  • 录制场景分为如下几个节点:数据源读取、编码、封装、输出。

        这些节点的具体功能,主要在插件中实现。可以插件的形式扩展支持新的数据源、封装格式、编解码格式、输出方式。

2、逻辑架构

        HiStreamer作为媒体引擎,向上对接player_framework(standard设备上)或者media_lite(mini/small设备上),再对外提供应用API。它内部分为三层:

  • 应用场景封装层: 比如HiPlayer, HiRecorder。
  • Pipeline框架层: 包括Pipeline框架,各个Filter节点实现。
  • 插件层: 包括插件框架,各种插件。

3、插件列表

         HiStreamer插件列表如下:

插件名称路径外部依赖License功能适用场景
FFMPEG Adapterplugins/ffmpeg_adapterFFMPEGLGPL etc.解封装:mp3,m4a,mp4,wav
解码:mp3,aac
支持动态链接的
small/standard设备
File Sourceplugins/source/file_sourceFileSystemApache读取文件数据所有设备
Minimp3 Adapterplugins/minimp3_adapterminimp3CC0解封装: mp3
解码: mp3
所有设备
Minimp4 Demuxerplugins/demuxer/minimp4_demuxerminimp4CC0解封装: m4a所有设备
Aac Demuxerplugins/demuxer/aac_demuxerNAApache解封装: aac所有设备
HDI Sinkplugins/hdi_adapterAudio HDIApache播放音乐mini/small设备

4、媒体引擎组件代码目录   

  1. /foundation/multimedia/histreamer # HiStreamer媒体引擎组件业务代码
  2. ├─LICENSE # 证书文件
  3. ├─engine # 引擎代码
  4. │ ├─foundation # 基础工具类, 包括OS适配
  5. │ ├─pipeline # pipeline框架
  6. │ │ ├─core # pipeline核心实现
  7. │ │ ├─factory # filter工厂
  8. │ │ └─filters # 若干filter节点实现
  9. │ │ ├─codec # 编解码节点实现
  10. │ │ ├─demux # 解封装节点实现
  11. │ │ ├─sink # 输出节点实现
  12. │ │ └─source # 数据源节点实现
  13. │ ├─player # 播放器封装
  14. │ └─plugin # 插件
  15. │ ├─common # 插件接口依赖的基础类型定义
  16. │ ├─core # 插件框架
  17. │ ├─interface # 插件接口
  18. │ └─plugins # 若干插件实现
  19. │ ├─minimp3_adapter # minimp3适配
  20. │ ├─ffmpeg_adapter # FFMPEG适配(适配成封装解封装、编解码插件)
  21. │ ├─hdi_adapter # HDI适配(适配成输出插件)
  22. │ ├─demuxer # 解封装插件
  23. │ ├─sink # 输出插件
  24. │ └─source # 数据源插件
  25. └─interface # 引擎对外接口

5、代码约束

          需要C++11版本或以上。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/329307
推荐阅读
相关标签
  

闽ICP备14008679号