<div dir="ltr"><div>You need to create a filter and insert it into the chain. <br><br>I had this exact scenario and what I had was my own filter that handled the incoming frames. All my frames were small POD classes with a bit of meta data and a buffer holding the frame. I had a pool of these of different sizes and they were boost reference counted to save on memory and copying overhead as they went to disk or HTTP live Streaming or out the HTTP interface or to the browser plugin. <br><br></div>I then had a GOP buffer. Each GOP contained the reference to one keyframe and a list of references to all the difference frames.  Then I had a adjustable buffer of gops. 2 -3 gops at a time max were fully decoded or partially decoded to allow forward and backward play and fast forward on key frame only depending on if it was live or recorded or cached playback.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 3, 2014 at 4:02 PM, Mark Bondurant <span dir="ltr"><<a href="mailto:markb@virtualguard.com" target="_blank">markb@virtualguard.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div link="blue" vlink="purple" lang="EN-US">
<div>
<p class="MsoNormal"><span style="color:#1f497d">Hello,</span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Sorry if this is a repeat, but I/we have constant email problems (political issues), which I'm fairly sure I've now found a workaround for. What I'm saying is that this may be a repeat. If it is, I apologize,
 I didn't get your responses.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal">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 style="color:#1f497d">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.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">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. One seems to clock out of env and the other out of session and they don't fit together with
 each other.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I need RTSPClient to interface with the camera, which derives from Medium. It understands the RTSP Describe and Setup responses, but it only fits with its Filesinks. I need H264DiscreteFramer filter because it understands how to gather
 together NAL packets into frames. Unfortunately Discrete Framer wants it's input from an input source that derives from MediaSource, not Medium<span style="color:#1f497d">,</span> which RTSPClient derives from. RTSPClient doesn't fit  together with H264DiscreteFramer!
 (clunk, clunk, me trying to squish them together).<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">When things don't fit, I think that I'm missing something important. So what I'm asking for is a clue. What am I missing?<span class="HOEnZb"><font color="#888888"><u></u><u></u></font></span></p><span class="HOEnZb"><font color="#888888">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Mark<u></u><u></u></p>
</font></span></div>
</div>

<br>_______________________________________________<br>
live-devel mailing list<br>
<a href="mailto:live-devel@lists.live555.com">live-devel@lists.live555.com</a><br>
<a href="http://lists.live555.com/mailman/listinfo/live-devel" target="_blank">http://lists.live555.com/mailman/listinfo/live-devel</a><br>
<br></blockquote></div><br></div>