New BBC radio streams with mpd

It seems that the BBC’s radio streams have changed a bit during 2015.  I was interested in getting them to work with mpd.

Note that with mpd streams are maintained by the client, not the server: the client must do something like:

mpc add "http://some.server/some.stream:1234"

As is stands it would appear that mpd cannot handle the streams that are now used by the BBC.  They are:

You can add all these URLs as streams.  They don’t work, however, unless you add a patch to mpd to let FFmpeg handle http:// URIs:

diff --git a/src/input/plugins/FfmpegInputPlugin.cxx b/src/input/plugins/FfmpegInputPlugin.cxx
index 669f8d4..c839ffe 100644
--- a/src/input/plugins/FfmpegInputPlugin.cxx
+++ b/src/input/plugins/FfmpegInputPlugin.cxx
@@ -96,7 +96,8 @@ input_ffmpeg_open(const char *uri,
            !StringStartsWith(uri, "rtsp://") &&
            !StringStartsWith(uri, "rtmp://") &&
            !StringStartsWith(uri, "rtmpt://") &&
-           !StringStartsWith(uri, "rtmps://"))
+           !StringStartsWith(uri, "rtmps://") &&
+           !StringStartsWith(uri, "http://"))
                return nullptr;
 
        AVIOContext *h;
diff --git a/src/ls.cxx b/src/ls.cxx
index 6ab68b6..be94af8 100644
--- a/src/ls.cxx
+++ b/src/ls.cxx
@@ -48,6 +48,7 @@ static const char *remoteUrlPrefixes[] = {
        "rtmp://",
        "rtmpt://",
        "rtmps://",
+       "http://",
 #endif
 #ifdef ENABLE_SMBCLIENT
        "smb://",