龙芯(Loongson) loongarch平台下的mplayer交叉编译

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值