Home of the Squeezebox™ & Transporter® network music players.
Page 1 of 5 123 ... LastLast
Results 1 to 10 of 44
  1. #1
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    18,253

    AlienBBC on ARM based NAS

    Recently a user has posted patches for mplayer so that ARM processors can play RealAudio fast enough to listen to live streams. This means it is now possible for ARM based NAS such as NSLU2, FSG3, DS-101, Linkstation Pro and Thecus N2100 to support AlienBBC plugin.

    The patches have not been included in the mplayer SVN codebase yet. The changed files are attached - they replace all the "cook" files in the libavcodec directory.

    The patches use fixed point rather than floating point. As a benchmark- mplayer streaming a WAV Live Radio 1 to null device gave a 25% loading on my FSG3 (266MHz IXP425). I was able to play live BBC stream using Slimserver 6.3.1 on FSG3 using WAV to SB3 - CPU loading was very high 85% but they may be due to large buffering by mplayer.

    The patches have no ARM specific code so they are applicable to any processor. It is expected that some ARM specific code will appear in the future which will reduce the load further.

    To build you must use a recent mplayer codebase either a source snapshot (http://www.mplayerhq.hu/design7/dload.html ) or an svn.

    Not all snapshot will compile cleanly for the ARM and I had to use the following to get a clean compile.
    --disable-dvdnav
    --disable-dvdread
    --disable-dvdread-internal
    --disable-libdvdcss-internal

    A side benefit is that mplayer already has fixed point decoders for a number of other formats such as AACplus so it can be used for other format streams or files. I believe the author of the patches is looking producing similar patches for the WMA decoder of mplayer.

    With all the default compile options mplayer is very large so memory may become an issue.

  2. #2
    Senior Member flipflip's Avatar
    Join Date
    Apr 2006
    Location
    Swissaland
    Posts
    1,408
    Hi bpa,

    many thanks for the patch. However, I am still stuck at libavcodec:

    Code:
    root@ds107p /ssods/build/mplayer-export-2007-05-18/libavcodec $ make 
    cc -I/volume1/SSODS/include -I../libswscale -I../libavcodec  -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I.. -I.. -I../libavutil -Wdeclaration-after-statement -I. -I.. -I../libavutil -I/volume1/SSODS/include -D_REENTRANT -I/volume1/SSODS/include   -c -o armv4l/dsputil_arm_s.o armv4l/dsputil_arm_s.S
    armv4l/dsputil_arm_s.S: Assembler messages:
    armv4l/dsputil_arm_s.S:79: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:90: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:100: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:111: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:122: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:141: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:152: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:162: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:173: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:184: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:203: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:215: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:228: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:241: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:253: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:272: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:284: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:297: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:310: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:322: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:343: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:357: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:363: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:374: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:378: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:385: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:397: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:401: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:408: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:420: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:424: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:431: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:452: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:466: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:472: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:483: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:487: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:494: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:506: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:510: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:517: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:529: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:533: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:540: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:629: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:637: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:637: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:641: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:641: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:645: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:645: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:649: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:649: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:666: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:674: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:674: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:678: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:678: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:682: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:682: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:686: Error: selected processor does not support `pld [r1]'
    armv4l/dsputil_arm_s.S:686: Error: selected processor does not support `pld [r1]'
    make: *** [armv4l/dsputil_arm_s.o] Error 1
    The DS-107+ has an Marvell 88F5281 which is
    arm5tejl as far as I understand.

    Do you know anything I could do about the above error?

    Regards,
    flip

  3. #3
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    18,253
    Some possibilities.

    1. Compiler has been built for wrong ARM processor.
    2. Configure has detected the wrong processor - can you post config.mak. Override confgure to select arm4 processor not an arm5te.
    3. I haven't looked at codebase recently but there have been incremental additional arm specific code since my post. It is possible 18/5 snapshot may have added some invalid ARM code - if so try the 1.0rc1 with and replace all "cook*" files with my "cook" file.

  4. #4
    Senior Member
    Join Date
    Oct 2005
    Location
    Ireland
    Posts
    18,253
    Try the solution suggested below and pretend you have an ARM4
    see
    http://lists.mplayerhq.hu/pipermail/...il/027446.html

    Edit:
    Did a little more looking.

    It looks like a compiler message possibly because compiler built for wrong processor or wrongly selected during compilation.
    For selection make sure the compiler arch is set as follows '-march=armv5te'
    Last edited by bpa; 2007-05-18 at 07:14.

  5. #5
    Senior Member flipflip's Avatar
    Join Date
    Apr 2006
    Location
    Swissaland
    Posts
    1,408
    Quote Originally Posted by bpa View Post
    T
    Edit:
    Did a little more looking.

    It looks like a compiler message possibly because compiler built for wrong processor or wrongly selected during compilation.
    For selection make sure the compiler arch is set as follows '-march=armv5te'
    Thanks for your help. I came to the same point in the meantime. Now I'm using mplayer-export-2007-05-18 and

    CGLAGS="-I/volume1/SSODS/include -march=armv5te" ./configure --target=armv5tel-linux-gnu --enable-armv5te --prefix=/volume1/SSODS --disable-mencoder --language=en,de,fr --disable-jpeg --disable-gif --disable-tga --disable-liblzo --disable-tv --disable-dvb --disable-sdl --disable-pnm --disable-xvid --disable-toolame --disable-mad --disable-png --disable-vm --enable-md5sum --disable-menu --charset=US-ASCII --disable-dvdread --mandir=/volume1/SSODS/man --disable-tv --disable-bitmap-font --disable-freetype --disable-fontconfig

    and that seems to work. I just have issues with termcap or so:

    Code:
    cc -o mplayer mplayer.o m_property.o mp_fifo.o mp_msg.o mixer.o parser-mpcmd.o subopt-helper.o command.o asxparser.o codec-cfg.o cpudetect.o edl.o find_sub.o m_config.o m_option.o m_struct.o mpcommon.o parser-cfg.o playtree.o playtreeparser.o spudec.o sub_cc.o subreader.o vobsub.o unrarlib.o libvo/libvo.a libao2/libao2.a input/libinput.a libmpcodecs/libmpcodecs.a libaf/libaf.a libmpdemux/libmpdemux.a stream/stream.a libswscale/libswscale.a libvo/libosd.a libavformat/libavformat.a libavcodec/libavcodec.a libavutil/libavutil.a libpostproc/libpostproc.a mp3lib/libmp3.a liba52/liba52.a libmpeg2/libmpeg2.a libfaad2/libfaad2.a tremor/libvorbisidec.a dvdread/libdvdread.a libdvdcss/libdvdcss.a osdep/libosdep.a  -Wl,-z,noexecstack  -L/volume1/SSODS/lib   -lncurses -lz -lspeex -lmpcdec -lpthread -ldl -rdynamic  -lm   
    mplayer.o: In function `main':
    mplayer.c:(.text+0x7250): undefined reference to `load_termcap'
    mp_msg.o: In function `mp_msg_init':
    mp_msg.c:(.text+0x248): undefined reference to `get_term_charset'
    command.o: In function `mp_property_sub':
    command.c:(.text+0x4624): undefined reference to `ass_enabled'
    command.o: In function `run_command':
    command.c:(.text+0x5f38): undefined reference to `ass_step_sub'
    mpcommon.o: In function `update_subtitles':
    mpcommon.c:(.text+0x8d0): undefined reference to `ass_enabled'
    mpcommon.c:(.text+0x8d4): undefined reference to `ass_library'
    mpcommon.c:(.text+0x980): undefined reference to `ass_default_track'
    mpcommon.c:(.text+0xadc): undefined reference to `ass_process_subtitle'
    collect2: ld returned 1 exit status
    make: *** [mplayer] Error 1
    Still trying.. :-)

  6. #6
    Senior Member flipflip's Avatar
    Join Date
    Apr 2006
    Location
    Swissaland
    Posts
    1,408
    (and with your patch and with my stdout-patch..)

    I'll do a make distclean and try again while I'm out a while buying food :-)

  7. #7
    Senior Member flipflip's Avatar
    Join Date
    Apr 2006
    Location
    Swissaland
    Posts
    1,408
    (and I do have CFLAGS and not CGLAGS.. wrong copy&paste :-)

  8. #8
    Senior Member flipflip's Avatar
    Join Date
    Apr 2006
    Location
    Swissaland
    Posts
    1,408

    Success!

    Bpa, that worked now!

    There was one _s.S file in libmpeg2/ (or so) where -march=.. was not passed to gcc.

    But mplayer-stdout now also works on th DS-107+ :-)

    Here are some stats (very rough, 30'' averages):

    mp3 stream http:// or mms://: 55% CPU, 2.3% MEM (of 128MB)

    rtsp, FFmpeg COOK audio decoder:

    Stram rtsp://a1532.l2377450225.c23774.e.lr.akamaistream.net/live/D/1532/23774/v0001/reflector:50225
    --> 100% CPU and mplayer aborts after ca. 20 seconds with "end of stream", wav output playable

    rtsp://a1355.l784539966.c7845.e.lr.akamaistream.net/live/D/1355/7845/v0001/reflector:39966

    --> 49% CPU, 0.9% RAM, wav output o.k.

    Thanks again,

    flip
    w

  9. #9
    Senior Member flipflip's Avatar
    Join Date
    Apr 2006
    Location
    Swissaland
    Posts
    1,408
    I correct: that was mplayer without the fixpt patch!
    Compiling now..

  10. #10
    Senior Member flipflip's Avatar
    Join Date
    Apr 2006
    Location
    Swissaland
    Posts
    1,408
    OK, that didn't change anything in the above results. Maybe it was with the fixpt patch before (I'm pretty sure that I applied it in the second run..).

    Anyway, that's enough for now.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •