[Webkit-unassigned] [Bug 78950] New: [Qt] QtWebkit incompatibility with ICY protocol (shoutcast/icecast)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Feb 17 17:51:16 PST 2012


https://bugs.webkit.org/show_bug.cgi?id=78950

           Summary: [Qt] QtWebkit incompatibility with ICY protocol
                    (shoutcast/icecast)
           Product: WebKit
           Version: 420+
          Platform: All
        OS/Version: All
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P3
         Component: WebKit Qt
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: lilkellybutton at yahoo.com


This appears to be a QtWebkit specific issue, as Chrome and Safari work fine with flash based shoutcast players.

However, if you attempt to load any page with a flash shoutcast player in a QtWebkit based browser, the flash player will report a connection refused error, and the server will report the client's connection reset by peer.

Extensive testing of this issue by attempting many workarounds has shown me that it doesn't matter whether the stream originates from the same host as the web page and flash player file, but the same stream re-streamed without the ICY headers will be played perfectly (I'm using VLC to connect to a shoutcast server's stream, and then re-streaming it as plain mp3 over http, and the flash player is able to connect properly).

>From what I can see, the problem is this: An ICY server sends mp3 over http, but the initial response includes a specific set of headers which are not technically valid http headers. QtWebkit therefore sees the invalid headers and refuses to pass the connection and data to the flash application, causing a connection failure.

This isn't technically a *bug*, in that the ICY headers are in fact invalid. However, since ICY is a long established protocol and dominates the audio streaming world, I would humbly suggest that the header parsing code be ammended to account for the standard ICY headers.

I don't have a compilable test case, but if you want to see this problem, simply download the second life V2 viewer, or the Firestorm viewer, and go to http://www.shoutcast.com/ using the built-in browser (Entirely QtWebkit powered) and try to play any of the streams with the flash player provided by their site.

An ICY server (Both Shoutcast and Icecast) prefaces the mp3 stream data with the following headers:

icy 200 OK
icy-notice1:<BR>This stream requires <a href="http://www.winamp.com/">Winamp</a><BR>
icy-notice2:Server Name Goes Here<BR>
icy-name:Server Name Goes Here
icy-genre:GenreGoesHere
icy-url:http://somewebsite.com
content-type:audio/mpeg
icy-pub:0
icy-metaint:0
icy-br:192

Where icy-pub and icy-metaint are boolean values, 0 or 1, and icy-br is the bitrate of the mp3 stream in kbps.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list