最近产品中要用到opus,圣上一声令下,把opus移植到我们平台上,什么?opus?opus是什么?在一脸

茫然中,我这特种兵码农就赤手空拳上战场了。

  废话少说,赶紧在网站:https://opus-codec.org/downloads/ 把最新的稳定的opus源码opus-1.2.1.tar.gz下载

到本地linux:解压缩之后,在根目录下执行:

   .configure

   make

  make install

  在一路顺利的情况下,已经可以在linux看opus怎么用了,这里面,有很多例子,以个人经验,首先要看最重要的

demo,在src目录下,查看opus_demo.c 这个文件,你会发现opus的基本使用都在这里:

    编码初始: enc = opus_encoder_create(sampling_rate, channels, application, &err);

    模式配置:   opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate_bps));

    启动编码:  len[toggle] = opus_encode(enc, in, frame_size, data[toggle], max_payload_bytes);

    编码结束: opus_encoder_destroy(enc);

 这么简单?不,这个是简洁,我这里只把重要的抽出来,细节要自己琢磨的。要看怎么配置帧长,怎么配置采样率

main函数上面的结构体:celt_test silk16_test 写的很明白,自己研究喔。

  这里面,其实还有很多例子可以研究,在test目录下有每个函数的详细测试,可以查看函数怎么使用,以及每种模式

的性能怎么样,都可以测出来。

  有人问了,怎么没见你把系统移植到arm平台上?

  这和我的做事方法论有关系,在移植算法时,我一般是先在linux上仿真,尽量把大致算法摸个底,占内存多少?消耗多少

MIPS?能否进行测试?这些没有搞清楚的情况下,贸然的移植,经验告诉我,会欲速则不达哦。

  上面的都搞清楚了,接下来才能启动arm平台上的移植,其实,剩下的就是调试了,把代码加入makefile编译,在适当的地方

调用上面的编解码函数,然后实际调试和测试。移植到arm平台的部分涉及到项目保密,就不多晒了。

转载于:https://www.cnblogs.com/dylancao/p/8315612.html

opus在arm的嵌入式平台上的移植和开发相关推荐

  1. linux嵌入式开发arm7,基于ARM7系列芯片嵌入式平台上实现的设计方案-嵌入式系统-与非网...

    本文介绍的方法是在用ARM7系列芯片S3C4510B和μClinux构建的嵌入式平台上实现的.在嵌入式系统设计过程中,系统的掉电保护越来越受到重视整个掉电保护实现的基本思路是:产生掉电信号,捕捉掉电信 ...

  2. 自动驾驶 | MINet:嵌入式平台上的实时Lidar点云数据分割算法,速度可达 20-80 FPS!...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 这篇文章是激光雷达点云数据分割算法的嵌入式平台上的部署实现.主要的创新点有两点:一是利用多路分支采用不 ...

  3. Ubuntu-Base 18 文件系统 在iMX8平台上的移植

    Ubuntu-Base 18 文件系统 在iMX8平台上的移植 开发板是如下的型号 OKMX8MPX-C V2.0 OKMX8PQ-C开发板 FETMX8MPX-C V1.0 在 飞凌 提供的 ubu ...

  4. 推荐一款不错的嵌入式GUI(玲珑GUI)及在嵌入式linux上的移植

    玲珑GUI介绍 玲珑GUI(LLGUI)是一套使用简单.低价的单片机GUI解决方案.可以用来代替串口屏.组态,降低产品成本,产品软硬件自主可控. 配套界面开发软件,图形化编辑界面,生成C代码. 如其名 ...

  5. 锐捷认证客户端在嵌入式linux平台上的移植

    一.TCP/IP协议简介 IP协议用于将多个包交换网络连接起来,IP不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流 ...

  6. QT4.7.3在dm6446平台上的移植[转]--make[1]: *** [assistant_cs.qm] Error 2

    师兄让我作达芬奇系统下的一个界面程序,听说QT不错,所以几天前就试着把QT移植到dm6446上来.去TI的论坛看了一个在omap3上的移植教程,看起来也不难,于是开始了我的移植过程. 1 首先去htt ...

  7. miniGUI 3.0.2 在Hi3535平台上的移植

    miniGUI是一个自由软件项目.其目标是提供一个快速.稳定.跨操作系统的图形用户界面(GUI)支持系统,尤其是基于 Linux/uClinux.eCos 以及其他传统 RTOS(如 VxWorks. ...

  8. Ubuntu-Base在iMX8MM平台上的移植

    先说废话↓ 转眼大学快过完了,已经开始了毕业设计的开发.笔者的毕业设计是一个运行ARM-Linux的第一人称控制机器人,为了挑(zhe)战(mo)一下自己,选择了一个性能很美丽的平台--iMX8MM, ...

  9. linux嵌入式平台测试,protobuf-c 在arm linux 嵌入式平台的使用 测试

    关于什么是protobuf,网上搜搜一大堆,很多人用的都还是json,以为json是多种语言传输数据是万能的,看完了protobuf的实现,就明白了简单高效才是王道. 1.首先写一个.proto扩展名 ...

最新文章

  1. 反思laravel-admin的使用总结
  2. 今日凌晨Vue3 beta版震撼发布,竟然公开支持脚手架项目!
  3. ChucK学习笔记(一)——下载与安装
  4. java具名参数_Spring JDBC 框架中, 绑定 SQL 参数的另一种选择:具名参数(named parameter)...
  5. Dungeon Master(地牢大师、底下城主)三维bfs
  6. 图形渲染与UWA论坛,mipi官网
  7. Solidity学习笔记
  8. 中国消防安装和维保市场预测及投资战略报告(2021版)
  9. C4专项工程师能力认证 考纲
  10. 推荐!机器学习、深度学习绘图模板.ppt
  11. 太累了,28岁半路转行,坚持了三年现如今年薪36W+,也算是给自己一个满意的交待了
  12. WEB应用项目开发-网店购物系统开发
  13. Intel VTune基本使用介绍
  14. 一起读论文 | 高质量的同行评审意见应该写哪些内容及如何组织?
  15. 【转】2014年中国互联网百强企业榜单(全名单和产品)
  16. CASAIM受邀参加广东省科学院幼儿园举行的第二届STEAM科技节暨庆“六一”科普嘉年华活动
  17. 单页面应用的前端路由原理是什么?
  18. 程序员上班打酱油的方法
  19. 基于Onene-step forming的刚度分析
  20. python,pandas计算布林带(Bollinger Band)

热门文章

  1. mysql 分表后如何扩展_MySQL横向扩展-分库分表解决方案总结
  2. Linux网络编程复习笔记
  3. 编程java 格式_Java代码的基本格式
  4. 汇率兑换 双向兑换_常出国的你一定要看:如何兑换外币最省钱?
  5. 多线程编程下单例模式与多例模式的使用总结
  6. (17/24) webpack实战技巧:生产环境和开发环境并行设置,实现来回切换
  7. 学习产品型是否要满足人们的“懒”需求
  8. 6个用好大数据的秘诀
  9. RunLoop已入门?不来应用一下?
  10. Centos 查看 登录 登出 重启 日志