<html>
<head>
    <base href="https://wiki.asterisk.org/wiki">
            <link rel="stylesheet" href="/wiki/s/2029/1/7/_/styles/combined.css?spaceKey=AST&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://wiki.asterisk.org/wiki/display/AST/Media+Overhaul">Media Overhaul</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://wiki.asterisk.org/wiki/display/~russell">Russell Bryant</a>
    </h4>
        <br/>
                         <h4>Changes (5)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >* Asterisk does not support Gtalk video <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">h2. High Level Requirements <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h2. Phase 1 Requirements <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">* Rework codec representation in Asterisk <br>** Define a real data structure that includes codec attributes instead of the simple current mapping of a bit field into codecs <br>* Improve codec negotiation <br>** Allow re-negotiation during a call <br>** Allow negotiation to include codec attributes <br>* Add support for SILK, CELT and other codecs <br>* Add support for variable sampling rates with conferencing <br>* Rework codec translator infrastructure to not be audio specific <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Rework media representation completely across all of Asterisk, while maintaining existing functionality.  Only add functionality that is required to exercise what has been done. <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">* Design a new way to represent codecs <br>** translation interface <br>** capabilities <br>** ast_frame handling <br>** Initial call setup codec negotiation <br>** everything that touches media ... <br>* Exercise what we have done so far <br>** Add support for SILK (and its attributes) <br>** Add support for H.264 attributes <br>* Custom format definitions with attributes (for setting preferences) <br> <br>h2. Phase Later Requirements <br> <br>* Codec re-negotiation <br>* Improved conferencing (dynamic sample rate support) <br>* Video transcoding (an implementation that proves it works) <br>* A&amp;V sync in RTCP (research required) <br>* GTalk Video Support <br>* Support for unknown media types for pass-through (research required) <br>* Support for more than one stream of the same type (audio/video/text) <br> <br></td></tr>
            <tr><td class="diff-unchanged" >{numberedheadings} <br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        

<div class="error"><span class="error">Error formatting macro: toc: java.lang.NoClassDefFoundError: org/w3c/tidy/EntityTable</span> </div>

<h1><a name="MediaOverhaul-ProjectRequirements"></a>1. Project Requirements</h1>

<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/wiki/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>This section is incomplete.</td></tr></table></div>

<h2><a name="MediaOverhaul-RelevantProblemsThatExistToday"></a>1.1. Relevant Problems That Exist Today</h2>

<ul>
        <li>Codec negotiation (both with Asterisk, and across a bridge)
        <ul>
                <li>Support for audio codecs with attributes (SILK)</li>
                <li>Support for video codecs with attributes</li>
        </ul>
        </li>
        <li>Limitation on the number of codecs Asterisk can support</li>
        <li>Translation paths are audio specific (with no concept of attributes)</li>
        <li>There is no way to renegotiate codecs after a call is up</li>
        <li>Conferencing is limited to 8 kHz</li>
        <li>There is no way to easily get Asterisk to pass through a media type that it does not understand (proprietary data)</li>
        <li>Once Asterisk supports codecs with attributes, users will need to be able to specify codecs with attributes</li>
        <li>Asterisk is not able to handle a call with more than one audio/video/text stream (only one stream per type).</li>
        <li>Asterisk has no RTCP support relevant to audio and video synchronization</li>
        <li>Asterisk does not support Gtalk video</li>
</ul>


<h2><a name="MediaOverhaul-Phase1Requirements"></a>1.2. Phase 1 Requirements</h2>

<p>Rework media representation completely across all of Asterisk, while maintaining existing functionality.  Only add functionality that is required to exercise what has been done.</p>

<ul>
        <li>Design a new way to represent codecs
        <ul>
                <li>translation interface</li>
                <li>capabilities</li>
                <li>ast_frame handling</li>
                <li>Initial call setup codec negotiation</li>
                <li>everything that touches media ...</li>
        </ul>
        </li>
        <li>Exercise what we have done so far
        <ul>
                <li>Add support for SILK (and its attributes)</li>
                <li>Add support for H.264 attributes</li>
        </ul>
        </li>
        <li>Custom format definitions with attributes (for setting preferences)</li>
</ul>


<h2><a name="MediaOverhaul-PhaseLaterRequirements"></a>1.3. Phase Later Requirements</h2>

<ul>
        <li>Codec re-negotiation</li>
        <li>Improved conferencing (dynamic sample rate support)</li>
        <li>Video transcoding (an implementation that proves it works)</li>
        <li>A&amp;V sync in RTCP (research required)</li>
        <li>GTalk Video Support</li>
        <li>Support for unknown media types for pass-through (research required)</li>
        <li>Support for more than one stream of the same type (audio/video/text)</li>
</ul>


    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://wiki.asterisk.org/wiki/users/viewnotifications.action" class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://wiki.asterisk.org/wiki/display/AST/Media+Overhaul">View Online</a>
        |
        <a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=4260120&revisedVersion=8&originalVersion=7">View Changes</a>
                |
        <a href="https://wiki.asterisk.org/wiki/display/AST/Media+Overhaul?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>