从 3gpp.org 下载的 amrnb 源码在网上的资料很少,找了一圈没有找到比较系统的介绍。从诸多资料里看到 3gpp 里 amr 的根源,google android, ffmpeg 之类的好像也从 3gpp 里出来。amr 的根源暂且不究。现在 windows 下编译 3gpp 源码包里的 coder & decoder, 学习之用。
事实上 3gpp 源码没有依赖什么库,编译很简单。只是资料较少,刚上手时偶尔会头大。
1. 从 http://www.3gpp.org/ 下载源码包。26073-b00.zip 和 ts_126073v110000p0.zip 两个里面都有 c-code 源码。不同在于其他一些 .doc 之类的文档。大体看了一下,里面的文档都基本没用,可略过。
2. 3gpp 源码号称是标准 ansi c code, 市面上大多数编译器应该都能编译过。事实应该也是,我用 msvc 编译时很顺利,没有出现一堆 warning 之类的。nice code. 用 msvc 之前在 debian7 下试图直接 make, 提示 can't determine architecture. 应该是需要加 -D 之类的定义,这个可以后期再尝试一下。typedefs.h 里有细节。
3. 3gpp 源码里有 codec 还有 coder/decoder 两个 bin, codec 还不知道如何单独编译,先编译 coder & decoder
----------------------------------------
1. 新建 win32 console 程序 (ms vs2k5)
2. 根据 src 里的 makefile, 把 coder 需要的 coder.c 和一堆 .h 复制到目录下,有些 .h 文件有同名的 .c 文件,一并复制
3. 把 .c 文件加到