<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><blockquote type="cite"><div>I am attempting to receive and play AAC encoded audio from a webcam via RTSP. I have successfully done this for uLaw encoded audio using a custom MediaSink subclass class modeled heavily on the testRTSPClient.cpp example.<br><br>How do I do this for AAC encoded audio? Apparently it's not as simple as grabbing the AAC encoded data the same way I did for the uLaw encoded data in my afterGettingFrame callback.<br></div></blockquote><div><br></div>It actually is.  Each chunk of data that's received by your "RTPSource" object (in this case, it will be a "MPEG4GenericRTPSource" object, but you shouldn't have to care about that, because it gets created automatically by the RTSP client code) should be a single (and complete) AAC audio frame.  You will then feed each such frame to your decoder.</div><div><br></div><div>The only tricky thing is that you (probably) will also need to pass 'configuration' data to your decoder, in order for it to be able to successfully decode the stream.  This configuration data is derived from the stream's 'configuration string', which you (the client) can access by calling "MediaSubsession::fmtp_config()".  You will probably then need to decode this string into binary form by calling "parseGeneralConfigStr()" on it.  The resulting binary data will probably need to be input to your decoder.</div><div><br></div><div><br><blockquote type="cite"><div>In my digging around it would appear that I may need to use the MPEG4GenericRTPSink</div></blockquote><div><br></div>No!  "RTPSink"s (and their subclasses) are used only for *transmitting* RTP packets, not for receiving them.</div><br><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>