[FFmpeg-devel] [PATCH] SHOUTcast HTTP Support

Micah F. Galizia micahgalizia
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 
the AVFormatContext.

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...
Name: shoutcast.patch
Type: text/x-diff
Size: 12099 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100109/d34eee51/attachment.patch>

More information about the ffmpeg-devel mailing list