不久前把tcc8900(arm11)的硬件deocoder(包含h264,vc1,mpeg4,rmvb,mpeg2,etc..)加入到最新的vlc(vlc-1.1.4)中,效果还不错。
一直没时间整理文档,最近有不少网友发mail咨询移植大于1.0.1版本的vlc到arm上遇到的问题,把回复的mail内容大致整理了一下,以供大家参考。
首先去官方下载最新release的vlc源码包:vlc-1.1.4.tar.bz2
tcc8900有可用的libavcodec解码器(从mplayer剥离),所以只要做一个适应与此解码器的video out的module即可。
1.修改configure.ac,添加tcc89xx输出模块。
dnl
dnl Linux framebuffer module
dnl
AC_ARG_ENABLE(tcc89xx,
[ --enable-tcc89xx Telechips 89xx Linux framebuffer support (default disabled)])
if test "${enable_tcc89xx}" = "yes"
then
VLC_ADD_PLUGIN([tcc89xx])
VLC_ADD_LIBS([tcc89xx],[-lavcodec -lavutil -ltccvpu])
fi
2.修改modules/video_output/Modules.am
添加
SOURCES_tcc89xx = \
tcc89xx/dev_viqe.h tcc89xx/globals.h tcc89xx/matrix_inv.c tcc89xx/tccfb_ioctl_code.h tcc89xx/triangle.c tcc89xx/viqe_lib.h \
tcc89xx/gamut_main.c tcc89xx/M2Mscaler_Video.c tcc89xx/TCC89x_Physical.h tcc89xx/tccfb_ioctl.h tcc89xx/viqe_cmd.c tcc89xx/Virtual.c \
tcc89xx/gamut_map.h tcc89xx/M2Mscaler_Video.h tcc89xx/TCC89x_Structures.h tcc89xx/TCCUtil.h tcc89xx/viqe_cmd.h tcc89xx/Virtual.h \
tcc89xx/gamut_map_internal.h tcc89xx/tcc_viqe_interface.c tcc89xx/viqe_lib.c tcc89xx/tcc89xx.c
3.执行bootstrap生成configure
4.vi do.sh
./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi --disable-nls --disable-mtp --disable-sout --disable-vlm --disable-dvdnav --disable-smb --disable-libcddb \
--disable-vcd --disable-dvb --disable-screen --enable-mad --enable-avcodec --disable-avformat --disable-swscale --disable-postproc --with-tuning=arm1176jzf-s --enable-tcc89xx \
--enable-faad --disable-libtar --disable-a52 --disable-dca --disable-libmpeg2 --disable-vorbis --disable-speex --disable-png --disable-x264 --disable-fluidsynth --disable-zvbi --disable-kate \
--disable-tiger --disable-xvideo --disable-glx --disable-opengl --disable-sdl --disable-sdl-image --disable-freetype --disable-fribidi --disable-v4l2 --disable-libv4l2 \
--disable-fontconfig --disable-libxml2 --disable-fb --disable-oss --disable-pulse --enable-alsa --disable-qt4 --disable-bonjour --disable-libgcrypt --disable-gnutls --enable-vlc \
--disable-mozilla --disable-dbus --disable-skins2 --disable-xcb --disable-remoteosd --enable-run-as-root --disable-dvbpsi --with-live555-tree=/home/qwdu/8900/vlc/live \
--with-faad-tree=/home/qwdu/8900/vlc/faad2-2.7 --with-mad-tree=/home/qwdu/8900/vlc/libmad-0.15.1b --disable-lua \
--exec-prefix=/usr/local/vlc --prefix=/usr/local/vlc \
CC=/opt/armv6/codesourcery/bin/arm-linux-gcc CXX=/opt/armv6/codesourcery/bin/arm-linux-g++ LD=/opt/armv6/codesourcery/bin/arm-linux-ld RANLIB=/opt/armv6/codesourcery/bin/arm-linux-ranlib AVCODEC_CFLAGS="-I/home/qwdu/8900/vlc/libavcodec -I/home/qwdu/8900/vlc" AVCODEC_LIBS="-L/home/qwdu/8900/vlc/libavcodec -lavcodec -L/home/qwdu/8900/vlc/libavutil -lavutil -L/home/qwdu/8900/vlc/tcc/vpu -ltccvpu -L/home/qwdu/8900/vlc/opencore-amrnb/.libs -lopencore-amrnb -L/home/qwdu/8900/vlc/opencore-amrwb/.libs -lopencore-amrwb -L/home/qwdu/8900/vlc/zlib/lib -lz" ALSA_CFLAGS="-I/home/qwdu/8900/vlc/alsa-lib-1.0.20/include" ALSA_LIBS="-L/home/qwdu/8900/vlc/alsa-lib-1.0.20/src/.libs -lasound" CFLAGS="-DVIQE_INCLUDE -DTCC_89XX_INCLUDE -g" CXXFLAGS="-DVIQE_INCLUDE -DTCC_89XX_INCLUDE -g" LDFLAGS="-L/home/qwdu/8900/vlc/tcc/vpu -L/home/qwdu/8900/vlc/libavcodec -L/home/qwdu/8900/vlc/libavutil"
5.make install遇到错误
注释下面几行
vi modules/Makefile
install-exec-hook:
# if test -z "$(DESTDIR)"; then \
# ../bin/vlc-cache-gen$(EXEEXT) "$(vlclibdir)/plugins" ; \
# else \
# echo "Staged installation: cache generation skipped!" ; \
# fi
阅读(1595) | 评论(0) | 转发(0) |