I've done a bit of experimenting to understand this issues and the following is a summary of what I have found out. This is a long winded post but I feel it is better to explain as best I can as others may be able to offer suggestions.
1. WHAT DOES THE MPLAYER BANDWIDTH OPTION DO The bandwidth option is Mplayer's implementation of RealPlayer's Turboplay. It is designed to minimise the delay at startup of audio/video. Normally (i.e. no bandwidth option) data is sent to Mplayer at real time speed so there is a delay at the start while Mplayer waits for its cache buffer to fill before starting to play. This delay with Mplayer for "Listen Again" and 128K cache is about 10-15 secs. When the player tells the BBC server that it wishes to use a specific "bandwidth" value - then the BBC server will send data down in a burst to fill the player's buffers quickly and not at the real time rate. It seems that only the TCP connections limits the transfer of data when the Receive window becomes full. I don't know how the BBC server interprets/uses the value of the bandwidth option 2. WHY IS THERE STUTTERING / JERKY VISUALISATIONS AND SB BUFFER IS NOT FULL WHEN BANDWIDTH OPTION IS NOT SPECIFIED. I think the jerkiness is a bug associated with Flac format - I have seen this bug and changed format to WAV and the problem went away. The following is what I think happens. When bandwidth option is not specified, data is sent in real time from the BBC server and so only about 128kbytes are cached by Mplayer - this will effectively be transferred in Flac format to the SB so this will be the small amount of data in SB buffer while playing. As music is played the BBC server will top up in real time and so the level never changes. When bandwidth is specified, then the BBC server sends as much data as possible so a large burst of data will be sent to the SB until the SB's buffer is full - again as music is played BBC server will top it up. I've seen the BBC send at least at least a 1Mbyte of RealAudio - I don't what that is in Flac which is what will be stored in SB. The stuttering and jerky visualisation seems to be associated to when FLAC data is being received by the SB. When bandwidth is not specified - data in sent in small burst about once per second and so the display with stop/start about once per sec. Whereas when bandwidth is specified, a large amount of data is sent at once and SB buffer is filled - so display will be steady for long periods of time as data will not be sent until SB buffer get empty. 3. WHAT IS HAPPENING WHEN \"LISTEN AGAIN\" FAILS. The symptom is non-live RealAudio streams (e.g. BBC Listen Again, NPR programs) stop when playing for no reason typically sometime between 2min and 20 mins after starting. It is reproducible and can be reproduced with standalone Mplayer. On Windows the log will show Mplayer error messages something like rdt chunk not recognized: got 0x53 rdt chunk not recognized: got 0x4d The trigger is the combination of the use of the Mplayer Bandwidth option and tweaking TCP Receive Window to optimise internet connections. In Windows this can be done by an explicit change to the Registry or more often through some sort of utility (e.g. TCPoptimiser). In Linux it is through a change to parameters in /proc/sys/net/core. The Bandwidth option on started being used by AlienBBC since implementation in Mplayer in Jan 2006 and so from AlienBBC 1.02 onwards (I think). So Windows user who tweaked their TCP setting before Jan 2006 would not have seen this problem with AlienBBC. Without the bandwidth option, data is sent in real time so about 16-50k/sec depending on the stream. With bandwidth option specified, it looks like the data is mainly limited by TCP Receive Window. With one test I managed to get 1Mbytes of the PM program in less than 5 secs. Once the TCP receive window is full no more data will be sent until it is ACKed. In TCP, data will not be acknowledge until read by the application. In file transfer 1Mbyte will be acked as soon as saved onto disk but since this data is being played back as Audio this delay can be minutes. As a result TCP server polls Mplayer to see if it is ok with a TCP ZeroWindowPoll and PC acks the ZeroWindow polls and all is OK. This happens a number of times, and as data is processed, more burst of data are sent and ZeroWindows polls are sent. However at some point after a number of these pauses, data seems seems to be "lost" although it is not clear how this happens. Mplayer detects the loss as the RDT protocol error and closes the link to BBC server. Since this problem has been seen on Windows and Linux - it looks like an Mplayer issue. I think Mplayer implementation of Turboplay may be faulty (e.g. it doesn't throttle back after startup). To fix it would require time to investigate and compare against RealPlayer behaviour. As I can get it to happen standalone after 3 mins of operation, I may report the bug to Mplayer team but they are slow on RealAudio bugs (see "Garbled Audio") especially as this involves non-standard Windows/Linux config settings and doesn't affect many users. So the solution at the moment is either remove the Bandwidth option from Slimserver-convert.conf or change back to standard TCP settings. -- bpa ------------------------------------------------------------------------ bpa's Profile: http://forums.slimdevices.com/member.php?userid=1806 View this thread: http://forums.slimdevices.com/showthread.php?t=25553 _______________________________________________ plugins mailing list plugins@lists.slimdevices.com http://lists.slimdevices.com/lists/listinfo/plugins