I'm using WebKitGtk+ with my own JHBuild setting: https://github.com/tanty/jhbuild-epiphany/tree/master WebKit 2.17.3. The compilation was done with CMake args: '-DPORT=GTK -DCMAKE_BUILD_TYPE=Release -DENABLE_MINIBROWSER=ON -DCMAKE_C_FLAGS_RELEASE="-O0 -g -DNDEBUG -DG_DISABLE_CAST_CHECKS" -DCMAKE_CXX_FLAGS_RELEASE="-O0 -g -DNDEBUG -DG_DISABLE_CAST_CHECKS"' Open MiniBrowser and go to, for example: http://www.spreaker.com/user/radiocable For this show, they are live at 08:30-09:30 C(S)ET. You can choose another show at another time, if preferred. When clicking on the play button for the live show to play nothing is played and a banner is shown: "This episode is not available, please try again in a few minutes." This works well with, at least, Firefox.
Created attachment 313420 [details] Patch
One further problem (or perhaps exposed problem) after this patch is that sometimes you will hear some garbled audio before the stream starts properly. This looks like something to do with a PAUSED->PLAYING transition happening too early, but it's a separate issue.
Comment on attachment 313420 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=313420&action=review The problem of this structure is that there is going to be the case of (parsedIcyMetaInt && metadataInterval > 0) being false and you want to set the caps to nullptr there too. You need to rework this to avoid it. > Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:956 > + String icyMetaInt = response.httpHeaderField(HTTPHeaderName::IcyMetaInt); icyMetaInt -> metadataIntervalAsString > Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:958 > + bool parsedIcyMetaInt; isMetatadaIntervalParsed > Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:959 > + gint metadataInterval = icyMetaInt.toInt(&parsedIcyMetaInt); Please use plain int. > Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:962 > + GRefPtr<GstCaps> caps = adoptGRef( > + gst_caps_new_simple("application/x-icy", "metadata-interval", G_TYPE_INT, metadataInterval, nullptr)); You can have this in just one line. No problem with long lines in WK.
Created attachment 313619 [details] Patch
Comment on attachment 313619 [details] Patch I can give you the r+ now but I am not totally convince of the structure. I would either: bool areCapsSet = false; ... if (!areCapsSet) gst_app_src_set_caps(priv->appsrc, nullptr); or even GRefPtr<GstCaps> caps; ... gst_app_src_set_caps(priv->appsrc, caps.get());
Created attachment 313633 [details] Patch
Comment on attachment 313633 [details] Patch Clearing flags on attachment: 313633 Committed r218703: <http://trac.webkit.org/changeset/218703>
All reviewed patches have been landed. Closing bug.