<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">First, as you know (because you've read the FAQ :-), you shouldn't modify the existing code 'in place'; see:<div><span class="Apple-tab-span" style="white-space:pre">      <a href="http://www.live555.com/liveMedia/faq.html#modifying-and-extending">http://www.live555.com/liveMedia/faq.html#modifying-and-extending</a></span></div><div>Instead, you should write your own new subclass(es) (perhaps using the existing code as a model, when necessary).</div><div><br></div><div>In any case, the "WAVAudioFileSource" code is the wrong code to be using as a model, because most of what it does is irrelevant for your application.  In particular:</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>- It reads and processes a WAV audio file header, which you don't need to do (because you presumably know the audio parameters (# channels, sampling frequency, etc.) in advance).</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>- It reads from a file, which you won't be doing (as you've noted).</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>- It provides support for 'trick play' operations, which you won't support, because you'll be reading from a live input source, rather than from a static file.</div><div><br></div><div>So, instead, you should write your own "FramedSource" subclass (not based on "WAVAudioFileSource") to encapsulate your input audio sample buffer.  For this, I suggest that you use the "DeviceSource" code as a model (see "liveMedia/DeviceSource.cpp").</div><div><br></div><div>Also, of course, you will need to write your own "OnDemandServerMediaSubsession" subclass, and use that - instead of "WAVAudioFileServerMediaSubsession" - in your RTSP server.  Although you may want to use the "WAVAudioFileServerMediaSubsession" code as a model, you'll find that you won't need most of that code.  In fact, you'll probably need to implement only the "createNewStreamSource()" and "createNewRTPSink()" virtual functions (and the implementation of those will be much simpler than those in "WAVAudioFileServerMediaSubsession", because - unlike for a WAV file - you know in advance the audio parameters).</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>