全部博文(1293)
分类: C/C++
2011-04-10 00:22:35
1 由于项目需求,这几天在折腾VLC,需要将它裁剪并移植到PowerPC上,由于板子没有到,先在6410上跑。目前从需求看我们只要VLC作为一个server即可,先贴配置,如下:(几乎disable掉所有东东)
#!/bin/sh
# for arm
#CC=/opt/arm-2008q3/bin/arm-none-linux-gnueabi-gcc \
#CXX=/opt/arm-2008q3/bin/arm-none-linux-gnueabi-g++ \
#ARCH=arm \
# --host=arm-none-linux-gnueabi \
build_alias=i486-linux-gnu \
CFLAGS='-g -O2' \
LDFLAGS=-Wl,--as-needed \
CPPFLAGS= \
CXXFLAGS='-g -O2' \
./configure \
--build=i486-linux-gnu \
--enable-run-as-root \
--prefix=/tmp/vlc \
--with-binary-version=2ubuntu1 \
\
--enable-debug \
--disable-hal \
--disable-mtp \
--disable-dbus \
--disable-dbus-control \
--disable-telepathy \
--disable-mmx \
--disable-sse \
--disable-lua \
--disable-notify \
--disable-audioscrobbler \
--disable-taglib \
--disable-live555 \
--disable-dc1394 \
--disable-dv \
--disable-dvdnav \
--disable-smb \
--disable-dvbpsi \
--disable-v4l2 \
--disable-libcdio \
--disable-libvcdinfo \
--disable-libcddb \
--disable-cdda \
--disable-vcd \
--disable-dvb \
--disable-ogg \
--disable-mkv \
--disable-mod \
--disable-mpc \
--disable-gme \
--disable-mad \
--disable-avcodec \
--disable-avformat \
--disable-swscale \
--disable-postproc \
--disable-libsysfs \
--disable-libtar \
--disable-a52 \
--disable-dca \
--disable-zvbi \
--disable-x11 \
--disable-xvideo \
--disable-glx \
--disable-xinerama \
--disable-xcb \
--disable-opengl \
--disable-sdl \
--disable-sdl-image \
--disable-freetype \
--disable-fribidi \
--disable-fontconfig \
--disable-libxml2 \
--disable-hd1000v \
--disable-skins2 \
--disable-qt4 \
--disable-atmo \
\
--disable-vlm \
--disable-screen \
--disable-wma-fixed \
--disable-id3tag \
--disable-fb \
--disable-oss \
--disable-pulse \
--disable-alsa \
--disable-upnp \
--disable-ncurses \
--disable-visual \
--disable-libgcrypt \
--disable-vlc \
\
--disable-gnutls \
--disable-remoteosd \
--disable-libmpeg2 \
--disable-vorbis \
--disable-speex \
--disable-schroedinger \
--disable-png \
--disable-x264 \
--disable-fluidsynth \
--disable-cmml \
--disable-kate \
--disable-tiger \
--disable-bonjour \
\
# --disable-httpd \
# --enable-static \
2 上面的配置中,将arm部分替换则可以在我们的S3C6410开发板上作为server运行。
3 --enable-static不能加:目前不知道为什么,反正加上后会报告 assert (p_module_bank);通不过,具体原因未跟踪。
4 在开发板上运行:
从板子上挂载编译机器:mount -o nolock 192.168.2.240:/tmp /mnt
在板子上运行:LD_LIBRARY_PATH=$PWD/lib ./bin/vlc --plugin-path=$PWD ../1.mp4 --sout '# std{access=mmsh,mux=ts,dst=192.168.2.225:1234}'
这里注意2点:1) LD_LIBRARY_PATH:可以看ld.so的manuel。2)VLC的参数,--plugin-path=$PWD。
5 到目前为止,在几乎没有动过VLC的具体实现代码的情况下,便移植到S3C6410上成功运行,说明VLC代码质量还是不错的。
6 裁剪移植思路:
1 通过configure尽量去掉无用模块:需要在PC段不断试验,这正是我上一篇blog记录使用distcc的原因。
2 利用新的PC环境模拟开发板来进行调试:这里我使用一台装在笔记本上的vmware来实现。vmware干净安装ubuntu9.04,将编译好的VLC安装到vmware上,通过比较找到那些必须的模块,同时,在PC上模拟可以很方便的使用GDB(CGDB)等工具辅助。提高效率。
3 PC段ok了就可以上板子了,尽量找功能完善的板子来用(我遇到过开发板自己有问题导致走了很多弯路的情况)。
4 多google(为什么不是100du?),学习前辈们的经验:有时候直接将错误信息放到搜
索框中就能找到答案。
7 移植虽然耗时间,但是还是比较顺利的。后继工作需要静下心来搞清楚VLC的各个细节了。VLC对我们后继产品还是有不少帮助的,just like mplayer。
8 多总结,共享自己的成果和过程。只有整个团队得到提高,我们项目组、甚至公司的研发实力才能真正提高。在我们这样的技术性公司,技术不是万能,但是没有技术则万万不能。
本文来自CSDN博客,转载请标明出处:file:///H:/文件夹文件存档/我的VLC/ARM——VLC移植文档/VLC裁剪和移植到S3C6410%20-%20chenee543216的专栏%20-%20CSDN博客.mht