<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"><meta name="Generator" content="Microsoft Word 14 (filtered medium)"><base href="x-msg://280/"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang="EN-CA" link="blue" vlink="purple"><div class="WordSection1"><p class="MsoNormal" style="text-indent:-18.0pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">1.</span><span style="font-size:7.0pt">      <span class="apple-converted-space"> </span></span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Would having a fully implemented Tee-sink / Frame Duplicator class offer significant advantages over ad-hoc methods of replicating a stream (eg. inside filters)?</span></p>
<div><p class="MsoNormal"> </p></div><p class="MsoNormal">It depends on what you want to do with each 'replica'.  If you just need two 'replicas' - one going to a LIVE555 "MediaSink" (as normal); the other just being written to a file - then the simplest solution would be to just do the file writing normally (without using LIVE555 objects).</p>
<div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">What specifically do *you* want to do with the replicated streams?</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><br><br></p><div><div style="margin-left:36.0pt">
<p class="MsoNormal" style="text-indent:-18.0pt"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">2.</span><span style="font-size:7.0pt">      <span class="apple-converted-space"> </span></span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">How difficult would it be to implement this class (any gotchas, or should it be straightforward)?</span></p>
</div></div><div><p class="MsoNormal"> </p></div><p class="MsoNormal">Unfortunately, if it were easy, I probably would have done it already.</p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">The only real advice I can give right now is here: <a href="http://lists.live555.com/pipermail/live-devel/2006-May/004454.html">http://lists.live555.com/pipermail/live-devel/2006-May/004454.html</a></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><br><br></p><p class="MsoNormal"><span class="apple-style-span"><span style="font-size:11.5pt;font-family:"Calibri","sans-serif"">As I look closely at this, it looks to me like a challenge may be that inheriting from both MediaSink and FramedSource could result in some clashes.</span></span></p>
<div><p class="MsoNormal"> </p></div><p class="MsoNormal">No, this is definitely 'barking up the wrong tree'.  Multiple inheritance in C++ is (generally speaking) a bad idea, and not relevant here anyway, because a general 'frame duplicator' mechanism would not contain (or create) any "MediaSink" objects at all.</p>
</div><p class="MsoNormal"> </p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks for the prompt reply, Ross.</span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">The issue is that I have no experience writing readable video files in the correct formats (AVI, mp4, etc.) and wanted to use your code to do so.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I conclude from your input that it is simply easier to write a new AVIFileWrite class borrowing code liberally from your AVIFileSink class in order to get the job done.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Certainly it is easy to write the packets out as they appear for decoding.  It is just a question of getting the rest of the AVI structure (in this case) correct.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Best,</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><br>Dave</span></p><p class="MsoNormal"> </p></div></body></html>