[FFmpeg-devel] [PATCH] SHOUTcast HTTP Support
Micah F. Galizia
Sun Jan 10 01:15:48 CET 2010
I've attached a patch adds support for SHOUTcast metadata. This patch
attempts to connect via HTTP with icy metadata enabled. If the
connection fails, connection is attempted again without icy metadata (in
case the server doesn't support it).
As new metadata is received, it is updated in the HTTPContext, and a
flag is set to indicate that the metadata has been updated. URLProtocol
has two new methods that indicate that the metadata has changed, and
pass the new metadata (not a copy, but the actual pointer) back to the
AVFormatContext through the ByteIOContext. Note, that the definition of
AVMetadata and AVMetadataConv has been moved from avformat.h to avio.h
so that they are defined before the definition of URLProtocol.
ByteIOContext has been updated to wrap the new URLProtocol methods so
that as packets are read the metadata can be returned. If the
ByteIOContext reports new metadata, then the updated fields are added to
A new method has been added to metadata API to allow applications to
monitor changes in metadata (av_metadata_updated), and ffplay has been
updated to use it.
One point I would like to note is that I was never able to find a server
that didn't like the icy-metadata request, so I haven't really verified
that reconnection without icy-metadata works. If someone knows a server
that will respond with an error, I would like to know.
Thanks in advance!
Micah F. Galizia
micahgalizia at gmail.com
"The mark of an immature man is that he wants to die nobly for a cause,
while the mark of the mature man is that he wants to live humbly for
one." --W. Stekel
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 12099 bytes
Desc: not available
More information about the ffmpeg-devel