VLC裁剪和移植到S3C6410

2023-11-10

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 多总结,共享自己的成果和过程。只有整个团队得到提高,我们项目组、甚至公司的研发实力才能真正提高。在我们这样的技术性公司,技术不是万能,但是没有技术则万万不能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VLC裁剪和移植到S3C6410 的相关文章