<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Aug 2, 2011, at 6:45 PM, Matt Schuckmannn wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>I'm working on up grading our use of Live555 RTSP server code to the latest version of the library, our old version was at least a couple of years old.<br></div></blockquote><div><br></div>Good heavens; there have been *many* improvements and bug fixes since then!</div><div><br></div><div><br><blockquote type="cite"><div>In the new code it appears that the default behavior is to obtain the sps, pps, etc from the h.264 fragmented</div></blockquote><div><br></div>Yes. Now, the SPS and PPS NAL units are assumed to be in the input NAL unit stream (and are extracted from there).</div><div><br></div><div>That means that if we're streaming a H.264 stream 'on demand' (e.g., from a unicast RTSP server), we have to do a little trick (hack) to get this information for use in the stream's SDP description, before we start delivering to the first client. Basically, we have to 'stream' the input source to a dummy sink, until we see the data that we need.</div><div><br></div><div>The place to do this is in your subclass of "ServerMediaSubsession" for H.264 video. Specifically, you reimplement the "getAuxSDPLine()" virtual function.</div><div><br></div><div>For a model of how to do this, see our implementation of "H264VideoFileServerMediaSubsession". You will presumably do something similar, except with your own subclass. (Of course, as always, you will also implement the "createNewStreamSource()" and "createNewRTPSink()" virtual functions.)</div><div><br></div><div><br></div><div><blockquote type="cite"><div>I'm not sure if I should over ride the auxSDPLine() in my class derived from H264VideoRTPSink</div></blockquote><div><br></div>No, you should need to change (or reimplement) that code.</div><br><br><div>
<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>