RESOLVED FIXED 173306
[GStreamer] Spreaker live shows won't play
https://bugs.webkit.org/show_bug.cgi?id=173306
Summary [GStreamer] Spreaker live shows won't play
Andres Gomez Garcia
Reported 2017-06-13 01:19:43 PDT
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.
Attachments
Patch (2.69 KB, patch)
2017-06-20 12:06 PDT, Charlie Turner
no flags
Patch (2.80 KB, patch)
2017-06-22 07:42 PDT, Charlie Turner
no flags
Patch (2.67 KB, patch)
2017-06-22 09:00 PDT, Charlie Turner
no flags
Charlie Turner
Comment 1 2017-06-20 12:06:38 PDT
Charlie Turner
Comment 2 2017-06-20 12:07:52 PDT
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.
Xabier Rodríguez Calvar
Comment 3 2017-06-22 07:12:00 PDT
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.
Charlie Turner
Comment 4 2017-06-22 07:42:19 PDT
Xabier Rodríguez Calvar
Comment 5 2017-06-22 08:12:15 PDT
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());
Charlie Turner
Comment 6 2017-06-22 09:00:16 PDT
WebKit Commit Bot
Comment 7 2017-06-22 09:43:55 PDT
Comment on attachment 313633 [details] Patch Clearing flags on attachment: 313633 Committed r218703: <http://trac.webkit.org/changeset/218703>
WebKit Commit Bot
Comment 8 2017-06-22 09:43:57 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.