> I am trying to add VP8/VORBIS codecs to VLC when it uses your library to
> receive such streams.
> To do this I need to get the VORBIS parameters (included in the a=fmtp
> configuration line).
> 
> I noticed you have some functions to parse this config string, so I
> tried to call parseGeneralConfigStr but it fails.
> Is it because this function can't parse vorbis config ?

Correct - because "parseGeneralConfigStr()" isn't the right function for 
decoding that data.  (That function is used only for payload formats (e.g., 
MPEG-4 audio or video) where the configuration string is encoded as a 
hexadecimal string: two hex digits for each byte of binary data - e.g. 
"DEADBEEFB00B".)  Vorbis, like H.264, uses a more efficient encoding: Base64.

According to RFC 5215 (the Vorbis audio RTP payload format specification), 
section 6, the configuration string (which is accessible, from client code, 
using "MediaSubsession::fmtp_configuration()" (or, equivalently, 
"MediaSubsession::fmtp_config()")) is the Base64 representation of the packed 
structure defined in section 3.2.1.

Therefore, first call "base64Decode()" (see "liveMedia/include/Base64.hh") on 
the configuration string.  That should give you a binary data structure that's 
formatted according to section 3.2.1 of RFC 5215.  Depending on what your 
Vorbis decoder accepts, you might need to do further parsing of that binary 
data.

BTW, if, for testing, you need a RTSP Vorbis audio (and VP8 video) stream, then 
you can use the "LIVE555 Media Server" to stream a ".webm" file (which contains 
Vorbis audio and VP8 video tracks).  Our server code automatically 
demultiplexes these tracks from the file for streaming.  (If you need examples 
of such files, just let me know.)

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to