Chromium 定制之 FFmpeg 裁剪

本文详细介绍了在Chromium中定制FFmpeg裁剪的过程,重点关注WebAudio模块对FFmpeg的RDFT接口需求。通过修改相关宏定义,实现针对ARM平台的FFmpeg最小化定制。同时,文章讨论了FFmpeg Wrapper改造,解决了dlopen和dlsym可能导致的coredump问题,并总结了编译shared library和LICENSE检查的实用技巧。
摘要由CSDN通过智能技术生成

 

 

一、FFmpeg 的定制

在定制 Chromium 过程中,发现 WebAudio 模块依赖于 FFmpeg,但是只用到了里面的少许接口,因此需要对 FFmepg 做裁剪。

Chromium 源码中提供了对 FFMPEG 整个模块编译的支持,并提供了相关的开关来控制,但是默认该开关是关闭的。

发现 WebAudio 中用到的几个 FFmpeg 中的接口都是 RDFT 相关。接口的实现全都在 avfft.c 这个 C 源文件中。该源文件中还有 FFT、MDCT、DCT 部分的接口实现,这些函数都被预处理指令结合诸如 CONFIG_RDFT、CONFIG_MDCT、CONFIG_DCT 之类的宏定义来控制是否参与编译。

剩下的任务便是从 FFMPEG 中 截取 RDFT 相关接口来做最小化定制。即以 avfft.c 文件出发,编译出一个可用的最小动态库,以满足 WebAudio 模块的需求。

对于 CONFIG_RDFT、CONFIG_MDCT、CONFIG_DCT 等宏的定义,Chromium 针对不同的平台,以及针对 Chrome/Chromium 商标的区分,分别作了预设的配置:

1

2

sed -n 543p third_party/ffmpeg/ffmpeg.gyp

            'platform_config_root'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值