<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class=""><div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class="">I need to keep a constant 3 second buffer of an H264 video stream. It's for security cameras. When something trips the camera, I replay the 3 seconds and then 6 more to see the event (One hopes I'll catch some ghosts or mountain lions, but really it's to catch<span class="Apple-converted-space"> </span><span style="color: rgb(31, 73, 125);" class="">car thieves</span>!). With mpeg it was easy because mpeg has discrete frames, but the much better definition h264 doesn't. I mean it does, but they're spread out over an indefinite series of NAL packets that can contain various varieties of slices. Squishing together into a discrete frame is a problem.</div></div></div></blockquote><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class="WordSection1" style="page: WordSection1; font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""></o:p></div><div style="margin: 0in 0in 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;" class=""><o:p class=""> </o:p><span style="font-size: 11pt;" class="">It seems to me that there are two different paradigms at work in live555. Modules that derive from Medium and modules that derive from MediaSource. </span></div></div></blockquote><div><br class=""></div>No, this is completely wrong. (Note that “MediaSource” is a subclass of “Medium”.)</div><div><br class=""></div><div>I suggest that you begin by reviewing the “testRTSPClient” demo application (in the “testProgs” directory). Note, in particular, the “DummySink” object that receives ‘frames’ (for H.264 video, each ‘frame’ will actually be a NAL unit). Note the code for “DummyRTPSink::afterGettingFrame()” ("testRTSPClient.cpp”, lines 500-521). For your own RTSP client application, you could write your own ‘sink’ class (a subclass of “MediaSink”) that receives H.264 NAL units, and processes them however you want.</div><br class=""><div apple-content-edited="true" class="">
<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; "><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; ">Ross Finlayson<br class="">Live Networks, Inc.<br class=""><a href="http://www.live555.com/" class="">http://www.live555.com/</a></span></span>
</div>
<br class=""></body></html>