且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

VLC裁剪和移植到S3C6410

更新时间:2022-04-13 18:15:01

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