mplayer的ts流解析以及udp,rtp网络方面稳定性比vlc要弱不少,现在很多应用都需要网络接收播放,修改了下vlc的代码,把6410的mfc的decoder加入到vlc,测试效果果然不错,很稳定...
vlc的编译和配置太繁琐了,时间都浪费在这上面了,把移植配置的过程记录下,供遇到相同问题的人参考..
首先去官方下载最新release的vlc源码包:vlc-1.0.1.tar.bz2
1.修改configure.ac,添加s3c6410 mfc的头文见和库的检查,以及codec module,命名为s3c
dnl
dnl Video codecs:
AC_ARG_ENABLE(s3c,
[ --enable-s3c H264 decoder support with libs3c (default enabled)])
if test "${enable_s3c}" != "no"; then
AC_ARG_WITH(s3c-tree,
[ --with-s3c-tree=PATH s3c tree for static linking ],[],[])
if test "${with_s3c_tree}" != "no" -a -n "${with_s3c_tree}"
then
real_s3c_tree="`cd ${with_s3c_tree} 2>/dev/null && pwd`"
if test -z "${real_s3c_tree}"
then
dnl The given directory can't be found
AC_MSG_RESULT(no)
AC_MSG_ERROR([${with_s3c_tree} directory doesn't exist])
fi
dnl Use a custom libs3c
AC_MSG_CHECKING(for SsbSipMfcDecode.h in ${real_s3c_tree})
if test -f ${real_s3c_tree}/SsbSipMfcDecode.h
then
AC_MSG_RESULT(yes)
VLC_ADD_CPPFLAGS([s3c],[-I${real_s3c_tree}])
VLC_ADD_LIBS([s3c],[-L${real_s3c_tree} -ls3c])
VLC_ADD_PLUGIN([s3c])
LDFLAGS="${LDFLAGS_save}"
else
AC_MSG_RESULT(no)
AC_MSG_ERROR([the specified tree doesn't have SsbSipMfcDecode.h])
fi
else
PKG_CHECK_MODULES(S3C,s3c, [
VLC_ADD_PLUGIN([s3c])
VLC_ADD_LDFLAGS([s3c],[${S3C_LIBS}])
VLC_ADD_CFLAGS([s3c],[${S3C_CFLAGS}])
],[
if test "${enable_s3c}" = "yes"; then
AC_MSG_ERROR([Could not find libs3c on your system: you may get it from qwdu])
fi
])
LDFLAGS="${LDFLAGS_save}"
fi
fi
2.修改/modules/codec/Modules.am
添加自己的codec
SOURCES_s3c = s3c.c
3.执行bootstrap生成configure
4.vi do.sh
./configure --build=i686-linux --host=arm-linux --disable-nls --disable-hal --disable-mtp --disable-sout --disable-vlm --disable-live555 --disable-dvdnav --disable-smb --disable-libcddb --disable-libvcdinfo --disable-libcdio --disable-cdda --disable-vcd --disable-dvb --disable-screen --enable-mad --disable-avcodec --disable-avformat --disable-swscale --disable-postproc --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-cmml --disable-tiger --disable-x11 --disable-xvideo --disable-glx --disable-xinerama --disable-opengl --disable-sdl --disable-sdl-image --disable-freetype --disable-fribidi --disable-fontconfig --disable-libxml2 --enable-fb --enable-oss --disable-pulse --disable-alsa --disable-qt4 --disable-bonjour --enable-libgcrypt --disable-gnutls --enable-vlc --disable-mozilla --disable-dbus --disable-skins2 --disable-xcb --disable-remoteosd --enable-run-as-root --enable-dvbpsi --with-faad-tree=*** --with-libgcrypt-prefix=*** --with-dvbpsi=*** --enable-s3c --with-s3c-tree=*** --exec-prefix=/usr/local/vlc --prefix=/usr/local/vlc CC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc CXX=/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-g++
我只需要H.264(enable-s3c)和aac(faad)以及TS流解析,rtp解析,其他全部关闭
5.编译遇到错误
../libtool: line 814: X--tag=CC: command not found
google得出结论是libtool的版本问题,最新的好像有bug,但是找个老版本来安装太麻烦,无意间看到一个方法:修改libtool文件,将ECHO="echo"替换为echo="echo",错误消失...
6.编译错误
vlc.c:(.text+0x100): undefined reference to `FromLocale'
修改bin/Makefile
vlc_LDADD = ../src/libvlc.la `$(VLC_CONFIG) -libs vlc` $(am__append_2)修改为
vlc_LDADD = ../src/libvlccore.la ../src/libvlc.la `$(VLC_CONFIG) -libs vlc` $(am__append_2)
一路OK........
vlc在6410上终于跑起来。。。
阅读(5584) | 评论(4) | 转发(0) |