[Icecast-dev] understanding icecast decoding from a listener client perspective

Andy Martin zippo227 at gmail.com
Thu Oct 3 15:44:05 PDT 2013


I want to write an icecast listener client using C# and C++. I can 
asynchronously connect read the continuous bytes from the stream using 
some basic C# code. When I look at the bytes (interpreted as ASCII) I 
don't understand what it is that I need to be using before passing the 
Ogg to libogg. I see some artist information, and I know that there is 
an ICY200OK type of message. I also see the word Oggs at the beginning. 
But, what do I really need to do to decode the stream and the header? 
What parts of the header are actually necessary for libogg to start 
pulling the packets?

Ideally, my client would connect to the stream and read the header as 
well as detect track information that is included in the icecast 
periodically.

The documentation that I've been reading for Icecast only explains the 
server and source client side. I've been working with icecast for a 
little over a year now, and I have had to resort to commercial products 
for decoding and playing a stream. I want to include this capability in 
my project without having to ask people to use Winamp or some other 
player. I  want to find the documentation on how to read the stream; how 
to interpret the periodic meta-data; how to pack these bytes into 
something usable for libogg. I'm very new to this concept of pages and 
packets.

Thank you in advance for reading this request.
-- 

Best,
Andy S. Martin

www.guitarrpg.com  <http://www.guitarrpg.com>
M.S. Computer Science Game Development
University of Southern California '2013 Alumni

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/icecast-dev/attachments/20131003/db53c73c/attachment.htm 


More information about the Icecast-dev mailing list