android - 如何在 stagefright 媒体播放器中编写和移植 OpenMAX 软件视频解码器组件?

标签 android stagefright hevc openmax

我浏览了这个链接和其他一些链接,

  1. khronos
  2. OpenMax_Development_Guide
  3. bellagio_openmax_il_open_source_implementation_enables_developers_to_create

但都只是解释了调用顺序是怎样的,框图图片等,而没有解释如何编写和构建openmax组件并将其插入android。即使是 link对于 android 构建和移植很复杂,它没有解释,您将需要完整的源代码来编写和构建 openmax 插件或部分 android 源代码,或者没有 android 源代码您可以创建它。

我有 firefly K3288 开发板,android OS Kitkat 4.4 支持 hevc 硬件解码器,但我想添加 hevc 软件解码器。

如果有人知道如何编写和构建 openmax hevc 视频解码器组件并将其插入 android,请提供一些指导。

最佳答案

对于如何开发 OMX 组件的第一个问题,您必须从头开始或使用现有函数的模板来编写一个新组件。请引用 OMXIL 规范,特别是第 2 章

我会建议您编写一个基于Bellagio 实现的组件,可以找到here .请引用 omx_base_video_port.c,因为这对您的解码器开发至关重要。

另一种方法是引用其中一家供应商的实现。在AOSP树中,请引用qcom实现here which could provide you a good reference开始您的开发。

注意:请注意,OMX 包装器更适合状态管理、上下文管理和缓冲区管理。与解码器的交互是 HW 还是 SW 取决于您应该决定的驱动程序架构。一旦此驱动程序架构最终确定,集成到 OMX 中应该相当容易。

第二个问题如何集成hevc解码器,请引用this question其中有相关详细信息。

关于android - 如何在 stagefright 媒体播放器中编写和移植 OpenMAX 软件视频解码器组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794063/

相关文章:

java - 如何在 java 中使用 ant 脚本中的信息? (安卓)

android - 在 webview android 中截取视频的屏幕截图

android - 如何在 fragment 布局上添加按钮?(Google map Android studio)

Android 浏览器媒体播放器(stagefright?)显示的媒体名称

android - 使用 libfuzzer 对共享库进行模糊测试

c++ - 使用 FFmpeg 从 HEVC 视频读取 SEI 数据

android - 无法在 Play 上安装我的第一个应用。支持设备之间的 Galaxy Nexus,但显然不是我的 Nexus

android - GingerBread 上的 MediaPlayer Framework 和 Apple 的 HTTP Live Streaming 支持

ffmpeg - 这可以在 Handbrake 或 FFMPEG 中完成吗

ffmpeg - 优化 hevc 工具箱编码,使其看起来像 ffmpeg 中的 x265 编码