Bugzilla – Bug 3001
SB2/3's hardware WMA decoding will not play Sirius streams.
Last modified: 2008-12-15 13:04:44 UTC
I've gone ahead and written a plugin for playing Sirius radio streams over the Internet. The plugin works fine when the server handles the WMA decoding (via mplayer or wmadec) but it chokes on SB2/3's. The stream does not appear to be anything funky (voice codec or DRM). The plugin can be found at: www.abovethelaw.com/squeeze/SiriusRadio/SiriusRadio0-1-0BETA.zip At the beginning of the plugin there's a section for the username and password. I believe you can get a free trial subscription from sirius.com for testing purposes. Here's some debuggins output: 2006-02-05 22:19:37.2656 SiriusRadio: Token:a05075497c16b054ccb6c8e64fb4b94 2006-02-05 22:19:37.7703 SiriusRadio: Login Successful. 2006-02-05 22:19:37.9614 SiriusRadio: Hash Key:826321c51805ec9078455276777993e5 2006-02-05 22:19:38.1041 SiriusRadio: DATA<ASX Version="3.0"> <entry> <ref href="http://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0&mswmext=.asx"/> <ref href="mms://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0"/> <ref href="http://wmbcast.siriusradio2-a-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?backup=a&HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0&mswmext=.asx"/> <ref href="mms://wmbcast.siriusradio2-a-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?backup=a&HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0"/> <ref href="http://wmbcast.siriusradio2-b-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?backup=b&HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0&mswmext=.asx"/> <ref href="mms://wmbcast.siriusradio2-b-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?backup=b&HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0"/> </entry> </ASX> 2006-02-05 22:19:38.1076 SiriusRadio: StreamURL:mms://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0 2006-02-05 22:19:55.8725 This player supports direct streaming for mms://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0 as mms://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0, let's do it. 2006-02-05 22:19:55.9323 setting up direct stream (3423088900:80) autostart: 3. 2006-02-05 22:19:55.9334 request string: GET /wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0 HTTP/1.0 Accept: */* User-Agent: NSPlayer/4.1.0.3856 Host: wmbcast.siriusradio2-secure.speedera.net Pragma: xClientGUID={d6c8484b-21e8-eb67-085c-911f3257809f} Pragma: no-cache,rate=1.0000000,stream-time=0,stream-offset=0:0,request-context=1,max-duration=0 Connection: Close 2006-02-05 22:19:56.9961 processing headers for direct streaming 2006-02-05 22:19:56.9968 $VAR1 = 'HTTP/1.0 200 OK Content-Type: application/vnd.ms.wms-hdr.asfv1 Server: Cougar/9.00.00.3380 Content-Length: 806 Date: Mon, 06 Feb 2006 04:19:55 GMT Pragma: no-cache, client-id=3022753366, xResetStrm=1, features="broadcast" Cache-Control: no-cache, x-wms-stream-type="broadcast" Last-Modified: Sat, 30 Dec 1899 00:00:00 GMT Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.fastcache '; 2006-02-05 22:19:56.9984 Backtrace: frame 0: Slim::Player::Squeezebox2::directHeaders (/PerlApp/Slim/Networking/Slimproto.pm line 380) frame 1: Slim::Networking::Slimproto::_http_response_handler (/PerlApp/Slim/Networking/Slimproto.pm line 287) frame 2: Slim::Networking::Slimproto::client_readable (/PerlApp/Slim/Networking/Select.pm line 117) frame 3: Slim::Networking::Select::select (slimserver.pl line 626) frame 4: main::idle (slimserver.pl line 562) frame 5: main::main (slimserver.pl line 59) frame 6: PerlSvc::Interactive (perlsvc.pl line 1485) frame 7: PerlSvc::_interactive (slimserver.pl line 0) frame 8: (eval) (slimserver.pl line 0) 2006-02-05 22:19:56.0004 processing 8 headers 2006-02-05 22:19:56.0006 header: Content-Type: application/vnd.ms.wms-hdr.asfv1 2006-02-05 22:19:56.0008 header: Server: Cougar/9.00.00.3380 2006-02-05 22:19:56.0009 header: Content-Length: 806 2006-02-05 22:19:56.0011 header: Date: Mon, 06 Feb 2006 04:19:55 GMT 2006-02-05 22:19:56.0013 header: Pragma: no-cache, client-id=3022753366, xResetStrm=1, features="broadcast" 2006-02-05 22:19:56.0016 header: Cache-Control: no-cache, x-wms-stream-type="broadcast" 2006-02-05 22:19:56.0018 header: Last-Modified: Sat, 30 Dec 1899 00:00:00 GMT 2006-02-05 22:19:56.0020 header: Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.predstrm, com.microsoft.wm.fastcache 2006-02-05 22:19:56.0023 it looks like a WMA file 2006-02-05 22:19:56.0078 got a stream type:: wma bitrate: title: 2006-02-05 22:19:56.0083 Direct stream is list, get body to explode 2006-02-05 22:19:56.0101 got some body from the player, length 806: $H""0&�u�f��٪b�l�3&�u�f��٪b�l,�u�{�F���`�ɢ�&\b �ܫ�G����� Seh��|�5mJ��B|KXm��v�������� ������_.����� Se.�ӫ������ Se�ܷ������ Ser@�i�M[����_\D+P�ÿ�a������ xa} ��ܷ������ SeN���Y�Y��� �H�W� U[����_\D+x@������� �^�P�WMFSDKVersion7.01.00.3055WMFSDKNeeded0.0.0.0000@Rц1��� �H��ARц1��� �H�Windows Media Audio V8 32 kbps, 32 kHz, stereoa6&�u�f��٪b�l2��|�5mJ��B|KXm� 2006-02-05 22:19:56.3210 saving away that body message until we get an empty body 2006-02-05 22:19:56.5239 parseDirectBody: MMS protocol handler received response body 2006-02-05 22:19:56.7262 parseDirectBody: Parsing WMA Header info from: [mms://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0] 2006-02-05 22:19:56.7294 Parsed body as WMA header. 2006-02-05 22:19:56.7389 This player supports direct streaming for mms://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0 as mms://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0, let's do it. 2006-02-05 22:19:56.7585 setting up direct stream (3423088900:80) autostart: 3. 2006-02-05 22:19:56.7590 request string: GET /wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0 HTTP/1.0 Accept: */* User-Agent: NSPlayer/4.1.0.3856 Host: wmbcast.siriusradio2-secure.speedera.net Pragma: xClientGUID={fa24b787-664d-6384-ac87-1014778b3133} Pragma: no-cache,rate=1.0000000,stream-time=0,stream-offset=0:0,request-context=2,max-duration=0 Pragma: xPlayStrm=1 Pragma: stream-switch-count=1 Pragma: stream-switch-entry=ffff:1:0 2006-02-05 22:19:56.7620 got some body from the player, length 0: 2006-02-05 22:19:56.7624 empty body means we should parse what we have for mms://wmbcast.siriusradio2-secure.speedera.net/wmbcast.siriusradio2-secure/wmbcast_siriusradio2-secure_apr012004_1431_57788?HashKey=826321c51805ec9078455276777993e5&user_type=subscriber&user_id=1149971&campaign=&stream=siriushits1&wmcache=0 2006-02-05 22:19:56.7630 actually, the body was empty. Got nobody...
Created attachment 1140 [details] Direct stream debugging output Sorry about putting this in the original bug message body.
Greg, sorry for the delay on this. Do you have the ability to do a packet capture for when it succeeds (disabling the built-in wma decoder) and fails (using the built-in wma decoder)?
(In reply to comment #2) > Greg, sorry for the delay on this. Do you have the ability to do a packet > capture for when it succeeds (disabling the built-in wma decoder) and fails > (using the built-in wma decoder)? > Dean- The plug-in simply adds a URL to the playlist and then tells SlimServer to play it. I'm not sure what kind of debugging options are available for the server streaming code. If I remeber right the output posted previously is from -d_directstream. Other than that, the only options I could think of would be to run some sort of packet sniffer. -Greg
(In reply to comment #2) > Greg, sorry for the delay on this. Do you have the ability to do a packet > capture for when it succeeds (disabling the built-in wma decoder) and fails > (using the built-in wma decoder)? > I believe that one of the major problems Greg is having with this plugin is that when even when setting SlimServer to disabling the built-in wma decoder the stream is still passed to the SB2/3 for built-in decoding. When Greg states that "plugin works fine when the server handles the WMA decoding (via mplayer or wmadec)" he mean that it works when streaming to a Slimp3, SB1 and/or SoftSqueeze. If the player is a SB2/3 it attempts to decode on the hardware rather then server side, over riding any settings in the Server setup. I can't personally confirm this, I only have Slimp3's and use mplayer to handle the transcoding, but this is what I gathered from the related posts on the forums [[url]http://forums.slimdevices.com/showthread.php?p=84188[/url]]
Subject: Re: SB2/3's hardware WMA decoding will not play Sirius streams. > Other than that, the only options I could think of would be to run > some sort of > packet sniffer. That's what I meant. If you are set up to run ethereal or even tcpdump that would be great.
Andy will be looking at the sirius stuff, but not for the immediate 6.2.2 release. This appears to be a bug in the WMA server metadata interpretation.
Not going to be able to look at this until after 6.5
Created attachment 1619 [details] -d_scan -d_parse -d_directstream log using latest 6.5.1 nightly As requested by Andy, attached is the lastest plugin output log for a stream that doesn't work with the built-in wma decoding enabled.
Thanks, unfortunately not much help there, the stream just fails to play for some reason.
(In reply to comment #9) > Thanks, unfortunately not much help there, the stream just fails to play for > some reason. > Please let me know if there's anything else I can do/supply to help you debug this.
I'm not sure if something recently changed in the firmware or in the actual Sirius streams, but the built-in WMA decoding in SB2/3/Transporters is now able to stream Sirius streams direct (disabling built-in wma is no longer required). I have tested this using the release version of 6.5.1 (build 11206) on a Windows machine. I "believe" I tried the 6.5.1 release previously and it did not work, so my guess is that something changed on Sirius' end that allowed the built-in decoding to handle the streams. As such I'm marking this bug as resolved/fixed.
This bug appears to have been fixed in the latest release! If you are still experiencing this problem, feel free to reopen the bug with your new comments and we'll have another look. Make sure to include the version number of the software you are seeing the error with.