|
#1
|
|||
|
|||
|
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
|
||||
|
||||
|
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 arm5tejl as far as I understand. Do you know anything I could do about the above error? Regards, flip
__________________
Check out flipflip's Squeezebox Server On (some) DiskStation (SSODS) and on (some) TurboStations (SSOTS) and some other devices! Please do NOT file SSODS bugs in (SD's) bugzilla. Use the forums. And only the forums. Thanks. |
|
#3
|
|||
|
|||
|
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
|
|||
|
|||
|
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
|
||||
|
||||
|
Quote:
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
__________________
Check out flipflip's Squeezebox Server On (some) DiskStation (SSODS) and on (some) TurboStations (SSOTS) and some other devices! Please do NOT file SSODS bugs in (SD's) bugzilla. Use the forums. And only the forums. Thanks. |
|
#6
|
||||
|
||||
|
(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 :-)
__________________
Check out flipflip's Squeezebox Server On (some) DiskStation (SSODS) and on (some) TurboStations (SSOTS) and some other devices! Please do NOT file SSODS bugs in (SD's) bugzilla. Use the forums. And only the forums. Thanks. |
|
#7
|
||||
|
||||
|
(and I do have CFLAGS and not CGLAGS.. wrong copy&paste :-)
__________________
Check out flipflip's Squeezebox Server On (some) DiskStation (SSODS) and on (some) TurboStations (SSOTS) and some other devices! Please do NOT file SSODS bugs in (SD's) bugzilla. Use the forums. And only the forums. Thanks. |
|
#8
|
||||
|
||||
|
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
__________________
Check out flipflip's Squeezebox Server On (some) DiskStation (SSODS) and on (some) TurboStations (SSOTS) and some other devices! Please do NOT file SSODS bugs in (SD's) bugzilla. Use the forums. And only the forums. Thanks. |
|
#9
|
||||
|
||||
|
I correct: that was mplayer without the fixpt patch!
Compiling now..
__________________
Check out flipflip's Squeezebox Server On (some) DiskStation (SSODS) and on (some) TurboStations (SSOTS) and some other devices! Please do NOT file SSODS bugs in (SD's) bugzilla. Use the forums. And only the forums. Thanks. |
|
#10
|
||||
|
||||
|
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.
__________________
Check out flipflip's Squeezebox Server On (some) DiskStation (SSODS) and on (some) TurboStations (SSOTS) and some other devices! Please do NOT file SSODS bugs in (SD's) bugzilla. Use the forums. And only the forums. Thanks. |
![]() |
«
Previous Thread
|
Next Thread
»
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
All times are GMT -7. The time now is 20:42.






Linear Mode

