Chinaunix首页 | 论坛 | 博客
  • 博客访问: 538342
  • 博文数量: 70
  • 博客积分: 3162
  • 博客等级: 中校
  • 技术积分: 850
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-23 13:30
文章分类
文章存档

2013年(1)

2012年(4)

2011年(1)

2010年(7)

2009年(9)

2008年(20)

2007年(3)

2006年(25)

分类: LINUX

2010-10-22 18:35:48

不久前把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


阅读(4744) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~