<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style>
<!--
@font-face
        {font-family:"Cambria Math"}
@font-face
        {font-family:Calibri}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif"}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
span.EmailStyle17
        {font-family:"Calibri","sans-serif";
        color:windowtext}
.MsoChpDefault
        {}
@page WordSection1
        {margin:72.0pt 72.0pt 72.0pt 72.0pt}
div.WordSection1
        {}
-->
</style>
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I would like to request a few changes to liveMedia to assist with subclassing and server instantiation.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Some background:</p>
<p class="MsoNormal">I'm working on a network camera that needs to be ONVIF profile G compliant. It records matroska video clips which are then represented to an ONVIF client as a single "Recording" with time discontinuities. This means that the SDP description
 needs to reflect the whole "Recording" rather than the clips which comprise it. Consequently, this information needs to come from a database rather than being returned by video track information discovered in a file.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I have an implementation of this working correctly. However in order to override as little library functionality as possible I found it necessary to patch some items in the library. Of course, I can keep doing that but I am submitting the
 patch in the hope that some/all of the issues identified could be adopted by the liveMedia library.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Here is a summary of the changes along with a reason for each change.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">1. ServerMediaSession::generateSDPDescription() becomes a virtual method. Allows subclass to generate the SDP description in an independent manner e.g. database lookup.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">2. ServerMediaSession::duration() becomes a virtual method. Allows subclass to generate the duration in an independent manner e.g. database lookup.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">3. Add a virtual method called ServerMediaSession::mediaSdpLines() and modify the implementation of ServerMediaSession::generateSDPDescription() to call mediaSdpLines() instead of calling subsession->sdpLines() directly. Allows subclass
 to intercept each media track description and append extra attributes. ONVIF complieance requires tracks to be marked with extension attributes e.g. a=x-onvif-track:VIDEO001.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">4. Modify MatroskaFile::createSourceForStreaming() implementation to check for larger values of OutPacketBuffer::maxSize before setting 300000 value. Allows server instantiation to set a larger value without it being ignored. With a full
 field-of-view I'm seeing a few warning messages being emitted during replay and therefore a larger value than 300000 is recommended.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">A patch file is attached for your convenience.</p>
<p class="MsoNormal">If you need any further information please let me know.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Kind Regards,</p>
<p class="MsoNormal">Mike Brimer</p>
</div>
This communication is for the exclusive use of the addressee and may contain information that is private and confidential. If you are not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication and
 its attachments is strictly prohibited. If you have received this information in error please contact the sender and delete the communication from your system. Any views or opinions presented are solely those of the author and do not necessarily represent
 those of Oncam Grandeye unless specifically stated.
<br><br>
<P align=center><FONT style="BACKGROUND-COLOR: #ffffff">This message has been scanned for malware by Websense.  </FONT><A href="http://www.websense.com/"><FONT style="BACKGROUND-COLOR: #ffffff" color=#000000>www.websense.com</FONT></A></P>
</body>
</html>