mplayer源码编译依赖mpg123和zlib,交叉编译mplayer前先交叉编译mpg123和zlib,并把生成的头文件和库放到指定的目录,交叉编译mplayer时指定依赖的头文件和库路径。
工具链下载地址:http://www.loongnix.cn/zh/toolchain/GNU/
龙芯官网提供了两个交叉编译工具链,一个带向量指令支持,一个不带,下面编译过程,使用了不带向量支持的交叉工具链编译(loongson-gnu-toolchain-8.3.novec-x86_64-loongarch64-linux-gnu-rc1.1.tar.xz)。
1. 依赖包mpg123 交叉编译
源码下载地址(http://www.mpg123.de/),目前版本mpg123-1.31.3.tar.bz2
源码不支持–host=loongarch64-linux-gnu,需要修改mpg123源码build/config.sub文件,在适当的位置添加loongarch64字段,可以参考mips的。或者参考下载我修改好的配置文件。
./configure CC=loongarch64-linux-gnu-gcc --host=loongarch64-linux-gnu --prefix=/home/ufo/loongson/tools/mplayer/install --with-cpu=generic_nofpu
make -j$(nproc)
make install
2. 依赖包zlib 交叉编译
源码下载地址(http://www.zlib.net/),目前版本zlib-1.2.13.tar.xz
./configure --prefix=/home/ufo/loongson/tools/mplayer/install
修改生成的Makefile
CC=loongarch64-linux-gnu-gcc
LDSHARED=loongarch64-linux-gnu-gcc -shared -Wl,-soname,libz.so.1,–version-script,zlib.map
AR=loongarch64-linux-gnu-ar
RANLIB=loongarch64-linux-gnu-ranlib
执行编译:
make -j$(nproc)
make install
3. mplayer 交叉编译
源码下载地址(http://www.mplayerhq.hu/design7/dload.html),目前版本MPlayer-1.5.tar.xz
源码不支持loongarch编译,需要修改configure文件,参考mips,添加loongarch字段,或者参考下载我修改好的配置文件。
参考CONFIG_WMV2DSP, 在适当位置添加
HAVE_LASX = no
HAVE_LSX = no
#define HAVE_LASX 0
#define HAVE_LSX 0
生成的config.h头文件就会包含
#define HAVE_LASX 0
#define HAVE_LSX 0
LASX和LSX是loongarch的向量指令集,可以提高CPU对媒体编解码的性能,据目前了解loongaon3A CPU支持这两个指令集的,但是loongson2K系列CPU不支持,
龙芯官网提供了两个交叉编译工具链,一个带向量指令支持,一个不带,工具链下载地址:http://www.loongnix.cn/zh/toolchain/GNU/
根据自己下CPU和需求选择即可。
loongson2K系列CPU选择不带向量支持的交叉工具链loongson-gnu-toolchain-8.3.novec-x86_64-loongarch64-linux-gnu-rc1.1.tar.xz
并定义
#define HAVE_LASX 0
#define HAVE_LSX 0
loongaon3A CPU选择带向量支持的交叉工具链loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.1.tar.xz
并定义
#define HAVE_LASX 1
#define HAVE_LSX 1
使用ossaudio 音频,执行配置脚本:
./configure --disable-mencoder --disable-live --disable-win32dll --disable-dvb --disable-dvdread --disable-dvdnav --enable-fbdev --disable-sdl --enable-ossaudio --cc=loongarch64-linux-gnu-gcc --host-cc=gcc --target=loongarch64-linux --enable-cross-compile --prefix=/home/ufo/loongson/tools/mplayer/install --extra-ldflags="-L/home/ufo/loongson/tools/mplayer/install/lib/" --extra-cflags="-I/home/ufo/loongson/tools/mplayer/install/include/" --disable-debug --disable-mad --disable-static --enable-v4l2 --enable-tv-v4l2 --enable-radio-v4l2
如果需要v4l2支持可以添加配置选项:
–enable-v4l2 --enable-tv-v4l2 --enable-radio-v4l2
camera视频捕获需要用到v4l2
执行编译:
make -j$(nproc)
make install
install 失败问题:
修改Makefile文件中的
$(INSTALL) -m 755 $(INSTALLSTRIP) $< $(BINDIR)
把 $(INSTALLSTRIP) 去掉,重新执行make install
生成的mplayer可执行文件在 /home/ufo/loongson/tools/mplayer/install/bin/ 目录下
4. 测试
把以上交叉编译生成的可执行文件和库文件复制到板卡的根文件系统下:
把/home/ufo/loongson/tools/mplayer/install/bin/mplayer 复制到开发板的根文件系统的bin/目录下
把/home/ufo/loongson/tools/mplayer/install/lib/ 库文件复制到开发板的根文件系统的lib/目录下
如果是静态编译则不需要复制库文件。
测试播放mp3:
mplayer -srate 48000 xxx.mp3
多声卡,指定声卡播放
mplayer -ao oss:/dev/dsp1 /home/xxx.mp3