diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml new file mode 100644 index 00000000..baee6d91 --- /dev/null +++ b/.github/workflows/docs.yaml @@ -0,0 +1,57 @@ +# Workflow for deploying docs static content to GitHub Pages. +name: Deploy static docs to Pages + +on: + release: + types: [published] + # Allows you to run this workflow manually from the Actions tab. + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run +# in-progress and latest queued. However, do NOT cancel in-progress runs as we +# want to allow these production deployments to complete. +concurrency: + group: 'pages' + cancel-in-progress: false + +jobs: + # Single deploy job since we're just deploying. + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: npm ci + run: npm ci --foreground-scripts + + - name: npm run docs + run: npm run docs + + # - name: Setup Pages + # uses: actions/configure-pages@v5 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs/ + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index 21bf7e5e..cf3f11cd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /lib ## Others. +/docs /coverage /.cache diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e2ac6616..00000000 --- a/docs/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/custom.css b/docs/assets/custom.css deleted file mode 100644 index 0fe534ad..00000000 --- a/docs/assets/custom.css +++ /dev/null @@ -1,21 +0,0 @@ -/* Remove ugly square in bottom-right corner when scroll shows up. */ -*::-webkit-scrollbar { - width: 0px; -} - -/* Add margin after code. */ -.tsd-comment { - margin-bottom: 2em; -} - -/* Avoid word wrapping when code doesn't fit into avaiable width. */ -.tsd-comment > pre { - white-space: pre; - overflow: scroll; -} - -/* Remove ugly border radius in code. */ -.tsd-comment > pre, -.tsd-comment > code { - border-radius: 0px; -} diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js deleted file mode 100644 index 00b8ec79..00000000 --- a/docs/assets/hierarchy.js +++ /dev/null @@ -1 +0,0 @@ -window.hierarchyData = "eJydl02PmzAQhv+Lz7Nbf4LNsbvbSlW1ihKpqrTKgQVXQSFADanarvLfKxIlayAq41w4oPf1MzN4xuaNuLruWpK8yDUQZ3+UNuuKumpJ8kZk/6jSnSUJWVlXpGXxN30tLQGyLaqcJIxrIHtXkoRkZdq2tv3QpNnWdu29r7/fdLuSwElDEtK1+V2/wN3pBZBsU5S5sxVJXhQFZSSYOAZOGV0fgCjqxbE4ro+J4KQMYTMmQUgDUuiey5hfgGXX4NkX8Qz+AERIM6BkQZgMxxmVWEOkFWiqQJsIGI0EMMMpCEr7h5Z9+lJoL7CHetfU+yrHBzd0zBdCUZ+3tJktflm3tE3tuoCSXPEh2EaO2E3fBadFsFjPMk+MtBp0V5WH5zp1zXM19bkf/1g87iJGUEzkZ5fbNiCri3qeY+J4xHnY7KstFnMUz1P6BvEwn6zNX9Nsi09p6AgbSZEGxg0FJmINTFEDTJkYWMwkMM35aVJFfu88BwX3jA2sB3HjD+OVW9qfAV/2XY5AidjP6Smr8KCLGIFR1J+/i7IIOGHOYgzGDHZqCGYVgImHZ1bTBnDe1QiQ5twDfbaVdUUW3hlXjQi84f4+/O7wxLN2HtLfP/wd+Lvr522OPxSGjpC25zTWwFkUAedKAheSA5dUA5f9xSgSFLjmHLhhZn0MddAsX11pw8OduhA1YpE/6R9vAk9dCDBX/k5fuC6cOzEhsEL6+355C3ZiQmDl4HL0WDp3Q5knLgx4eMK24dixBwGNhN9433bh0LEHAR1OtKesuqHhxyYE1jAzHaTh6KtGxN8Hpddm3Jei6843y4Cr23/smFC0nFYi+CjB4Q6Hf6ct7Fk=" \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css deleted file mode 100644 index ded7f78f..00000000 --- a/docs/assets/highlight.css +++ /dev/null @@ -1,92 +0,0 @@ -:root { - --light-hl-0: #AF00DB; - --dark-hl-0: #C586C0; - --light-hl-1: #000000; - --dark-hl-1: #D4D4D4; - --light-hl-2: #001080; - --dark-hl-2: #9CDCFE; - --light-hl-3: #A31515; - --dark-hl-3: #CE9178; - --light-hl-4: #0000FF; - --dark-hl-4: #569CD6; - --light-hl-5: #0070C1; - --dark-hl-5: #4FC1FF; - --light-hl-6: #008000; - --dark-hl-6: #6A9955; - --light-hl-7: #795E26; - --dark-hl-7: #DCDCAA; - --light-hl-8: #267F99; - --dark-hl-8: #4EC9B0; - --light-hl-9: #098658; - --dark-hl-9: #B5CEA8; - --light-code-background: #FFFFFF; - --dark-code-background: #1E1E1E; -} - -@media (prefers-color-scheme: light) { :root { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --hl-8: var(--light-hl-8); - --hl-9: var(--light-hl-9); - --code-background: var(--light-code-background); -} } - -@media (prefers-color-scheme: dark) { :root { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --hl-8: var(--dark-hl-8); - --hl-9: var(--dark-hl-9); - --code-background: var(--dark-code-background); -} } - -:root[data-theme='light'] { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --hl-8: var(--light-hl-8); - --hl-9: var(--light-hl-9); - --code-background: var(--light-code-background); -} - -:root[data-theme='dark'] { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --hl-8: var(--dark-hl-8); - --hl-9: var(--dark-hl-9); - --code-background: var(--dark-code-background); -} - -.hl-0 { color: var(--hl-0); } -.hl-1 { color: var(--hl-1); } -.hl-2 { color: var(--hl-2); } -.hl-3 { color: var(--hl-3); } -.hl-4 { color: var(--hl-4); } -.hl-5 { color: var(--hl-5); } -.hl-6 { color: var(--hl-6); } -.hl-7 { color: var(--hl-7); } -.hl-8 { color: var(--hl-8); } -.hl-9 { color: var(--hl-9); } -pre, code { background: var(--code-background); } diff --git a/docs/assets/icons.js b/docs/assets/icons.js deleted file mode 100644 index 58882d76..00000000 --- a/docs/assets/icons.js +++ /dev/null @@ -1,18 +0,0 @@ -(function() { - addIcons(); - function addIcons() { - if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); - const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); - svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; - svg.style.display = "none"; - if (location.protocol === "file:") updateUseElements(); - } - - function updateUseElements() { - document.querySelectorAll("use").forEach(el => { - if (el.getAttribute("href").includes("#icon-")) { - el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); - } - }); - } -})() \ No newline at end of file diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg deleted file mode 100644 index 50ad5799..00000000 --- a/docs/assets/icons.svg +++ /dev/null @@ -1 +0,0 @@ -MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/assets/main.js b/docs/assets/main.js deleted file mode 100644 index 2363f64c..00000000 --- a/docs/assets/main.js +++ /dev/null @@ -1,60 +0,0 @@ -"use strict"; -window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; -"use strict";(()=>{var De=Object.create;var le=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Ne=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Be=Object.prototype.hasOwnProperty;var qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var je=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ne(e))!Be.call(t,i)&&i!==n&&le(t,i,{get:()=>e[i],enumerable:!(r=Fe(e,i))||r.enumerable});return t};var $e=(t,e,n)=>(n=t!=null?De(Ve(t)):{},je(e||!t||!t.__esModule?le(n,"default",{value:t,enumerable:!0}):n,t));var pe=qe((de,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,c],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[c+1]*i[d+1],c+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof de=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var ce=[];function G(t,e){ce.push({selector:e,constructor:t})}var J=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){ce.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!ze(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function ze(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var ge=$e(pe(),1);async function A(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}async function fe(t,e){if(!window.searchData)return;let n=await A(window.searchData);t.data=n,t.index=ge.Index.load(n.index),e.classList.remove("loading"),e.classList.add("ready")}function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:document.documentElement.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{fe(e,t)}),fe(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{re(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),We(t,i,r,e)}function We(t,e,n,r){n.addEventListener("input",ue(()=>{Ue(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Je(e,t):i.key=="ArrowUp"?(me(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(me(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),re(t))})}function re(t){t.classList.remove("has-focus")}function Ue(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ye(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ye(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=c+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function me(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Je(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),re(e)}}function ye(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ne(t.substring(s,o)),`${ne(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ne(t.substring(s))),i.join("")}var Ge={"&":"&","<":"<",">":">","'":"'",'"':"""};function ne(t){return t.replace(/[&<>"'"]/g,e=>Ge[e])}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var H="mousedown",Ee="mousemove",B="mouseup",X={x:0,y:0},xe=!1,ie=!1,Xe=!1,D=!1,be=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(be?"is-mobile":"not-mobile");be&&"ontouchstart"in document.documentElement&&(Xe=!0,H="touchstart",Ee="touchmove",B="touchend");document.addEventListener(H,t=>{ie=!0,D=!1;let e=H=="touchstart"?t.targetTouches[0]:t;X.y=e.pageY||0,X.x=e.pageX||0});document.addEventListener(Ee,t=>{if(ie&&!D){let e=H=="touchstart"?t.targetTouches[0]:t,n=X.x-(e.pageX||0),r=X.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var Y=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(H,n=>this.onDocumentPointerDown(n)),document.addEventListener(B,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var se;try{se=localStorage}catch{se={getItem(){return null},setItem(){}}}var C=se;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var Z=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=C.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){C.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var oe=new Map,ae=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;C.setItem(this.key,e.toString())}},K=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(oe.has(i))s=oe.get(i);else{let o=C.getItem(i),a=o?o==="true":this.el.open;s=new ae(i,a),oe.set(i,s)}s.add(this.el)}};function Se(t){let e=C.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{C.setItem("tsd-theme",t.value),we(t.value)})}function we(t){document.documentElement.dataset.theme=t}var ee;function Ce(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Te),Te())}async function Te(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await A(window.navigationData);ee=document.documentElement.dataset.base,ee.endsWith("/")||(ee+="/"),t.innerHTML="";for(let n of e)Ie(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Ie(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',ke(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let c of t.children)Ie(c,l,i)}else ke(t,r,t.class)}function ke(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=ee+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(document.createElement("span")).textContent=t.text}}var te=document.documentElement.dataset.base;te.endsWith("/")||(te+="/");function Pe(){document.querySelector(".tsd-full-hierarchy")?Ye():document.querySelector(".tsd-hierarchy")&&Ze()}function Ye(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=tt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function Ze(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Qe),Qe())}async function Qe(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await A(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),Ke(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function Ke(t,e,n){let r=e.roots.filter(i=>et(e,i,n));for(let i of r)t.appendChild(_e(e,i,n))}function _e(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let l=t.reflections[a],c=s.appendChild(document.createElement("a"));c.textContent=l.name,c.href=te+l.url,c.className=l.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=te+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let l=_e(t,a,n,r);l&&o.appendChild(l)}}return r.delete(e),s}function et(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function tt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}G(Y,"a[data-toggle]");G(K,".tsd-accordion");G(Z,".tsd-filter-item input[type=checkbox]");var Oe=document.getElementById("tsd-theme");Oe&&Se(Oe);var nt=new J;Object.defineProperty(window,"app",{value:nt});ve();Ce();Pe();})(); -/*! Bundled license information: - -lunr/lunr.js: - (** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - *) - (*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Set - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.tokenizer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Vector - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.stemmer - * Copyright (C) 2020 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - *) - (*! - * lunr.stopWordFilter - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.trimmer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.TokenSet - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Builder - * Copyright (C) 2020 Oliver Nightingale - *) -*/ diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js deleted file mode 100644 index ff562eda..00000000 --- a/docs/assets/navigation.js +++ /dev/null @@ -1 +0,0 @@ -window.navigationData = "eJydmVtv00AQRv+Lnyt6oZSQt/QCArWhSkKFVPXBsafNqvba7K4LAfHfkeP6st7dmQlvVXv2fLPj27i+/xMZ+GWiabS4ml3eXEUHURmbTTSN0iKpcpBGHzZ/ebMxeRYdRM9CptF08nYyOTua/D3o1pdx8gxG94K8SKsM9OHrH+z1JwdRshFZqkBG0/tOcvXLgEwhXUBZKLPaltD7QFZ5b3PJUYGD0m71R4B0HSfPN6B1/ASY2AuH3QuTlLe7pZjUpjBbuduYFoXEfTaHGvfYvJ8O25cp6M8Gcsw5ZMKm8y00Deo1SRZrPTiBOsS2HJ8MPRdFXhaVTCmZzWHGy0wp+2wLW10WNasM2GaHxcxXieSKHZTwUo3tENTzmvhFGAOqydWkObyIk0U2gt2F9hKhCrY5zPgJJCiRcEv14gw/t3AvzvAzvbTveo8rw2Ux85yx/Tlrz5SFYcgEKWkR1KMMt1kOinkXkIB4aS81qlQfTdlLIwpJ1TwCUWepyZb2DGri99RBUW83CSDCjsFNDBHDUz+fLzaVfA57OoTyUAX1DGqqe8k861wWNysRZ+J3vM4Ac/YUaqOv3yXn+l2qBfwgTT2EujT3tB2TmPUu51rHJGb9rqhNtwRm6cbCyyove5XZlr7ZsYZGryJHH94fvzsJzpCY1iUptzshYn4/zclYVuvxoXLVHUQanWcsWrWXpjKcQRSL8MKMBPqQWhBpDI+kaAa+jJvaLBzdu/1JA3Q/O2cb/CNgT5SY2yUpt3coxiKCC5hJ/M0EFzCT2Al8szs1Y3o/TWXMWc2Z79UR2reHq304o7ohRBrHoyBq9sFUgm/KxkJCPCdnMHRTESOUtHczOCq2KNK5T++9MJnQzeWo2qJoZ/+fvJu4LIV8CosdlGHnFLxHvd2rAGa0II6RLtKmSKfzVoC6vTSd0b8l4HabI72cu9Jyn7vS4NUBddoYadX8y83H0n6VzKpUFNfwAll35ocjvDiVcidSKL4qAdLE9T2MzAkuIJNyfr98LOVv35Uw75ChfImC2Iye+ufC3EFiCjUaOh8rmdTN6JPo1Xb+2SkRvajkNcgns/mvaHs1GV3PJPU3CzqmJRGl0PUjAVM1BKEgDZigjJUG9L3BdYbWUDGc5lkgIlSDZ943JVaF/aXJFXsXIAFG5HCjV8VsrevHwErkqN6DO/KHgb4yIvN8E939mvVFNFYq3p5Xj4+gVsW8SKH52VdjIw0sQFpgrVgaZY0gqL6BEXUam/hOwE9e6T6aJaeKHpOI9AlMw5xvDTS3jLDXAyNq2W1qVcz6Nob1gQXMiMvXTfP8LY3Jq3zNFI9IXFq/uO62x1R7ePSWlK6K0/oA6bB1ACEqvTvWnCrHpOce8fAPq0unkQ==" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js deleted file mode 100644 index 9a341baf..00000000 --- a/docs/assets/search.js +++ /dev/null @@ -1 +0,0 @@ -window.searchData = "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"; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css deleted file mode 100644 index 2ab8b836..00000000 --- a/docs/assets/style.css +++ /dev/null @@ -1,1611 +0,0 @@ -@layer typedoc { - :root { - /* Light */ - --light-color-background: #f2f4f8; - --light-color-background-secondary: #eff0f1; - --light-color-warning-text: #222; - --light-color-background-warning: #e6e600; - --light-color-accent: #c5c7c9; - --light-color-active-menu-item: var(--light-color-accent); - --light-color-text: #222; - --light-color-text-aside: #6e6e6e; - - --light-color-icon-background: var(--light-color-background); - --light-color-icon-text: var(--light-color-text); - - --light-color-comment-tag-text: var(--light-color-text); - --light-color-comment-tag: var(--light-color-background); - - --light-color-link: #1f70c2; - --light-color-focus-outline: #3584e4; - - --light-color-ts-keyword: #056bd6; - --light-color-ts-project: #b111c9; - --light-color-ts-module: var(--light-color-ts-project); - --light-color-ts-namespace: var(--light-color-ts-project); - --light-color-ts-enum: #7e6f15; - --light-color-ts-enum-member: var(--light-color-ts-enum); - --light-color-ts-variable: #4760ec; - --light-color-ts-function: #572be7; - --light-color-ts-class: #1f70c2; - --light-color-ts-interface: #108024; - --light-color-ts-constructor: var(--light-color-ts-class); - --light-color-ts-property: #9f5f30; - --light-color-ts-method: #be3989; - --light-color-ts-reference: #ff4d82; - --light-color-ts-call-signature: var(--light-color-ts-method); - --light-color-ts-index-signature: var(--light-color-ts-property); - --light-color-ts-constructor-signature: var( - --light-color-ts-constructor - ); - --light-color-ts-parameter: var(--light-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --light-color-ts-type-parameter: #a55c0e; - --light-color-ts-accessor: #c73c3c; - --light-color-ts-get-signature: var(--light-color-ts-accessor); - --light-color-ts-set-signature: var(--light-color-ts-accessor); - --light-color-ts-type-alias: #d51270; - /* reference not included as links will be colored with the kind that it points to */ - --light-color-document: #000000; - - --light-color-alert-note: #0969d9; - --light-color-alert-tip: #1a7f37; - --light-color-alert-important: #8250df; - --light-color-alert-warning: #9a6700; - --light-color-alert-caution: #cf222e; - - --light-external-icon: url("data:image/svg+xml;utf8,"); - --light-color-scheme: light; - - /* Dark */ - --dark-color-background: #2b2e33; - --dark-color-background-secondary: #1e2024; - --dark-color-background-warning: #bebe00; - --dark-color-warning-text: #222; - --dark-color-accent: #9096a2; - --dark-color-active-menu-item: #5d5d6a; - --dark-color-text: #f5f5f5; - --dark-color-text-aside: #dddddd; - - --dark-color-icon-background: var(--dark-color-background-secondary); - --dark-color-icon-text: var(--dark-color-text); - - --dark-color-comment-tag-text: var(--dark-color-text); - --dark-color-comment-tag: var(--dark-color-background); - - --dark-color-link: #00aff4; - --dark-color-focus-outline: #4c97f2; - - --dark-color-ts-keyword: #3399ff; - --dark-color-ts-project: #e358ff; - --dark-color-ts-module: var(--dark-color-ts-project); - --dark-color-ts-namespace: var(--dark-color-ts-project); - --dark-color-ts-enum: #f4d93e; - --dark-color-ts-enum-member: var(--dark-color-ts-enum); - --dark-color-ts-variable: #798dff; - --dark-color-ts-function: #a280ff; - --dark-color-ts-class: #8ac4ff; - --dark-color-ts-interface: #6cff87; - --dark-color-ts-constructor: var(--dark-color-ts-class); - --dark-color-ts-property: #ff984d; - --dark-color-ts-method: #ff4db8; - --dark-color-ts-reference: #ff4d82; - --dark-color-ts-call-signature: var(--dark-color-ts-method); - --dark-color-ts-index-signature: var(--dark-color-ts-property); - --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); - --dark-color-ts-parameter: var(--dark-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --dark-color-ts-type-parameter: #e07d13; - --dark-color-ts-accessor: #ff6060; - --dark-color-ts-get-signature: var(--dark-color-ts-accessor); - --dark-color-ts-set-signature: var(--dark-color-ts-accessor); - --dark-color-ts-type-alias: #ff6492; - /* reference not included as links will be colored with the kind that it points to */ - --dark-color-document: #ffffff; - - --dark-color-alert-note: #0969d9; - --dark-color-alert-tip: #1a7f37; - --dark-color-alert-important: #8250df; - --dark-color-alert-warning: #9a6700; - --dark-color-alert-caution: #cf222e; - - --dark-external-icon: url("data:image/svg+xml;utf8,"); - --dark-color-scheme: dark; - } - - @media (prefers-color-scheme: light) { - :root { - --color-background: var(--light-color-background); - --color-background-secondary: var( - --light-color-background-secondary - ); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - - --color-icon-background: var(--light-color-icon-background); - --color-icon-text: var(--light-color-icon-text); - - --color-comment-tag-text: var(--light-color-text); - --color-comment-tag: var(--light-color-background); - - --color-link: var(--light-color-link); - --color-focus-outline: var(--light-color-focus-outline); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-project: var(--light-color-ts-project); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-reference: var(--light-color-ts-reference); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - --color-document: var(--light-color-document); - - --color-alert-note: var(--light-color-alert-note); - --color-alert-tip: var(--light-color-alert-tip); - --color-alert-important: var(--light-color-alert-important); - --color-alert-warning: var(--light-color-alert-warning); - --color-alert-caution: var(--light-color-alert-caution); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); - } - } - - @media (prefers-color-scheme: dark) { - :root { - --color-background: var(--dark-color-background); - --color-background-secondary: var( - --dark-color-background-secondary - ); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - - --color-icon-background: var(--dark-color-icon-background); - --color-icon-text: var(--dark-color-icon-text); - - --color-comment-tag-text: var(--dark-color-text); - --color-comment-tag: var(--dark-color-background); - - --color-link: var(--dark-color-link); - --color-focus-outline: var(--dark-color-focus-outline); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-project: var(--dark-color-ts-project); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-reference: var(--dark-color-ts-reference); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - --color-document: var(--dark-color-document); - - --color-alert-note: var(--dark-color-alert-note); - --color-alert-tip: var(--dark-color-alert-tip); - --color-alert-important: var(--dark-color-alert-important); - --color-alert-warning: var(--dark-color-alert-warning); - --color-alert-caution: var(--dark-color-alert-caution); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); - } - } - - html { - color-scheme: var(--color-scheme); - } - - body { - margin: 0; - } - - :root[data-theme="light"] { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-icon-text: var(--light-color-icon-text); - - --color-comment-tag-text: var(--light-color-text); - --color-comment-tag: var(--light-color-background); - - --color-link: var(--light-color-link); - --color-focus-outline: var(--light-color-focus-outline); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-project: var(--light-color-ts-project); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-reference: var(--light-color-ts-reference); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - --color-document: var(--light-color-document); - - --color-note: var(--light-color-note); - --color-tip: var(--light-color-tip); - --color-important: var(--light-color-important); - --color-warning: var(--light-color-warning); - --color-caution: var(--light-color-caution); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); - } - - :root[data-theme="dark"] { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-icon-text: var(--dark-color-icon-text); - - --color-comment-tag-text: var(--dark-color-text); - --color-comment-tag: var(--dark-color-background); - - --color-link: var(--dark-color-link); - --color-focus-outline: var(--dark-color-focus-outline); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-project: var(--dark-color-ts-project); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-reference: var(--dark-color-ts-reference); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - --color-document: var(--dark-color-document); - - --color-note: var(--dark-color-note); - --color-tip: var(--dark-color-tip); - --color-important: var(--dark-color-important); - --color-warning: var(--dark-color-warning); - --color-caution: var(--dark-color-caution); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); - } - - *:focus-visible, - .tsd-accordion-summary:focus-visible svg { - outline: 2px solid var(--color-focus-outline); - } - - .always-visible, - .always-visible .tsd-signatures { - display: inherit !important; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - line-height: 1.2; - } - - h1 { - font-size: 1.875rem; - margin: 0.67rem 0; - } - - h2 { - font-size: 1.5rem; - margin: 0.83rem 0; - } - - h3 { - font-size: 1.25rem; - margin: 1rem 0; - } - - h4 { - font-size: 1.05rem; - margin: 1.33rem 0; - } - - h5 { - font-size: 1rem; - margin: 1.5rem 0; - } - - h6 { - font-size: 0.875rem; - margin: 2.33rem 0; - } - - dl, - menu, - ol, - ul { - margin: 1em 0; - } - - dd { - margin: 0 0 0 34px; - } - - .container { - max-width: 1700px; - padding: 0 2rem; - } - - /* Footer */ - footer { - border-top: 1px solid var(--color-accent); - padding-top: 1rem; - padding-bottom: 1rem; - max-height: 3.5rem; - } - footer > p { - margin: 0 1em; - } - - .container-main { - margin: 0 auto; - /* toolbar, footer, margin */ - min-height: calc(100vh - 41px - 56px - 4rem); - } - - @keyframes fade-in { - from { - opacity: 0; - } - to { - opacity: 1; - } - } - @keyframes fade-out { - from { - opacity: 1; - visibility: visible; - } - to { - opacity: 0; - } - } - @keyframes fade-in-delayed { - 0% { - opacity: 0; - } - 33% { - opacity: 0; - } - 100% { - opacity: 1; - } - } - @keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; - } - 66% { - opacity: 0; - } - 100% { - opacity: 0; - } - } - @keyframes pop-in-from-right { - from { - transform: translate(100%, 0); - } - to { - transform: translate(0, 0); - } - } - @keyframes pop-out-to-right { - from { - transform: translate(0, 0); - visibility: visible; - } - to { - transform: translate(100%, 0); - } - } - body { - background: var(--color-background); - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", - Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; - font-size: 16px; - color: var(--color-text); - } - - a { - color: var(--color-link); - text-decoration: none; - } - a:hover { - text-decoration: underline; - } - a.external[target="_blank"] { - background-image: var(--external-icon); - background-position: top 3px right; - background-repeat: no-repeat; - padding-right: 13px; - } - a.tsd-anchor-link { - color: var(--color-text); - } - - code, - pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - padding: 0.2em; - margin: 0; - font-size: 0.875rem; - border-radius: 0.8em; - } - - pre { - position: relative; - white-space: pre-wrap; - word-wrap: break-word; - padding: 10px; - border: 1px solid var(--color-accent); - margin-bottom: 8px; - } - pre code { - padding: 0; - font-size: 100%; - } - pre > button { - position: absolute; - top: 10px; - right: 10px; - opacity: 0; - transition: opacity 0.1s; - box-sizing: border-box; - } - pre:hover > button, - pre > button.visible { - opacity: 1; - } - - blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid gray; - } - - .tsd-typography { - line-height: 1.333em; - } - .tsd-typography ul { - list-style: square; - padding: 0 0 0 20px; - margin: 0; - } - .tsd-typography .tsd-index-panel h3, - .tsd-index-panel .tsd-typography h3, - .tsd-typography h4, - .tsd-typography h5, - .tsd-typography h6 { - font-size: 1em; - } - .tsd-typography h5, - .tsd-typography h6 { - font-weight: normal; - } - .tsd-typography p, - .tsd-typography ul, - .tsd-typography ol { - margin: 1em 0; - } - .tsd-typography table { - border-collapse: collapse; - border: none; - } - .tsd-typography td, - .tsd-typography th { - padding: 6px 13px; - border: 1px solid var(--color-accent); - } - .tsd-typography thead, - .tsd-typography tr:nth-child(even) { - background-color: var(--color-background-secondary); - } - - .tsd-alert { - padding: 8px 16px; - margin-bottom: 16px; - border-left: 0.25em solid var(--alert-color); - } - .tsd-alert blockquote > :last-child, - .tsd-alert > :last-child { - margin-bottom: 0; - } - .tsd-alert-title { - color: var(--alert-color); - display: inline-flex; - align-items: center; - } - .tsd-alert-title span { - margin-left: 4px; - } - - .tsd-alert-note { - --alert-color: var(--color-alert-note); - } - .tsd-alert-tip { - --alert-color: var(--color-alert-tip); - } - .tsd-alert-important { - --alert-color: var(--color-alert-important); - } - .tsd-alert-warning { - --alert-color: var(--color-alert-warning); - } - .tsd-alert-caution { - --alert-color: var(--color-alert-caution); - } - - .tsd-breadcrumb { - margin: 0; - padding: 0; - color: var(--color-text-aside); - } - .tsd-breadcrumb a { - color: var(--color-text-aside); - text-decoration: none; - } - .tsd-breadcrumb a:hover { - text-decoration: underline; - } - .tsd-breadcrumb li { - display: inline; - } - .tsd-breadcrumb li:after { - content: " / "; - } - - .tsd-comment-tags { - display: flex; - flex-direction: column; - } - dl.tsd-comment-tag-group { - display: flex; - align-items: center; - overflow: hidden; - margin: 0.5em 0; - } - dl.tsd-comment-tag-group dt { - display: flex; - margin-right: 0.5em; - font-size: 0.875em; - font-weight: normal; - } - dl.tsd-comment-tag-group dd { - margin: 0; - } - code.tsd-tag { - padding: 0.25em 0.4em; - border: 0.1em solid var(--color-accent); - margin-right: 0.25em; - font-size: 70%; - } - h1 code.tsd-tag:first-of-type { - margin-left: 0.25em; - } - - dl.tsd-comment-tag-group dd:before, - dl.tsd-comment-tag-group dd:after { - content: " "; - } - dl.tsd-comment-tag-group dd pre, - dl.tsd-comment-tag-group dd:after { - clear: both; - } - dl.tsd-comment-tag-group p { - margin: 0; - } - - .tsd-panel.tsd-comment .lead { - font-size: 1.1em; - line-height: 1.333em; - margin-bottom: 2em; - } - .tsd-panel.tsd-comment .lead:last-child { - margin-bottom: 0; - } - - .tsd-filter-visibility h4 { - font-size: 1rem; - padding-top: 0.75rem; - padding-bottom: 0.5rem; - margin: 0; - } - .tsd-filter-item:not(:last-child) { - margin-bottom: 0.5rem; - } - .tsd-filter-input { - display: flex; - width: -moz-fit-content; - width: fit-content; - align-items: center; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - } - .tsd-filter-input input[type="checkbox"] { - cursor: pointer; - position: absolute; - width: 1.5em; - height: 1.5em; - opacity: 0; - } - .tsd-filter-input input[type="checkbox"]:disabled { - pointer-events: none; - } - .tsd-filter-input svg { - cursor: pointer; - width: 1.5em; - height: 1.5em; - margin-right: 0.5em; - border-radius: 0.33em; - /* Leaving this at full opacity breaks event listeners on Firefox. - Don't remove unless you know what you're doing. */ - opacity: 0.99; - } - .tsd-filter-input input[type="checkbox"]:focus-visible + svg { - outline: 2px solid var(--color-focus-outline); - } - .tsd-checkbox-background { - fill: var(--color-accent); - } - input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { - stroke: var(--color-text); - } - .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { - fill: var(--color-background); - stroke: var(--color-accent); - stroke-width: 0.25rem; - } - .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { - stroke: var(--color-accent); - } - - .settings-label { - font-weight: bold; - text-transform: uppercase; - display: inline-block; - } - - .tsd-filter-visibility .settings-label { - margin: 0.75rem 0 0.5rem 0; - } - - .tsd-theme-toggle .settings-label { - margin: 0.75rem 0.75rem 0 0; - } - - .tsd-hierarchy h4 label:hover span { - text-decoration: underline; - } - - .tsd-hierarchy { - list-style: square; - margin: 0; - } - .tsd-hierarchy-target { - font-weight: bold; - } - .tsd-hierarchy-toggle { - color: var(--color-link); - cursor: pointer; - } - - .tsd-full-hierarchy:not(:last-child) { - margin-bottom: 1em; - padding-bottom: 1em; - border-bottom: 1px solid var(--color-accent); - } - .tsd-full-hierarchy, - .tsd-full-hierarchy ul { - list-style: none; - margin: 0; - padding: 0; - } - .tsd-full-hierarchy ul { - padding-left: 1.5rem; - } - .tsd-full-hierarchy a { - padding: 0.25rem 0 !important; - font-size: 1rem; - display: inline-flex; - align-items: center; - color: var(--color-text); - } - .tsd-full-hierarchy svg[data-dropdown] { - cursor: pointer; - } - .tsd-full-hierarchy svg[data-dropdown="false"] { - transform: rotate(-90deg); - } - .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul { - display: none; - } - - .tsd-panel-group.tsd-index-group { - margin-bottom: 0; - } - .tsd-index-panel .tsd-index-list { - list-style: none; - line-height: 1.333em; - margin: 0; - padding: 0.25rem 0 0 0; - overflow: hidden; - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: 1rem; - grid-template-rows: auto; - } - @media (max-width: 1024px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(2, 1fr); - } - } - @media (max-width: 768px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(1, 1fr); - } - } - .tsd-index-panel .tsd-index-list li { - -webkit-page-break-inside: avoid; - -moz-page-break-inside: avoid; - -ms-page-break-inside: avoid; - -o-page-break-inside: avoid; - page-break-inside: avoid; - } - - .tsd-flag { - display: inline-block; - padding: 0.25em 0.4em; - border-radius: 4px; - color: var(--color-comment-tag-text); - background-color: var(--color-comment-tag); - text-indent: 0; - font-size: 75%; - line-height: 1; - font-weight: normal; - } - - .tsd-anchor { - position: relative; - top: -100px; - } - - .tsd-member { - position: relative; - } - .tsd-member .tsd-anchor + h3 { - display: flex; - align-items: center; - margin-top: 0; - margin-bottom: 0; - border-bottom: none; - } - - .tsd-navigation.settings { - margin: 1rem 0; - } - .tsd-navigation > a, - .tsd-navigation .tsd-accordion-summary { - width: calc(100% - 0.25rem); - display: flex; - align-items: center; - } - .tsd-navigation a, - .tsd-navigation summary > span, - .tsd-page-navigation a { - display: flex; - width: calc(100% - 0.25rem); - align-items: center; - padding: 0.25rem; - color: var(--color-text); - text-decoration: none; - box-sizing: border-box; - } - .tsd-navigation a.current, - .tsd-page-navigation a.current { - background: var(--color-active-menu-item); - } - .tsd-navigation a:hover, - .tsd-page-navigation a:hover { - text-decoration: underline; - } - .tsd-navigation ul, - .tsd-page-navigation ul { - margin-top: 0; - margin-bottom: 0; - padding: 0; - list-style: none; - } - .tsd-navigation li, - .tsd-page-navigation li { - padding: 0; - max-width: 100%; - } - .tsd-navigation .tsd-nav-link { - display: none; - } - .tsd-nested-navigation { - margin-left: 3rem; - } - .tsd-nested-navigation > li > details { - margin-left: -1.5rem; - } - .tsd-small-nested-navigation { - margin-left: 1.5rem; - } - .tsd-small-nested-navigation > li > details { - margin-left: -1.5rem; - } - - .tsd-page-navigation-section { - margin-left: 10px; - } - .tsd-page-navigation-section > summary { - padding: 0.25rem; - } - .tsd-page-navigation-section > div { - margin-left: 20px; - } - .tsd-page-navigation ul { - padding-left: 1.75rem; - } - - #tsd-sidebar-links a { - margin-top: 0; - margin-bottom: 0.5rem; - line-height: 1.25rem; - } - #tsd-sidebar-links a:last-of-type { - margin-bottom: 0; - } - - a.tsd-index-link { - padding: 0.25rem 0 !important; - font-size: 1rem; - line-height: 1.25rem; - display: inline-flex; - align-items: center; - color: var(--color-text); - } - .tsd-accordion-summary { - list-style-type: none; /* hide marker on non-safari */ - outline: none; /* broken on safari, so just hide it */ - } - .tsd-accordion-summary::-webkit-details-marker { - display: none; /* hide marker on safari */ - } - .tsd-accordion-summary, - .tsd-accordion-summary a { - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - user-select: none; - - cursor: pointer; - } - .tsd-accordion-summary a { - width: calc(100% - 1.5rem); - } - .tsd-accordion-summary > * { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; - } - .tsd-accordion .tsd-accordion-summary > svg { - margin-left: 0.25rem; - vertical-align: text-top; - } - /* - * We need to be careful to target the arrow indicating whether the accordion - * is open, but not any other SVGs included in the details element. - */ - .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child, - .tsd-accordion:not([open]) > .tsd-accordion-summary > h5 > svg:first-child { - transform: rotate(-90deg); - } - .tsd-index-content > :not(:first-child) { - margin-top: 0.75rem; - } - .tsd-index-heading { - margin-top: 1.5rem; - margin-bottom: 0.75rem; - } - - .tsd-no-select { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - } - .tsd-kind-icon { - margin-right: 0.5rem; - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - min-height: 1.25rem; - } - .tsd-signature > .tsd-kind-icon { - margin-right: 0.8rem; - } - - .tsd-panel { - margin-bottom: 2.5rem; - } - .tsd-panel.tsd-member { - margin-bottom: 4rem; - } - .tsd-panel:empty { - display: none; - } - .tsd-panel > h1, - .tsd-panel > h2, - .tsd-panel > h3 { - margin: 1.5rem -1.5rem 0.75rem -1.5rem; - padding: 0 1.5rem 0.75rem 1.5rem; - } - .tsd-panel > h1.tsd-before-signature, - .tsd-panel > h2.tsd-before-signature, - .tsd-panel > h3.tsd-before-signature { - margin-bottom: 0; - border-bottom: none; - } - - .tsd-panel-group { - margin: 2rem 0; - } - .tsd-panel-group.tsd-index-group { - margin: 2rem 0; - } - .tsd-panel-group.tsd-index-group details { - margin: 2rem 0; - } - .tsd-panel-group > .tsd-accordion-summary { - margin-bottom: 1rem; - } - - #tsd-search { - transition: background-color 0.2s; - } - #tsd-search .title { - position: relative; - z-index: 2; - } - #tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 2.5rem; - height: 100%; - } - #tsd-search .field input { - box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; - width: 100%; - padding: 0 10px; - opacity: 0; - outline: 0; - border: 0; - background: transparent; - color: var(--color-text); - } - #tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; - } - #tsd-search .field input, - #tsd-search .title, - #tsd-toolbar-links a { - transition: opacity 0.2s; - } - #tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; - margin: 0; - padding: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); - } - #tsd-search .results li { - background-color: var(--color-background); - line-height: initial; - padding: 4px; - } - #tsd-search .results li:nth-child(even) { - background-color: var(--color-background-secondary); - } - #tsd-search .results li.state { - display: none; - } - #tsd-search .results li.current:not(.no-results), - #tsd-search .results li:hover:not(.no-results) { - background-color: var(--color-accent); - } - #tsd-search .results a { - display: flex; - align-items: center; - padding: 0.25rem; - box-sizing: border-box; - } - #tsd-search .results a:before { - top: 10px; - } - #tsd-search .results span.parent { - color: var(--color-text-aside); - font-weight: normal; - } - #tsd-search.has-focus { - background-color: var(--color-accent); - } - #tsd-search.has-focus .field input { - top: 0; - opacity: 1; - } - #tsd-search.has-focus .title, - #tsd-search.has-focus #tsd-toolbar-links a { - z-index: 0; - opacity: 0; - } - #tsd-search.has-focus .results { - visibility: visible; - } - #tsd-search.loading .results li.state.loading { - display: block; - } - #tsd-search.failure .results li.state.failure { - display: block; - } - - #tsd-toolbar-links { - position: absolute; - top: 0; - right: 2rem; - height: 100%; - display: flex; - align-items: center; - justify-content: flex-end; - } - #tsd-toolbar-links a { - margin-left: 1.5rem; - } - #tsd-toolbar-links a:hover { - text-decoration: underline; - } - - .tsd-signature { - margin: 0 0 1rem 0; - padding: 1rem 0.5rem; - border: 1px solid var(--color-accent); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 14px; - overflow-x: auto; - } - - .tsd-signature-keyword { - color: var(--color-ts-keyword); - font-weight: normal; - } - - .tsd-signature-symbol { - color: var(--color-text-aside); - font-weight: normal; - } - - .tsd-signature-type { - font-style: italic; - font-weight: normal; - } - - .tsd-signatures { - padding: 0; - margin: 0 0 1em 0; - list-style-type: none; - } - .tsd-signatures .tsd-signature { - margin: 0; - border-color: var(--color-accent); - border-width: 1px 0; - transition: background-color 0.1s; - } - .tsd-signatures .tsd-index-signature:not(:last-child) { - margin-bottom: 1em; - } - .tsd-signatures .tsd-index-signature .tsd-signature { - border-width: 1px; - } - .tsd-description .tsd-signatures .tsd-signature { - border-width: 1px; - } - - ul.tsd-parameter-list, - ul.tsd-type-parameter-list { - list-style: square; - margin: 0; - padding-left: 20px; - } - ul.tsd-parameter-list > li.tsd-parameter-signature, - ul.tsd-type-parameter-list > li.tsd-parameter-signature { - list-style: none; - margin-left: -20px; - } - ul.tsd-parameter-list h5, - ul.tsd-type-parameter-list h5 { - font-size: 16px; - margin: 1em 0 0.5em 0; - } - .tsd-sources { - margin-top: 1rem; - font-size: 0.875em; - } - .tsd-sources a { - color: var(--color-text-aside); - text-decoration: underline; - } - .tsd-sources ul { - list-style: none; - padding: 0; - } - - .tsd-page-toolbar { - position: sticky; - z-index: 1; - top: 0; - left: 0; - width: 100%; - color: var(--color-text); - background: var(--color-background-secondary); - border-bottom: 1px var(--color-accent) solid; - transition: transform 0.3s ease-in-out; - } - .tsd-page-toolbar a { - color: var(--color-text); - text-decoration: none; - } - .tsd-page-toolbar a.title { - font-weight: bold; - } - .tsd-page-toolbar a.title:hover { - text-decoration: underline; - } - .tsd-page-toolbar .tsd-toolbar-contents { - display: flex; - justify-content: space-between; - height: 2.5rem; - margin: 0 auto; - } - .tsd-page-toolbar .table-cell { - position: relative; - white-space: nowrap; - line-height: 40px; - } - .tsd-page-toolbar .table-cell:first-child { - width: 100%; - } - .tsd-page-toolbar .tsd-toolbar-icon { - box-sizing: border-box; - line-height: 0; - padding: 12px 0; - } - - .tsd-widget { - display: inline-block; - overflow: hidden; - opacity: 0.8; - height: 40px; - transition: - opacity 0.1s, - background-color 0.2s; - vertical-align: bottom; - cursor: pointer; - } - .tsd-widget:hover { - opacity: 0.9; - } - .tsd-widget.active { - opacity: 1; - background-color: var(--color-accent); - } - .tsd-widget.no-caption { - width: 40px; - } - .tsd-widget.no-caption:before { - margin: 0; - } - - .tsd-widget.options, - .tsd-widget.menu { - display: none; - } - input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; - } - input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; - } - - img { - max-width: 100%; - } - - .tsd-member-summary-name { - display: inline-flex; - align-items: center; - padding: 0.25rem; - text-decoration: none; - } - - .tsd-anchor-icon { - display: inline-flex; - align-items: center; - margin-left: 0.5rem; - color: var(--color-text); - } - - .tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; - } - - .tsd-member-summary-name:hover > .tsd-anchor-icon svg, - .tsd-anchor-link:hover > .tsd-anchor-icon svg { - visibility: visible; - } - - .deprecated { - text-decoration: line-through !important; - } - - .warning { - padding: 1rem; - color: var(--color-warning-text); - background: var(--color-background-warning); - } - - .tsd-kind-project { - color: var(--color-ts-project); - } - .tsd-kind-module { - color: var(--color-ts-module); - } - .tsd-kind-namespace { - color: var(--color-ts-namespace); - } - .tsd-kind-enum { - color: var(--color-ts-enum); - } - .tsd-kind-enum-member { - color: var(--color-ts-enum-member); - } - .tsd-kind-variable { - color: var(--color-ts-variable); - } - .tsd-kind-function { - color: var(--color-ts-function); - } - .tsd-kind-class { - color: var(--color-ts-class); - } - .tsd-kind-interface { - color: var(--color-ts-interface); - } - .tsd-kind-constructor { - color: var(--color-ts-constructor); - } - .tsd-kind-property { - color: var(--color-ts-property); - } - .tsd-kind-method { - color: var(--color-ts-method); - } - .tsd-kind-reference { - color: var(--color-ts-reference); - } - .tsd-kind-call-signature { - color: var(--color-ts-call-signature); - } - .tsd-kind-index-signature { - color: var(--color-ts-index-signature); - } - .tsd-kind-constructor-signature { - color: var(--color-ts-constructor-signature); - } - .tsd-kind-parameter { - color: var(--color-ts-parameter); - } - .tsd-kind-type-parameter { - color: var(--color-ts-type-parameter); - } - .tsd-kind-accessor { - color: var(--color-ts-accessor); - } - .tsd-kind-get-signature { - color: var(--color-ts-get-signature); - } - .tsd-kind-set-signature { - color: var(--color-ts-set-signature); - } - .tsd-kind-type-alias { - color: var(--color-ts-type-alias); - } - - /* if we have a kind icon, don't color the text by kind */ - .tsd-kind-icon ~ span { - color: var(--color-text); - } - - * { - scrollbar-width: thin; - scrollbar-color: var(--color-accent) var(--color-icon-background); - } - - *::-webkit-scrollbar { - width: 0.75rem; - } - - *::-webkit-scrollbar-track { - background: var(--color-icon-background); - } - - *::-webkit-scrollbar-thumb { - background-color: var(--color-accent); - border-radius: 999rem; - border: 0.25rem solid var(--color-icon-background); - } - - /* mobile */ - @media (max-width: 769px) { - .tsd-widget.options, - .tsd-widget.menu { - display: inline-block; - } - - .container-main { - display: flex; - } - html .col-content { - float: none; - max-width: 100%; - width: 100%; - } - html .col-sidebar { - position: fixed !important; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - padding: 1.5rem 1.5rem 0 0; - width: 75vw; - visibility: hidden; - background-color: var(--color-background); - transform: translate(100%, 0); - } - html .col-sidebar > *:last-child { - padding-bottom: 20px; - } - html .overlay { - content: ""; - display: block; - position: fixed; - z-index: 1023; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; - } - - .to-has-menu .overlay { - animation: fade-in 0.4s; - } - - .to-has-menu .col-sidebar { - animation: pop-in-from-right 0.4s; - } - - .from-has-menu .overlay { - animation: fade-out 0.4s; - } - - .from-has-menu .col-sidebar { - animation: pop-out-to-right 0.4s; - } - - .has-menu body { - overflow: hidden; - } - .has-menu .overlay { - visibility: visible; - } - .has-menu .col-sidebar { - visibility: visible; - transform: translate(0, 0); - display: flex; - flex-direction: column; - gap: 1.5rem; - max-height: 100vh; - padding: 1rem 2rem; - } - .has-menu .tsd-navigation { - max-height: 100%; - } - #tsd-toolbar-links { - display: none; - } - .tsd-navigation .tsd-nav-link { - display: flex; - } - } - - /* one sidebar */ - @media (min-width: 770px) { - .container-main { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); - grid-template-areas: "sidebar content"; - margin: 2rem auto; - } - - .col-sidebar { - grid-area: sidebar; - } - .col-content { - grid-area: content; - padding: 0 1rem; - } - } - @media (min-width: 770px) and (max-width: 1399px) { - .col-sidebar { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - padding-top: 1rem; - } - .site-menu { - margin-top: 1rem; - } - } - - /* two sidebars */ - @media (min-width: 1200px) { - .container-main { - grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax( - 0, - 20rem - ); - grid-template-areas: "sidebar content toc"; - } - - .col-sidebar { - display: contents; - } - - .page-menu { - grid-area: toc; - padding-left: 1rem; - } - .site-menu { - grid-area: sidebar; - } - - .site-menu { - margin-top: 1rem; - } - - .page-menu, - .site-menu { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - } - } -} diff --git a/docs/classes/packets.ByePacket.html b/docs/classes/packets.ByePacket.html deleted file mode 100644 index 3005af6a..00000000 --- a/docs/classes/packets.ByePacket.html +++ /dev/null @@ -1,128 +0,0 @@ -ByePacket | rtp.js - v0.13.1

Class ByePacket

RTCP BYE packet.

-
        0                   1                   2                   3
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-header |V=2|P|    SC   |   PT=BYE=203  |             length            |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                           SSRC/CSRC                           |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       :                              ...                              :
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-(opt)  |     length    |               reason for leaving            ...
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP BYE -packet will be created.

      -

    Returns ByePacket

      -
    • If given view does not contain a valid RTCP BYE packet.
    • -
    -

Methods

  • Add SSRC value.

    -

    Parameters

    • ssrc: number

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns ByePacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
  • Set SSRC values.

    -

    Parameters

    • ssrcs: number[]

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
diff --git a/docs/classes/packets.CompoundPacket.html b/docs/classes/packets.CompoundPacket.html deleted file mode 100644 index 64d11bd9..00000000 --- a/docs/classes/packets.CompoundPacket.html +++ /dev/null @@ -1,104 +0,0 @@ -CompoundPacket | rtp.js - v0.13.1

Class CompoundPacket

RTCP Compound packet.

-
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP Compound -packet will be created.

      -

    Returns CompoundPacket

      -
    • If given view does not contain a valid RTCP Compound packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns CompoundPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Return the RtcpPacket entries in this RTCP Compound packet.

    -

    Returns RtcpPacket[]

    -
    import { packets } from 'rtp.js';
    const { CompoundPacket, RtcpPacketType, SdesPacket } = packets;

    const compoundPacket = new CompoundPacket(view);

    for (const packet of compoundPacket.getPackets())
    {
    switch (packet.getPacketType())
    {
    case RtcpPacketType.SDES:
    {
    const sdesPacket = packet as SdesPacket;

    console.log(sdesPacket.getChunks());

    break;
    }

    // etc.
    }
    } -
    - -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.DlrrExtendedReport.html b/docs/classes/packets.DlrrExtendedReport.html deleted file mode 100644 index 3257c2c3..00000000 --- a/docs/classes/packets.DlrrExtendedReport.html +++ /dev/null @@ -1,105 +0,0 @@ -DlrrExtendedReport | rtp.js - v0.13.1

Class DlrrExtendedReport

DLRR Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=5      |   reserved    |         block length          |
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-|                 SSRC_1 (SSRC of first receiver)               | sub-
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
-|                         last RR (LRR)                         |   1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                   delay since last RR (DLRR)                  |
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-|                 SSRC_2 (SSRC of second receiver)              | sub-
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ block
-:                               ...                             :   2
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns DlrrExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.DrleExtendedReport.html b/docs/classes/packets.DrleExtendedReport.html deleted file mode 100644 index ecd17dfe..00000000 --- a/docs/classes/packets.DrleExtendedReport.html +++ /dev/null @@ -1,136 +0,0 @@ -DrleExtendedReport | rtp.js - v0.13.1

Class DrleExtendedReport

Duplicate RLE Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=2      | rsvd. |   T   |         block length          |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        SSRC of source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          begin_seq            |             end_seq           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          chunk 1              |             chunk 2           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:                              ...                              :
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          chunk n-1            |             chunk n           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns DrleExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.EcnExtendedReport.html b/docs/classes/packets.EcnExtendedReport.html deleted file mode 100644 index 96545735..00000000 --- a/docs/classes/packets.EcnExtendedReport.html +++ /dev/null @@ -1,127 +0,0 @@ -EcnExtendedReport | rtp.js - v0.13.1

Class EcnExtendedReport

ECN Summary Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=13     |   reserved    |       block length = 5        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| SSRC of Media Sender                                          |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| ECT (0) Counter                                               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| ECT (1) Counter                                               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| ECN-CE Counter                | not-ECT Counter               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Lost Packets Counter          | Duplication Counter           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns EcnExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.EcnPacket.html b/docs/classes/packets.EcnPacket.html deleted file mode 100644 index ec6eb3c9..00000000 --- a/docs/classes/packets.EcnPacket.html +++ /dev/null @@ -1,158 +0,0 @@ -EcnPacket | rtp.js - v0.13.1

Class EcnPacket

RTCP ECN packet (RTCP Transport Layer Feedback).

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P|  FMT=8  |  PT=RTPFB=205 |          length=7             |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of packet sender                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of media source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Extended Highest Sequence Number                              |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| ECT (0) Counter                                               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| ECT (1) Counter                                               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| ECN-CE Counter                | not-ECT Counter               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| Lost Packets Counter          | Duplication Counter           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP ECN -packet will be created.

      -

    Returns EcnPacket

      -
    • If given view does not contain a valid RTCP ECN packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns EcnPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
  • Set Duplication Counter.

    -

    Parameters

    • counter: number

    Returns void

  • Set Extended Highest Sequence Number.

    -

    Parameters

    • sequenceNumber: number

    Returns void

  • Set Lost Packets Counter.

    -

    Parameters

    • counter: number

    Returns void

diff --git a/docs/classes/packets.ExtendedJitterReportsPacket.html b/docs/classes/packets.ExtendedJitterReportsPacket.html deleted file mode 100644 index c87d7f94..00000000 --- a/docs/classes/packets.ExtendedJitterReportsPacket.html +++ /dev/null @@ -1,123 +0,0 @@ -ExtendedJitterReportsPacket | rtp.js - v0.13.1

Class ExtendedJitterReportsPacket

RTCP Extended Jitter Reports packet.

-
        0                   1                   2                   3
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-header |V=2|P|    RC   |     PT=195    |             length            |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                     inter-arrival jitter                      |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       :                              ...                              :
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns ExtendedJitterReportsPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.ExtendedReport.html b/docs/classes/packets.ExtendedReport.html deleted file mode 100644 index bed4210f..00000000 --- a/docs/classes/packets.ExtendedReport.html +++ /dev/null @@ -1,91 +0,0 @@ -ExtendedReport | rtp.js - v0.13.1

Class ExtendedReportAbstract

Parent class of all XrPacket Extended Reports.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|      BT       | type-specific |         block length          |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:             type-specific block contents                      :
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.FeedbackPacket.html b/docs/classes/packets.FeedbackPacket.html deleted file mode 100644 index b23f967f..00000000 --- a/docs/classes/packets.FeedbackPacket.html +++ /dev/null @@ -1,119 +0,0 @@ -FeedbackPacket | rtp.js - v0.13.1

Class FeedbackPacketAbstract

RTCP Feedback packet.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P|   FMT   |       PT      |          length               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of packet sender                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of media source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:            Feedback Control Information (FCI)                 :
-:                                                               :
-
- -

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.GenericExtendedReport.html b/docs/classes/packets.GenericExtendedReport.html deleted file mode 100644 index e673b039..00000000 --- a/docs/classes/packets.GenericExtendedReport.html +++ /dev/null @@ -1,110 +0,0 @@ -GenericExtendedReport | rtp.js - v0.13.1

Class GenericExtendedReport

Generic Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=???    | type-specific |         block length          |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                             body                              |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:                              ...                              :
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty generic -Extended Report will be created.

      -
    • OptionalreportType: number

      If view is not given, this parameter must be given.

      -

    Returns GenericExtendedReport

      -
    • If given view does not contain a valid generic Extended Report.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns GenericExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.GenericFeedbackPacket.html b/docs/classes/packets.GenericFeedbackPacket.html deleted file mode 100644 index f2335292..00000000 --- a/docs/classes/packets.GenericFeedbackPacket.html +++ /dev/null @@ -1,131 +0,0 @@ -GenericFeedbackPacket | rtp.js - v0.13.1

Class GenericFeedbackPacket

RTCP generic Feedback packet.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P| FMT=??? |  PT=205|206   |          length               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of packet sender                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of media source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:            Feedback Control Information (FCI)                 :
-:                                                               :
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns GenericFeedbackPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.GenericPacket.html b/docs/classes/packets.GenericPacket.html deleted file mode 100644 index 276dfef6..00000000 --- a/docs/classes/packets.GenericPacket.html +++ /dev/null @@ -1,125 +0,0 @@ -GenericPacket | rtp.js - v0.13.1

Class GenericPacket

RTCP generic packet.

-
        0                   1                   2                   3
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-header |V=2|P|    SC   |   PT=???      |             length            |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-body   |                              ...                              |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       :                              ...                              :
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP generic -packet will be created.

      -
    • OptionalpacketType: number

      If view is not given, this parameter must be given.

      -

    Returns GenericPacket

      -
    • If given view does not contain a valid RTCP generic packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns GenericPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
  • Set the packet body.

    -

    Parameters

    • view: DataView

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
  • Set the RTCP header count value.

    -

    Parameters

    • count: number

    Returns void

      -
    • This field (the 5 less significant bits in the first byte of the common -RTCP header) can be used for other custom purpose in case the packet -needs it for something else.
    • -
    -
diff --git a/docs/classes/packets.LrleExtendedReport.html b/docs/classes/packets.LrleExtendedReport.html deleted file mode 100644 index d7711dd0..00000000 --- a/docs/classes/packets.LrleExtendedReport.html +++ /dev/null @@ -1,136 +0,0 @@ -LrleExtendedReport | rtp.js - v0.13.1

Class LrleExtendedReport

Loss RLE Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=1      | rsvd. |   T   |         block length          |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        SSRC of source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          begin_seq            |             end_seq           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          chunk 1              |             chunk 2           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:                              ...                              :
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          chunk n-1            |             chunk n           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns LrleExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.NackPacket.html b/docs/classes/packets.NackPacket.html deleted file mode 100644 index d3cf5dde..00000000 --- a/docs/classes/packets.NackPacket.html +++ /dev/null @@ -1,141 +0,0 @@ -NackPacket | rtp.js - v0.13.1

Class NackPacket

RTCP NACK packet (RTCP Transport Layer Feedback).

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P|  FMT=1  |  PT=RTPFB=205 |          length               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of packet sender                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of media source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|            PID                |             BLP               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:                              ...                              :
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP NACK -packet will be created.

      -

    Returns NackPacket

      -
    • If given view does not contain a valid RTCP NACK packet.
    • -
    -

Methods

  • Add NACK item value.

    -

    Parameters

    • pid: number
    • bitmask: number

    Returns void

      -
    • Use createNackItem to create the NACK item.
    • -
    • Serialization is needed after calling this method.
    • -
    -
  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns NackPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
  • Set NACK items.

    -

    Parameters

    • items: { bitmask: number; pid: number }[]

    Returns void

      -
    • Use createNackItem to create NACK items.
    • -
    • Serialization is needed after calling this method.
    • -
    -
diff --git a/docs/classes/packets.Packet.html b/docs/classes/packets.Packet.html deleted file mode 100644 index b6aef7b6..00000000 --- a/docs/classes/packets.Packet.html +++ /dev/null @@ -1,85 +0,0 @@ -Packet | rtp.js - v0.13.1

Class PacketAbstract

Parent class of all RTP and RTCP packets.

-

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the padding (in bytes) at the end of the packet.

    -

    Returns number

  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.PliPacket.html b/docs/classes/packets.PliPacket.html deleted file mode 100644 index 577f499e..00000000 --- a/docs/classes/packets.PliPacket.html +++ /dev/null @@ -1,120 +0,0 @@ -PliPacket | rtp.js - v0.13.1

Class PliPacket

RTCP PLI packet (RTCP Payload Specific Feedback).

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P|  FMT=1  |  PT=PSFB=206  |          length=2             |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of packet sender                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of media source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP PLI -packet will be created.

      -

    Returns PliPacket

      -
    • If given view does not contain a valid RTCP PLI packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns PliPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.PrtExtendedReport.html b/docs/classes/packets.PrtExtendedReport.html deleted file mode 100644 index 51564043..00000000 --- a/docs/classes/packets.PrtExtendedReport.html +++ /dev/null @@ -1,132 +0,0 @@ -PrtExtendedReport | rtp.js - v0.13.1

Class PrtExtendedReport

Packet Receipt Times Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=3      | rsvd. |   T   |         block length          |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        SSRC of source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          begin_seq            |             end_seq           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|       Receipt time of packet begin_seq                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|       Receipt time of packet (begin_seq + 1) mod 65536        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:                              ...                              :
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|       Receipt time of packet (end_seq - 1) mod 65536          |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns PrtExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.ReceiverReportPacket.html b/docs/classes/packets.ReceiverReportPacket.html deleted file mode 100644 index 4713e362..00000000 --- a/docs/classes/packets.ReceiverReportPacket.html +++ /dev/null @@ -1,142 +0,0 @@ -ReceiverReportPacket | rtp.js - v0.13.1

Class ReceiverReportPacket

RTCP Receiver Report packet.

-
        0                   1                   2                   3
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-header |V=2|P|    RC   |   PT=RR=201   |             length            |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                     SSRC of packet sender                     |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-report |                 SSRC_1 (SSRC of first source)                 |
-block  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-  1    | fraction lost |       cumulative number of packets lost       |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |           extended highest sequence number received           |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                      interarrival jitter                      |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                         last SR (LSR)                         |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                   delay since last SR (DLSR)                  |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-report |                 SSRC_2 (SSRC of second source)                |
-block  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-  2    :                               ...                             :
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-       |                  profile-specific extensions                  |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP Receiver -Report packet will be created.

      -

    Returns ReceiverReportPacket

      -
    • If given view does not contain a valid RTCP Receiver Report packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns ReceiverReportPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.ReceptionReport.html b/docs/classes/packets.ReceptionReport.html deleted file mode 100644 index 91d94c57..00000000 --- a/docs/classes/packets.ReceptionReport.html +++ /dev/null @@ -1,105 +0,0 @@ -ReceptionReport | rtp.js - v0.13.1

Class ReceptionReport

RTCP Reception Report.

-

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns ReceptionReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.RpsiPacket.html b/docs/classes/packets.RpsiPacket.html deleted file mode 100644 index 626932f9..00000000 --- a/docs/classes/packets.RpsiPacket.html +++ /dev/null @@ -1,135 +0,0 @@ -RpsiPacket | rtp.js - v0.13.1

Class RpsiPacket

RTCP RPSI packet (RTCP Payload Specific Feedback).

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P|  FMT=3  |  PT=PSFB=206  |          length               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of packet sender                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of media source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|      PB       |0| Payload Type|    Native RPSI bit string     |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|   defined per codec          ...                | Padding (0) |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP RPSI -packet will be created.

      -

    Returns RpsiPacket

      -
    • If given view does not contain a valid RTCP RPSI packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns RpsiPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
  • Set the bit string.

    -

    Parameters

    • view: DataView

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
diff --git a/docs/classes/packets.RrtExtendedReport.html b/docs/classes/packets.RrtExtendedReport.html deleted file mode 100644 index e66ee35e..00000000 --- a/docs/classes/packets.RrtExtendedReport.html +++ /dev/null @@ -1,101 +0,0 @@ -RrtExtendedReport | rtp.js - v0.13.1

Class RrtExtendedReport

Receiver Reference Time Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=4      |   reserved    |       block length = 2        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|              NTP timestamp, most significant word             |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|             NTP timestamp, least significant word             |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns RrtExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.RtcpPacket.html b/docs/classes/packets.RtcpPacket.html deleted file mode 100644 index d35b718c..00000000 --- a/docs/classes/packets.RtcpPacket.html +++ /dev/null @@ -1,103 +0,0 @@ -RtcpPacket | rtp.js - v0.13.1

Class RtcpPacketAbstract

RTCP packet. Parent class of all RTCP packets.

-
        0                   1                   2                   3
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-header |V=2|P|    SC   |      PT       |             length            |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
- -

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.RtpPacket.html b/docs/classes/packets.RtpPacket.html deleted file mode 100644 index 0d46238f..00000000 --- a/docs/classes/packets.RtpPacket.html +++ /dev/null @@ -1,259 +0,0 @@ -RtpPacket | rtp.js - v0.13.1

Class RtpPacket

RTP packet.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P|X|  CC   |M|     PT      |       sequence number         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                           timestamp                           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|           synchronization source (SSRC) identifier            |
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-|            contributing source (CSRC) identifiers             |
-|                             ....                              |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|      defined by profile       |           length              |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        header extension                       |
-|                             ....                              |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTP packet -(with just the minimal fixed header) will be created.

      -

    Returns RtpPacket

      -
    • If view is given and it does not contain a valid RTP packet.
    • -
    -

Methods

  • Clear all extensions (RFC 5285).

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns RtpPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Delete the extension with given id (RFC 5285).

    -

    Parameters

    • id: number

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Enable One-Byte extensions (RFC 5285).

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Enable Two-Bytes extensions (RFC 5285).

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the value of the extension with given id (RFC 5285).

    -

    Parameters

    • id: number

    Returns undefined | DataView<ArrayBufferLike>

  • Get RTP extension mapping (association of RTP extension types and their -numeric ids in this RTP packet).

    -

    Returns Partial

  • Get a map with all the extensions indexed by their extension id (RFC 5285).

    -

    Returns Map<number, DataView<ArrayBufferLike>>

  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether One-Byte extensions (as per RFC 5285) are enabled.

    -

    Returns boolean

  • Whether Two-Bytes extensions (as per RFC 5285) are enabled.

    -

    Returns boolean

  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Decode the packet using RTX procedures (as per RFC 4588).

    -

    Parameters

    • payloadType: number

      The original payload type.

      -
    • ssrc: number

      The original SSRC.

      -

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
      -
    • If payload length is less than 2 bytes, so RTX decode is not possible.
    • -
    -
  • Encode the packet using RTX procedures (as per RFC 4588).

    -

    Parameters

    • payloadType: number

      The RTX payload type.

      -
    • ssrc: number

      The RTX SSRC.

      -
    • sequenceNumber: number

      The RTX sequence number.

      -

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
  • Set the RTP CSRC values. If csrcs is not given (or if it's an empty -array) CSRC field will be removed from the RTP packet.

    -

    Parameters

    • csrcs: number[] = []

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
  • Set the value of the extension with given id (RFC 5285).

    -

    Parameters

    • id: number
    • value: DataView

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
  • Set RTP extension mapping (association of RTP extension types and their -numeric ids in this RTP packet).

    -

    Parameters

    • extensionMapping: Partial

    Returns void

      -
    • Calling this method is needed before using other methods that read or -write specific RTP extensions.
    • -
    -
  • Set the packet payload.

    -

    Parameters

    • view: DataView

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
  • Set the RTP payload type.

    -

    Parameters

    • payloadType: number

    Returns void

  • Set the RTP sequence number.

    -

    Parameters

    • sequenceNumber: number

    Returns void

diff --git a/docs/classes/packets.SdesChunk.html b/docs/classes/packets.SdesChunk.html deleted file mode 100644 index 3be37ff3..00000000 --- a/docs/classes/packets.SdesChunk.html +++ /dev/null @@ -1,87 +0,0 @@ -SdesChunk | rtp.js - v0.13.1

Class SdesChunk

SDES Chunk.

-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP SDES -Chunk will be created.

      -

    Returns SdesChunk

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns SdesChunk

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.SdesPacket.html b/docs/classes/packets.SdesPacket.html deleted file mode 100644 index 31a0d0ef..00000000 --- a/docs/classes/packets.SdesPacket.html +++ /dev/null @@ -1,128 +0,0 @@ -SdesPacket | rtp.js - v0.13.1

Class SdesPacket

RTCP SDES packet.

-
        0                   1                   2                   3
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-header |V=2|P|    SC   |  PT=SDES=202  |             length            |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-chunk  |                          SSRC/CSRC_1                          |
-  1    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                           SDES items                          |
-       |                              ...                              |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-chunk  |                          SSRC/CSRC_2                          |
-  2    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                           SDES items                          |
-       |                              ...                              |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP SDES -packet will be created.

      -

    Returns SdesPacket

      -
    • If given view does not contain a valid RTCP SDES packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns SdesPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.SenderReportPacket.html b/docs/classes/packets.SenderReportPacket.html deleted file mode 100644 index 3811af7e..00000000 --- a/docs/classes/packets.SenderReportPacket.html +++ /dev/null @@ -1,172 +0,0 @@ -SenderReportPacket | rtp.js - v0.13.1

Class SenderReportPacket

RTCP Sender Report packet.

-
        0                   1                   2                   3
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-header |V=2|P|    RC   |   PT=SR=200   |             length            |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                         SSRC of sender                        |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-sender |              NTP timestamp, most significant word             |
-info   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |             NTP timestamp, least significant word             |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                         RTP timestamp                         |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                     sender's packet count                     |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                      sender's octet count                     |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-report |                 SSRC_1 (SSRC of first source)                 |
-block  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-  1    | fraction lost |       cumulative number of packets lost       |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |           extended highest sequence number received           |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                      interarrival jitter                      |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                         last SR (LSR)                         |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                   delay since last SR (DLSR)                  |
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-report |                 SSRC_2 (SSRC of second source)                |
-block  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-  2    :                               ...                             :
-       +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-       |                  profile-specific extensions                  |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP Sender -Report packet will be created.

      -

    Returns SenderReportPacket

      -
    • If given view does not contain a valid RTCP Sender Report packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns SenderReportPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.Serializable.html b/docs/classes/packets.Serializable.html deleted file mode 100644 index 9ce27ce9..00000000 --- a/docs/classes/packets.Serializable.html +++ /dev/null @@ -1,75 +0,0 @@ -Serializable | rtp.js - v0.13.1

Class SerializableAbstract

Class holding a serializable buffer view. All RTP and RTCP packets inherit -from this class, and also items in some RTCP packets.

-

Hierarchy (View Summary)

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns Serializable

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.SliPacket.html b/docs/classes/packets.SliPacket.html deleted file mode 100644 index 7d667026..00000000 --- a/docs/classes/packets.SliPacket.html +++ /dev/null @@ -1,136 +0,0 @@ -SliPacket | rtp.js - v0.13.1

Class SliPacket

RTCP SLI packet (RTCP Payload Specific Feedback).

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P|  FMT=2  |  PT=PSFB=206  |          length               |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of packet sender                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of media source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|            First        |        Number           | PictureID |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-:                              ...                              :
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP SLI -packet will be created.

      -

    Returns SliPacket

      -
    • If given view does not contain a valid RTCP SLI packet.
    • -
    -

Methods

  • Add SLI item value.

    -

    Parameters

    • first: number
    • number: number
    • pictureId: number

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns SliPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get SLI items.

    -

    Returns { first: number; number: number; pictureId: number }[]

  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
  • Set SLI items.

    -

    Parameters

    • items: { first: number; number: number; pictureId: number }[]

    Returns void

      -
    • Serialization is needed after calling this method.
    • -
    -
diff --git a/docs/classes/packets.SrReqPacket.html b/docs/classes/packets.SrReqPacket.html deleted file mode 100644 index 9cb3e032..00000000 --- a/docs/classes/packets.SrReqPacket.html +++ /dev/null @@ -1,120 +0,0 @@ -SrReqPacket | rtp.js - v0.13.1

Class SrReqPacket

RTCP SR REQ packet (RTCP Transport Layer Feedback).

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|V=2|P|  FMT=5  |  PT=RTPFB=205 |          length=2             |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of packet sender                        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                  SSRC of media source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -
-

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP SR REQ -packet will be created.

      -

    Returns SrReqPacket

      -
    • If given view does not contain a valid RTCP SR REQ packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns SrReqPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.SsExtendedReport.html b/docs/classes/packets.SsExtendedReport.html deleted file mode 100644 index 511de0d5..00000000 --- a/docs/classes/packets.SsExtendedReport.html +++ /dev/null @@ -1,189 +0,0 @@ -SsExtendedReport | rtp.js - v0.13.1

Class SsExtendedReport

Statistics Summary Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=6      |L|D|J|ToH|rsvd.|       block length = 9        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        SSRC of source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          begin_seq            |             end_seq           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        lost_packets                           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        dup_packets                            |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                         min_jitter                            |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                         max_jitter                            |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                         mean_jitter                           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                         dev_jitter                            |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| min_ttl_or_hl | max_ttl_or_hl |mean_ttl_or_hl | dev_ttl_or_hl |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns SsExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.VmExtendedReport.html b/docs/classes/packets.VmExtendedReport.html deleted file mode 100644 index e8ba4661..00000000 --- a/docs/classes/packets.VmExtendedReport.html +++ /dev/null @@ -1,197 +0,0 @@ -VmExtendedReport | rtp.js - v0.13.1

Class VmExtendedReport

VoIP Metrics Extended Report.

-
 0                   1                   2                   3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     BT=7      |   reserved    |       block length = 8        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|                        SSRC of source                         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|   loss rate   | discard rate  | burst density |  gap density  |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|       burst duration          |         gap duration          |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|     round trip delay          |       end system delay        |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-| signal level  |  noise level  |     RERL      |     Gmin      |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|   R factor    | ext. R factor |    MOS-LQ     |    MOS-CQ     |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|   RX config   |   reserved    |          JB nominal           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|          JB maximum           |          JB abs max           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns VmExtendedReport

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/classes/packets.XrPacket.html b/docs/classes/packets.XrPacket.html deleted file mode 100644 index 3e971c17..00000000 --- a/docs/classes/packets.XrPacket.html +++ /dev/null @@ -1,135 +0,0 @@ -XrPacket | rtp.js - v0.13.1

Class XrPacket

RTCP XR packet.

-
        0                   1                   2                   3
-        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-header |V=2|P|reserved |   PT=XR=207   |             length            |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-       |                              SSRC                             |
-       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-report :                         report blocks                         :
-blocks +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Hierarchy (View Summary)

Constructors

  • Parameters

    • Optionalview: DataView<ArrayBufferLike>

      If given it will be parsed. Otherwise an empty RTCP XR packet -will be created.

      -

    Returns XrPacket

      -
    • If given view does not contain a valid RTCP XR packet.
    • -
    -

Methods

  • Clone the packet or item. The cloned instance does not share any memory -with the original one. The cloned instance is a new class instance -referencing a different buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be cloned. If not given, a -new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where clonation will -start.

      -
    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given -serializationBuffer where serialization (if needed) will start.

      -

    Returns XrPacket

      -
    • The buffer is serialized if needed (to apply pending modifications) by -internally calling serialize.
    • -
    -
      -
    • If serialization is needed and it fails.
    • -
    • If given buffer doesn't have space enough to clone the content.
    • -
    • If given serializationBuffer doesn't have space enough to serialize -the content.
    • -
    -
  • Computes total length of the content (in bytes) including padding if any.

    -

    Returns number

      -
    • This methods computes the effective byte length of the content as if it -was serialized at this moment, no matter modifications have been done -before.
    • -
    -
  • Get the RTCP header count value.

    -

    Returns number

      -
    • Some RTCP packets do not use this byte (the second one in the common -RTCP header) for counting chunks or items.
    • -
    -
  • Get Extended Reports.

    -

    Returns ExtendedReport[]

    -
    import { packets } from 'rtp.js';
    const { XrPacket, ExtendedReportType, LrleExtendedReport } = packets;

    const packet = new XrPacket(view);

    for (const extendedReport of packet.getReports())
    {
    switch (extendedReport.getReportType())
    {
    case ExtendedReportType.LRLE:
    {
    const lrleExtendedReport = extendedReport as LrleExtendedReport;

    console.log(lrleExtendedReport.getThinning());

    break;
    }

    // etc.
    }
    } -
    - -
  • Get a buffer view containing the serialized content of the packet or item.

    -

    Parameters

    • OptionalserializationBuffer: ArrayBuffer

      Buffer in which the content will be serialized -in case serialization is needed. If not given, a new one will internally -allocated.

      -
    • OptionalserializationByteOffset: number

      Byte offset of the given serializationBuffer -where serialization (if needed) will start.

      -

    Returns DataView

      -
    • The internal buffer is serialized if needed (to apply pending -modifications) by internally calling serialize.
    • -
    -
      -
    • If buffer serialization is needed and it fails due to invalid -content.
    • -
    -
  • Whether serialization is needed, meaning that the current buffer view -doesn't represent the current content of the packet or item (due to -modifications not applied yet). Calling serialize or getView -will serialize the packet or the item.

    -

    Returns boolean

  • Pad the packet total length to 4 bytes. To achieve it, this method may add -or remove bytes of padding.

    -

    Returns void

      -
    • Serialization maybe needed after calling this method.
    • -
    -
  • Apply pending changes and serialize the content of the packet or item into -a new buffer.

    -

    Parameters

    • Optionalbuffer: ArrayBuffer

      Buffer in which the content will be serialized. If not -given, a new one will internally allocated.

      -
    • OptionalbyteOffset: number

      Byte offset of the given buffer where serialization -will start.

      -

    Returns void

      -
    • In most cases there is no need to use this method since many setter -methods apply changes within the current buffer. To be sure, check -needsSerialization before.
    • -
    -
      -
    • If serialization fails due to invalid content previously added.
    • -
    • If given buffer doesn't have space enough to serialize the content.
    • -
    • If the buffer member of the given ArrayBuffer is the same than the -internal buffer in this packet and the given byteOffset would make -the serialization happen in bytes currently used by the packet (this would -corrupt the packet).
    • -
    -
diff --git a/docs/documents/README.html b/docs/documents/README.html deleted file mode 100644 index 89da2097..00000000 --- a/docs/documents/README.html +++ /dev/null @@ -1,29 +0,0 @@ -README | rtp.js - v0.13.1

rtp.js

-

-

RTP stack for Node.js and browser written in TypeScript. rtp.js provides with an API to parse, generate and modify RTP and RTCP packets.

-
npm install rtp.js
-
- -
    -
  • -

    API documentation

    -
  • -
  • -

    All RTP and RTCP classes, types and packet related helpers are exported by the packets module.

    -
    import { packets } from 'rtp.js';

    const {
    isRtp,
    isRtcp,
    RtpPacket,
    CompoundPacket,
    ReceiverReportPacket,
    SenderReportPacket,
    ReceptionReport,
    ByePacket,
    SdesPacket,
    NackPacket,
    SrReqPacket,
    EcnPacket,
    PliPacket,
    SliPacket,
    RpsiPacket,
    XrPacket,
    ExtendedJitterReportsPacket,
    GenericPacket,
    // etc.
    } = packets; -
    - -
  • -
  • -

    The utils module exports some generic helpers and utilities.

    -
    import { utils } from 'rtp.js';

    const view = utils.stringToDataView('foo'); -
    - -
  • -
- -

ISC

-
diff --git a/docs/enums/packets.ExtendedReportType.html b/docs/enums/packets.ExtendedReportType.html deleted file mode 100644 index 73c9ab2c..00000000 --- a/docs/enums/packets.ExtendedReportType.html +++ /dev/null @@ -1,18 +0,0 @@ -ExtendedReportType | rtp.js - v0.13.1

Enumeration ExtendedReportType

Extended Report types.

-

Enumeration Members

Enumeration Members

DLRR: 5

DLRR Report.

-
DRLE: 2

Duplicate RLE Report.

-
ECN: 13

ECN Summary Report.

-
LRLE: 1

Loss RLE Report.

-
PRT: 3

Packet Receipt Times Report.

-
RRT: 4

Receiver Reference Time Report.

-
SS: 6

Statistics Summary Report.

-
VM: 7

VoIP Metrics Report.

-
diff --git a/docs/enums/packets.PsFeedbackMessageType.html b/docs/enums/packets.PsFeedbackMessageType.html deleted file mode 100644 index c1303c87..00000000 --- a/docs/enums/packets.PsFeedbackMessageType.html +++ /dev/null @@ -1,10 +0,0 @@ -PsFeedbackMessageType | rtp.js - v0.13.1

Enumeration PsFeedbackMessageType

RTCP Feedback payload specific message types.

-

Enumeration Members

Enumeration Members

AFB: 15

Application layer FB message.

-
PLI: 1

Picture Loss Indication.

-
RPSI: 3

Reference Picture Selection Indication.

-
SLI: 2

Slice Loss Indication.

-
diff --git a/docs/enums/packets.RtcpPacketType.html b/docs/enums/packets.RtcpPacketType.html deleted file mode 100644 index 0b82e1f8..00000000 --- a/docs/enums/packets.RtcpPacketType.html +++ /dev/null @@ -1,20 +0,0 @@ -RtcpPacketType | rtp.js - v0.13.1

Enumeration RtcpPacketType

RTCP packet types.

-

Enumeration Members

APP -BYE -IJ -PSFB -RR -RTPFB -SDES -SR -XR -

Enumeration Members

APP: 204

RTCP APP packet.

-
BYE: 203

RTCP BYE packet.

-
IJ: 195

Extended Jitter Reports packet.

-
PSFB: 206

RTCP Payload Specific Feedback packet.

-
RR: 201

RTCP Receiver Report packet.

-
RTPFB: 205

RTCP Transport Layer Feedback packet.

-
SDES: 202

RTCP Sender Report packet.

-
SR: 200

RTCP Sender Report packet.

-
XR: 207

RTCP Extended Report packet.

-
diff --git a/docs/enums/packets.RtpExtensionType.html b/docs/enums/packets.RtpExtensionType.html deleted file mode 100644 index 34d9eb0e..00000000 --- a/docs/enums/packets.RtpExtensionType.html +++ /dev/null @@ -1,50 +0,0 @@ -RtpExtensionType | rtp.js - v0.13.1

Enumeration RtpExtensionType

RTP extensions.

-

Enumeration Members

ABS_SEND_TIME: 3

Absolute Send Time.

-

URI: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

-
-
MID: 0

Media identification.

-

URI: urn:ietf:params:rtp-hdrext:sdes:mid

-
-
RTP_REPAIRED_STREAM_ID: 2

RTP Repaired Stream Identifier.

-

URI: urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id

-
-
RTP_STREAM_ID: 1

RTP Stream Identifier.

-

URI: urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id

-
-
SSRC_AUDIO_LEVEL: 5

Audio Level

-

URI: urn:ietf:params:rtp-hdrext:ssrc-audio-level

-
-
TOFFSET: 7

Transmission Time Offsets.

-

URI: urn:ietf:params:rtp-hdrext:toffset

-
-
TRANSPORT_WIDE_SEQ_NUMBER: 4

Transport-wide Sequence Number.

-

URI: http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01

-
VIDEO_ORIENTATION: 6

Video Orientation.

-

URI: urn:3gpp:video-orientation

-
diff --git a/docs/enums/packets.RtpFeedbackMessageType.html b/docs/enums/packets.RtpFeedbackMessageType.html deleted file mode 100644 index 9a9697a4..00000000 --- a/docs/enums/packets.RtpFeedbackMessageType.html +++ /dev/null @@ -1,8 +0,0 @@ -RtpFeedbackMessageType | rtp.js - v0.13.1

Enumeration RtpFeedbackMessageType

RTCP Feedback transport layer message types.

-

Enumeration Members

Enumeration Members

ECN: 8

Explicit Congestion Notification (ECN).

-
NACK: 1

Generic NACK.

-
SR_REQ: 5

Rapid Resynchronisation Request.

-
diff --git a/docs/enums/packets.SdesItemType.html b/docs/enums/packets.SdesItemType.html deleted file mode 100644 index f1fc59de..00000000 --- a/docs/enums/packets.SdesItemType.html +++ /dev/null @@ -1,18 +0,0 @@ -SdesItemType | rtp.js - v0.13.1

Enumeration SdesItemType

SDES Chunk Item types.

-

Enumeration Members

Enumeration Members

CNAME: 1

Canonical End-Point Identifier SDES Item.

-
EMAIL: 3

Electronic Mail Address SDES Item.

-
LOC: 5

Geographic User Location SDES Item.

-
NAME: 2

User Name SDES Item.

-
NOTE: 7

Notice/Status SDES Item.

-
PHONE: 4

Phone Number SDES Item.

-
PRIV: 8

Private Extensions SDES Item.

-
TOOL: 6

Application or Tool Name SDES Item.

-
diff --git a/docs/functions/packets.createExtendedReportBitVectorChunk.html b/docs/functions/packets.createExtendedReportBitVectorChunk.html deleted file mode 100644 index 3c764a13..00000000 --- a/docs/functions/packets.createExtendedReportBitVectorChunk.html +++ /dev/null @@ -1,12 +0,0 @@ -createExtendedReportBitVectorChunk | rtp.js - v0.13.1

Function createExtendedReportBitVectorChunk

  • Create a Bit Vector Chunk and return a 2 bytes number representing it.

    -
     0                   1
    - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    -|C|        bit vector           |
    -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    -
    - -

    Parameters

    • bitVector: number

    Returns number

diff --git a/docs/functions/packets.createExtendedReportRunLengthChunk.html b/docs/functions/packets.createExtendedReportRunLengthChunk.html deleted file mode 100644 index 34ff368d..00000000 --- a/docs/functions/packets.createExtendedReportRunLengthChunk.html +++ /dev/null @@ -1,12 +0,0 @@ -createExtendedReportRunLengthChunk | rtp.js - v0.13.1

Function createExtendedReportRunLengthChunk

  • Create a Run Length Chunk and return a 2 bytes number representing it.

    -
     0                   1
    - 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    -|C|R|        run length         |
    -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    -
    - -

    Parameters

    • runType: "zeros" | "ones"
    • runLength: number

    Returns number

diff --git a/docs/functions/packets.createNackItem.html b/docs/functions/packets.createNackItem.html deleted file mode 100644 index 928568cb..00000000 --- a/docs/functions/packets.createNackItem.html +++ /dev/null @@ -1,5 +0,0 @@ -createNackItem | rtp.js - v0.13.1

Function createNackItem

  • Create a NACK item.

    -

    Parameters

    • seqs: number[]

      RTP sequence number of lost packets. As per NACK rules, there -can be up to 17 seq numbers and max diff between lowest and highest must -be 17.

      -

    Returns { bitmask: number; pid: number }

diff --git a/docs/functions/packets.isRtcp.html b/docs/functions/packets.isRtcp.html deleted file mode 100644 index fffe2e6f..00000000 --- a/docs/functions/packets.isRtcp.html +++ /dev/null @@ -1,2 +0,0 @@ -isRtcp | rtp.js - v0.13.1

Function isRtcp

  • Whether the given buffer view could be a valid RTCP packet or not.

    -

    Parameters

    • view: DataView

    Returns boolean

diff --git a/docs/functions/packets.isRtp.html b/docs/functions/packets.isRtp.html deleted file mode 100644 index 866c476c..00000000 --- a/docs/functions/packets.isRtp.html +++ /dev/null @@ -1,2 +0,0 @@ -isRtp | rtp.js - v0.13.1

Function isRtp

  • Whether the given buffer view could be a valid RTP packet or not.

    -

    Parameters

    • view: DataView

    Returns boolean

diff --git a/docs/functions/packets.parseExtendedReportChunk.html b/docs/functions/packets.parseExtendedReportChunk.html deleted file mode 100644 index a269022b..00000000 --- a/docs/functions/packets.parseExtendedReportChunk.html +++ /dev/null @@ -1,5 +0,0 @@ -parseExtendedReportChunk | rtp.js - v0.13.1

Function parseExtendedReportChunk

diff --git a/docs/functions/packets.parseNackItem.html b/docs/functions/packets.parseNackItem.html deleted file mode 100644 index 41c81999..00000000 --- a/docs/functions/packets.parseNackItem.html +++ /dev/null @@ -1,3 +0,0 @@ -parseNackItem | rtp.js - v0.13.1

Function parseNackItem

  • Parse a NACK item. It returns an array with RTP sequence numbers that are -included in the item (lost packets).

    -

    Parameters

    • pid: number
    • bitmask: number

    Returns number[]

diff --git a/docs/functions/packets.rtpExtensionUriToType.html b/docs/functions/packets.rtpExtensionUriToType.html deleted file mode 100644 index 3287f875..00000000 --- a/docs/functions/packets.rtpExtensionUriToType.html +++ /dev/null @@ -1,2 +0,0 @@ -rtpExtensionUriToType | rtp.js - v0.13.1

Function rtpExtensionUriToType

diff --git a/docs/functions/packets.timeMsToAbsSendTime.html b/docs/functions/packets.timeMsToAbsSendTime.html deleted file mode 100644 index 377f1469..00000000 --- a/docs/functions/packets.timeMsToAbsSendTime.html +++ /dev/null @@ -1,5 +0,0 @@ -timeMsToAbsSendTime | rtp.js - v0.13.1

Function timeMsToAbsSendTime

diff --git a/docs/functions/utils.arrayBufferToNodeBuffer.html b/docs/functions/utils.arrayBufferToNodeBuffer.html deleted file mode 100644 index 2b773617..00000000 --- a/docs/functions/utils.arrayBufferToNodeBuffer.html +++ /dev/null @@ -1,5 +0,0 @@ -arrayBufferToNodeBuffer | rtp.js - v0.13.1

Function arrayBufferToNodeBuffer

  • Convert ArrayBuffer to Node.js Buffer.

    -

    Parameters

    • arrayBuffer: ArrayBuffer

    Returns Buffer

      -
    • Just for Node.js.
    • -
    -
diff --git a/docs/functions/utils.arrayBufferToString.html b/docs/functions/utils.arrayBufferToString.html deleted file mode 100644 index a4b1353d..00000000 --- a/docs/functions/utils.arrayBufferToString.html +++ /dev/null @@ -1,2 +0,0 @@ -arrayBufferToString | rtp.js - v0.13.1

Function arrayBufferToString

  • Convert ArrayBuffer to string.

    -

    Parameters

    • arrayBuffer: ArrayBuffer

    Returns string

diff --git a/docs/functions/utils.dataViewToNodeBuffer.html b/docs/functions/utils.dataViewToNodeBuffer.html deleted file mode 100644 index 59d88af3..00000000 --- a/docs/functions/utils.dataViewToNodeBuffer.html +++ /dev/null @@ -1,5 +0,0 @@ -dataViewToNodeBuffer | rtp.js - v0.13.1

Function dataViewToNodeBuffer

  • Convert DataView to Node.js Buffer using the same underlying ArrayBuffer.

    -

    Parameters

    • view: DataView

    Returns Buffer

      -
    • Just for Node.js.
    • -
    -
diff --git a/docs/functions/utils.dataViewToString.html b/docs/functions/utils.dataViewToString.html deleted file mode 100644 index fe756417..00000000 --- a/docs/functions/utils.dataViewToString.html +++ /dev/null @@ -1,2 +0,0 @@ -dataViewToString | rtp.js - v0.13.1

Function dataViewToString

  • Convert DataView to string.

    -

    Parameters

    • view: DataView

    Returns string

diff --git a/docs/functions/utils.getStringByteLength.html b/docs/functions/utils.getStringByteLength.html deleted file mode 100644 index cf62101d..00000000 --- a/docs/functions/utils.getStringByteLength.html +++ /dev/null @@ -1,2 +0,0 @@ -getStringByteLength | rtp.js - v0.13.1

Function getStringByteLength

  • Get the byte length of a string.

    -

    Parameters

    • string: string

    Returns number

diff --git a/docs/functions/utils.nodeBufferToArrayBuffer.html b/docs/functions/utils.nodeBufferToArrayBuffer.html deleted file mode 100644 index 4d8c29a9..00000000 --- a/docs/functions/utils.nodeBufferToArrayBuffer.html +++ /dev/null @@ -1,5 +0,0 @@ -nodeBufferToArrayBuffer | rtp.js - v0.13.1

Function nodeBufferToArrayBuffer

  • Convert Node.js Buffer to a new allocated ArrayBuffer.

    -

    Parameters

    • nodeBuffer: Buffer

    Returns ArrayBuffer

      -
    • Just for Node.js.
    • -
    -
diff --git a/docs/functions/utils.nodeBufferToDataView.html b/docs/functions/utils.nodeBufferToDataView.html deleted file mode 100644 index efb4b187..00000000 --- a/docs/functions/utils.nodeBufferToDataView.html +++ /dev/null @@ -1,5 +0,0 @@ -nodeBufferToDataView | rtp.js - v0.13.1

Function nodeBufferToDataView

  • Convert Node.js Buffer to DataView using the same underlying ArrayBuffer.

    -

    Parameters

    • nodeBuffer: Buffer

    Returns DataView

      -
    • Just for Node.js.
    • -
    -
diff --git a/docs/functions/utils.numberToDataView.html b/docs/functions/utils.numberToDataView.html deleted file mode 100644 index 0942d014..00000000 --- a/docs/functions/utils.numberToDataView.html +++ /dev/null @@ -1,2 +0,0 @@ -numberToDataView | rtp.js - v0.13.1

Function numberToDataView

  • Convert number to DataView.

    -

    Parameters

    • number: number

    Returns DataView

diff --git a/docs/functions/utils.numericArrayToDataView.html b/docs/functions/utils.numericArrayToDataView.html deleted file mode 100644 index fddb3d2f..00000000 --- a/docs/functions/utils.numericArrayToDataView.html +++ /dev/null @@ -1,2 +0,0 @@ -numericArrayToDataView | rtp.js - v0.13.1

Function numericArrayToDataView

  • Convert array of integers to DataView.

    -

    Parameters

    • array: number[]

    Returns DataView

diff --git a/docs/functions/utils.padTo4Bytes.html b/docs/functions/utils.padTo4Bytes.html deleted file mode 100644 index 21b032c8..00000000 --- a/docs/functions/utils.padTo4Bytes.html +++ /dev/null @@ -1,2 +0,0 @@ -padTo4Bytes | rtp.js - v0.13.1

Function padTo4Bytes

  • Returns the given size padded to 4 bytes.

    -

    Parameters

    • size: number

    Returns number

diff --git a/docs/functions/utils.stringToDataView.html b/docs/functions/utils.stringToDataView.html deleted file mode 100644 index c27f4abb..00000000 --- a/docs/functions/utils.stringToDataView.html +++ /dev/null @@ -1,2 +0,0 @@ -stringToDataView | rtp.js - v0.13.1

Function stringToDataView

  • Convert string to DataView.

    -

    Parameters

    • string: string

    Returns DataView

diff --git a/docs/hierarchy.html b/docs/hierarchy.html deleted file mode 100644 index 621bf80d..00000000 --- a/docs/hierarchy.html +++ /dev/null @@ -1 +0,0 @@ -rtp.js - v0.13.1
diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index c5c9ffbf..00000000 --- a/docs/index.html +++ /dev/null @@ -1,29 +0,0 @@ -rtp.js - v0.13.1

rtp.js - v0.13.1

rtp.js

-

-

RTP stack for Node.js and browser written in TypeScript. rtp.js provides with an API to parse, generate and modify RTP and RTCP packets.

-
npm install rtp.js
-
- -
    -
  • -

    API documentation

    -
  • -
  • -

    All RTP and RTCP classes, types and packet related helpers are exported by the packets module.

    -
    import { packets } from 'rtp.js';

    const {
    isRtp,
    isRtcp,
    RtpPacket,
    CompoundPacket,
    ReceiverReportPacket,
    SenderReportPacket,
    ReceptionReport,
    ByePacket,
    SdesPacket,
    NackPacket,
    SrReqPacket,
    EcnPacket,
    PliPacket,
    SliPacket,
    RpsiPacket,
    XrPacket,
    ExtendedJitterReportsPacket,
    GenericPacket,
    // etc.
    } = packets; -
    - -
  • -
  • -

    The utils module exports some generic helpers and utilities.

    -
    import { utils } from 'rtp.js';

    const view = utils.stringToDataView('foo'); -
    - -
  • -
- -

ISC

-
diff --git a/docs/media/LICENSE b/docs/media/LICENSE deleted file mode 100644 index 706f43b4..00000000 --- a/docs/media/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -ISC License - -Copyright © 2020, Iñaki Baz Castillo - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/docs/modules.html b/docs/modules.html deleted file mode 100644 index 21699ced..00000000 --- a/docs/modules.html +++ /dev/null @@ -1 +0,0 @@ -rtp.js - v0.13.1

rtp.js - v0.13.1

Documents

README

Modules

packets
utils
diff --git a/docs/modules/packets.html b/docs/modules/packets.html deleted file mode 100644 index 9c03dadc..00000000 --- a/docs/modules/packets.html +++ /dev/null @@ -1 +0,0 @@ -packets | rtp.js - v0.13.1
diff --git a/docs/modules/utils.html b/docs/modules/utils.html deleted file mode 100644 index 522a3fe4..00000000 --- a/docs/modules/utils.html +++ /dev/null @@ -1 +0,0 @@ -utils | rtp.js - v0.13.1
diff --git a/docs/types/packets.ByePacketDump.html b/docs/types/packets.ByePacketDump.html deleted file mode 100644 index b533e046..00000000 --- a/docs/types/packets.ByePacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -ByePacketDump | rtp.js - v0.13.1

Type Alias ByePacketDump

ByePacketDump: RtcpPacketDump & { reason?: string; ssrcs: number[] }

RTCP BYE packet info dump.

-
diff --git a/docs/types/packets.CompoundPacketDump.html b/docs/types/packets.CompoundPacketDump.html deleted file mode 100644 index fe4a8435..00000000 --- a/docs/types/packets.CompoundPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -CompoundPacketDump | rtp.js - v0.13.1

Type Alias CompoundPacketDump

CompoundPacketDump: PacketDump & { packets: RtcpPacketDump[] }

RTCP Compound packet info dump.

-
diff --git a/docs/types/packets.DlrrExtendedReportDump.html b/docs/types/packets.DlrrExtendedReportDump.html deleted file mode 100644 index 6a02b902..00000000 --- a/docs/types/packets.DlrrExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -DlrrExtendedReportDump | rtp.js - v0.13.1

Type Alias DlrrExtendedReportDump

DlrrExtendedReportDump: ExtendedReportDump & { subReports: DlrrSubReport[] }

DLRR Extended Report dump.

-
diff --git a/docs/types/packets.DlrrSubReport.html b/docs/types/packets.DlrrSubReport.html deleted file mode 100644 index c2e4b4ae..00000000 --- a/docs/types/packets.DlrrSubReport.html +++ /dev/null @@ -1,5 +0,0 @@ -DlrrSubReport | rtp.js - v0.13.1

Type Alias DlrrSubReport

DlrrSubReport: { dlrr: number; lrr: number; ssrc: number }

DLRR Sub-Report.

-

Type declaration

  • dlrr: number

    Delay since last RR.

    -
  • lrr: number

    Last RR timestamp.

    -
  • ssrc: number

    SSRC of receiver.

    -
diff --git a/docs/types/packets.DrleExtendedReportDump.html b/docs/types/packets.DrleExtendedReportDump.html deleted file mode 100644 index a1608bc8..00000000 --- a/docs/types/packets.DrleExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -DrleExtendedReportDump | rtp.js - v0.13.1

Type Alias DrleExtendedReportDump

DrleExtendedReportDump: ExtendedReportDump & {
    beginSeq: number;
    chunks: number[];
    endSeq: number;
    ssrc: number;
    thinning: number;
}

Duplicate RLE Extended Report dump.

-
diff --git a/docs/types/packets.EcnExtendedReportDump.html b/docs/types/packets.EcnExtendedReportDump.html deleted file mode 100644 index 761109eb..00000000 --- a/docs/types/packets.EcnExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -EcnExtendedReportDump | rtp.js - v0.13.1

Type Alias EcnExtendedReportDump

EcnExtendedReportDump: ExtendedReportDump & {
    duplicationCounter: number;
    ecnCeCounter: number;
    ect0Counter: number;
    ect1Counter: number;
    lostPacketsCounter: number;
    nonEctCounter: number;
    ssrc: number;
}

ECN Summary Extended Report dump.

-
diff --git a/docs/types/packets.EcnPacketDump.html b/docs/types/packets.EcnPacketDump.html deleted file mode 100644 index 8aea1254..00000000 --- a/docs/types/packets.EcnPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -EcnPacketDump | rtp.js - v0.13.1

Type Alias EcnPacketDump

EcnPacketDump: FeedbackPacketDump & {
    duplicationCounter: number;
    ecnCeCounter: number;
    ect0Counter: number;
    ect1Counter: number;
    extendedHighestSequenceNumber: number;
    lostPacketsCounter: number;
    nonEctCounter: number;
}

RTCP ECN packet info dump.

-
diff --git a/docs/types/packets.ExtendedJitterReportsPacketDump.html b/docs/types/packets.ExtendedJitterReportsPacketDump.html deleted file mode 100644 index dee21520..00000000 --- a/docs/types/packets.ExtendedJitterReportsPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -ExtendedJitterReportsPacketDump | rtp.js - v0.13.1

Type Alias ExtendedJitterReportsPacketDump

ExtendedJitterReportsPacketDump: RtcpPacketDump & { jitters: number[] }

RTCP Extended Jitter Reports packet info dump.

-
diff --git a/docs/types/packets.ExtendedReportChunk.html b/docs/types/packets.ExtendedReportChunk.html deleted file mode 100644 index 5b908216..00000000 --- a/docs/types/packets.ExtendedReportChunk.html +++ /dev/null @@ -1,31 +0,0 @@ -ExtendedReportChunk | rtp.js - v0.13.1

Type Alias ExtendedReportChunk

ExtendedReportChunk: {
    bitVector?: number;
    chunkType: "run-length" | "bit-vector" | "terminating-null";
    runLength?: number;
    runType?: "zeros" | "ones";
}

Loss RLE and Duplicate RLE Extended Report chunk info.

-
Run Length Chunk
- 0                   1
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|C|R|        run length         |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Bit Vector Chunk
- 0                   1
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|C|        bit vector           |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Terminating Null Chunk
- 0                   1
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-|0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
- -

Type declaration

  • OptionalbitVector?: number

    Chunk bit vector (only set if chunkType is 'bit-vector').

    -
  • chunkType: "run-length" | "bit-vector" | "terminating-null"

    Chunk type (Run Length Chunk, Bit Vector Chunk or Terminating Null Chunk).

    -
  • OptionalrunLength?: number

    Chunk run length (only set if chunkType is 'run-length').

    -
  • OptionalrunType?: "zeros" | "ones"

    Chunk run type (only set if chunkType is 'run-length').

    -
diff --git a/docs/types/packets.ExtendedReportDump.html b/docs/types/packets.ExtendedReportDump.html deleted file mode 100644 index 3e241a27..00000000 --- a/docs/types/packets.ExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -ExtendedReportDump | rtp.js - v0.13.1

Type Alias ExtendedReportDump

ExtendedReportDump: SerializableDump & { reportType: ExtendedReportType }

Extended Report dump.

-
diff --git a/docs/types/packets.FeedbackPacketDump.html b/docs/types/packets.FeedbackPacketDump.html deleted file mode 100644 index 70074ea3..00000000 --- a/docs/types/packets.FeedbackPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -FeedbackPacketDump | rtp.js - v0.13.1

Type Alias FeedbackPacketDump

FeedbackPacketDump: RtcpPacketDump & {
    mediaSsrc: number;
    messageType: RtpFeedbackMessageType | PsFeedbackMessageType;
    senderSsrc: number;
}

RTCP Feedback packet info dump.

-
diff --git a/docs/types/packets.GenericExtendedReportDump.html b/docs/types/packets.GenericExtendedReportDump.html deleted file mode 100644 index c8bd4c44..00000000 --- a/docs/types/packets.GenericExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -GenericExtendedReportDump | rtp.js - v0.13.1

Type Alias GenericExtendedReportDump

GenericExtendedReportDump: ExtendedReportDump

Generic Extended Report dump.

-
diff --git a/docs/types/packets.GenericFeedbackPacketDump.html b/docs/types/packets.GenericFeedbackPacketDump.html deleted file mode 100644 index d46d3d2b..00000000 --- a/docs/types/packets.GenericFeedbackPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -GenericFeedbackPacketDump | rtp.js - v0.13.1

Type Alias GenericFeedbackPacketDump

GenericFeedbackPacketDump: FeedbackPacketDump & { bodyLength: number }

RTCP generic Feedback packet info.

-
diff --git a/docs/types/packets.GenericPacketDump.html b/docs/types/packets.GenericPacketDump.html deleted file mode 100644 index ef9ced7b..00000000 --- a/docs/types/packets.GenericPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -GenericPacketDump | rtp.js - v0.13.1

Type Alias GenericPacketDump

GenericPacketDump: RtcpPacketDump & { bodyLength: number }

RTCP generic packet info dump.

-
diff --git a/docs/types/packets.LrleExtendedReportDump.html b/docs/types/packets.LrleExtendedReportDump.html deleted file mode 100644 index f2f5592a..00000000 --- a/docs/types/packets.LrleExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -LrleExtendedReportDump | rtp.js - v0.13.1

Type Alias LrleExtendedReportDump

LrleExtendedReportDump: ExtendedReportDump & {
    beginSeq: number;
    chunks: number[];
    endSeq: number;
    ssrc: number;
    thinning: number;
}

Loss RLE Extended Report dump.

-
diff --git a/docs/types/packets.NackPacketDump.html b/docs/types/packets.NackPacketDump.html deleted file mode 100644 index 8a9451b1..00000000 --- a/docs/types/packets.NackPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -NackPacketDump | rtp.js - v0.13.1

Type Alias NackPacketDump

NackPacketDump: FeedbackPacketDump & {
    items: { bitmask: number; pid: number }[];
}

RTCP NACK packet info dump.

-
diff --git a/docs/types/packets.PacketDump.html b/docs/types/packets.PacketDump.html deleted file mode 100644 index 572320f2..00000000 --- a/docs/types/packets.PacketDump.html +++ /dev/null @@ -1,5 +0,0 @@ -PacketDump | rtp.js - v0.13.1

Type Alias PacketDump

PacketDump: SerializableDump & { padding: number }

Packet info dump.

-
    -
  • Read the info dump type of each RTP and RTCP packet instead.
  • -
-
diff --git a/docs/types/packets.PliPacketDump.html b/docs/types/packets.PliPacketDump.html deleted file mode 100644 index a43fc312..00000000 --- a/docs/types/packets.PliPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -PliPacketDump | rtp.js - v0.13.1

Type Alias PliPacketDump

PliPacketDump: FeedbackPacketDump

RTCP PLI packet info dump.

-
diff --git a/docs/types/packets.PrtExtendedReportDump.html b/docs/types/packets.PrtExtendedReportDump.html deleted file mode 100644 index 3f5f95de..00000000 --- a/docs/types/packets.PrtExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -PrtExtendedReportDump | rtp.js - v0.13.1

Type Alias PrtExtendedReportDump

PrtExtendedReportDump: ExtendedReportDump & {
    beginSeq: number;
    endSeq: number;
    receiptTimes: number[];
    ssrc: number;
    thinning: number;
}

Packet Receipt Times Extended Report dump.

-
diff --git a/docs/types/packets.ReceiverReportPacketDump.html b/docs/types/packets.ReceiverReportPacketDump.html deleted file mode 100644 index 6bdea23b..00000000 --- a/docs/types/packets.ReceiverReportPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -ReceiverReportPacketDump | rtp.js - v0.13.1

Type Alias ReceiverReportPacketDump

ReceiverReportPacketDump: RtcpPacketDump & {
    reports: ReceptionReportDump[];
    ssrc: number;
}

RTCP Receiver Report packet info dump.

-
diff --git a/docs/types/packets.ReceptionReportDump.html b/docs/types/packets.ReceptionReportDump.html deleted file mode 100644 index f9d19f94..00000000 --- a/docs/types/packets.ReceptionReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -ReceptionReportDump | rtp.js - v0.13.1

Type Alias ReceptionReportDump

ReceptionReportDump: SerializableDump & {
    dlsr: number;
    fractionLost: number;
    highestSeq: number;
    jitter: number;
    lsr: number;
    ssrc: number;
    totalLost: number;
}

Reception Report dump.

-
diff --git a/docs/types/packets.RpsiPacketDump.html b/docs/types/packets.RpsiPacketDump.html deleted file mode 100644 index f47c4c85..00000000 --- a/docs/types/packets.RpsiPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -RpsiPacketDump | rtp.js - v0.13.1

Type Alias RpsiPacketDump

RpsiPacketDump: FeedbackPacketDump & {
    bitStringLength: number;
    paddingBits: number;
    payloadType: number;
}

RTCP RPSI packet info dump.

-
diff --git a/docs/types/packets.RrtExtendedReportDump.html b/docs/types/packets.RrtExtendedReportDump.html deleted file mode 100644 index 9a6a061f..00000000 --- a/docs/types/packets.RrtExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -RrtExtendedReportDump | rtp.js - v0.13.1

Type Alias RrtExtendedReportDump

RrtExtendedReportDump: ExtendedReportDump & {
    ntpFraction: number;
    ntpSeq: number;
}

Receiver Reference Time Extended Report dump.

-
diff --git a/docs/types/packets.RtcpPacketDump.html b/docs/types/packets.RtcpPacketDump.html deleted file mode 100644 index e73a7f05..00000000 --- a/docs/types/packets.RtcpPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -RtcpPacketDump | rtp.js - v0.13.1

Type Alias RtcpPacketDump

RtcpPacketDump: PacketDump & { count: number; packetType: RtcpPacketType }

Base RTCP packet info dump.

-
diff --git a/docs/types/packets.RtpExtensionMapping.html b/docs/types/packets.RtpExtensionMapping.html deleted file mode 100644 index 9e3c0733..00000000 --- a/docs/types/packets.RtpExtensionMapping.html +++ /dev/null @@ -1,5 +0,0 @@ -RtpExtensionMapping | rtp.js - v0.13.1

Type Alias RtpExtensionMapping

RtpExtensionMapping: Partial<Record<RtpExtensionType, number>>

Mapping of RTP extension types and their corresponding RTP extension ids.

-
const rtpExtensionMapping: RtpExtensionMapping =
{
[RtpExtensionType.MID]: 1,
[RtpExtensionType.RTP_STREAM_ID]: 3
-
- -
diff --git a/docs/types/packets.RtpPacketDump.html b/docs/types/packets.RtpPacketDump.html deleted file mode 100644 index f9f60914..00000000 --- a/docs/types/packets.RtpPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -RtpPacketDump | rtp.js - v0.13.1

Type Alias RtpPacketDump

RtpPacketDump: PacketDump & {
    absSendTimeExt?: number;
    csrcs: number[];
    extensions: { id: number; length: number }[];
    headerExtensionId?: number;
    marker: boolean;
    midExt?: string;
    payloadLength: number;
    payloadType: number;
    repairedRidExt?: string;
    ridExt?: string;
    sequenceNumber: number;
    ssrc: number;
    ssrcAudioLevelExt?: SsrcAudioLevelExtension;
    timestamp: number;
    transmissionOffsetExt?: number;
    transportWideSeqNumberExt?: number;
    videoOrientationExt?: VideoOrientationExtension;
}

RTP packet info dump.

-
diff --git a/docs/types/packets.SdesChunkDump.html b/docs/types/packets.SdesChunkDump.html deleted file mode 100644 index 628b19f0..00000000 --- a/docs/types/packets.SdesChunkDump.html +++ /dev/null @@ -1,2 +0,0 @@ -SdesChunkDump | rtp.js - v0.13.1

Type Alias SdesChunkDump

SdesChunkDump: SerializableDump & {
    items: { text: string; type: SdesItemType }[];
    ssrc: number;
}

SDES Chunk dump.

-
diff --git a/docs/types/packets.SdesPacketDump.html b/docs/types/packets.SdesPacketDump.html deleted file mode 100644 index 06f9b305..00000000 --- a/docs/types/packets.SdesPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -SdesPacketDump | rtp.js - v0.13.1

Type Alias SdesPacketDump

SdesPacketDump: RtcpPacketDump & { chunks: SdesChunkDump[] }

RTCP SDES packet info dump.

-
diff --git a/docs/types/packets.SenderReportPacketDump.html b/docs/types/packets.SenderReportPacketDump.html deleted file mode 100644 index 9ce538f2..00000000 --- a/docs/types/packets.SenderReportPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -SenderReportPacketDump | rtp.js - v0.13.1

Type Alias SenderReportPacketDump

SenderReportPacketDump: RtcpPacketDump & {
    ntpFraction: number;
    ntpSeq: number;
    octetCount: number;
    packetCount: number;
    reports: ReceptionReportDump[];
    rtpTimestamp: number;
    ssrc: number;
}

RTCP Sender Report packet info dump.

-
diff --git a/docs/types/packets.SerializableDump.html b/docs/types/packets.SerializableDump.html deleted file mode 100644 index a2bc92be..00000000 --- a/docs/types/packets.SerializableDump.html +++ /dev/null @@ -1,2 +0,0 @@ -SerializableDump | rtp.js - v0.13.1

Type Alias SerializableDump

SerializableDump: { byteLength: number }

Serializable info dump.

-

Type declaration

  • byteLength: number
diff --git a/docs/types/packets.SliPacketDump.html b/docs/types/packets.SliPacketDump.html deleted file mode 100644 index 7de2434f..00000000 --- a/docs/types/packets.SliPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -SliPacketDump | rtp.js - v0.13.1

Type Alias SliPacketDump

SliPacketDump: FeedbackPacketDump & {
    items: { first: number; number: number; pictureId: number }[];
}

RTCP SLI packet info dump.

-
diff --git a/docs/types/packets.SrReqPacketDump.html b/docs/types/packets.SrReqPacketDump.html deleted file mode 100644 index cb0cc46b..00000000 --- a/docs/types/packets.SrReqPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -SrReqPacketDump | rtp.js - v0.13.1

Type Alias SrReqPacketDump

SrReqPacketDump: FeedbackPacketDump

RTCP SR REQ packet info dump.

-
diff --git a/docs/types/packets.SsExtendedReportDump.html b/docs/types/packets.SsExtendedReportDump.html deleted file mode 100644 index 148ac475..00000000 --- a/docs/types/packets.SsExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -SsExtendedReportDump | rtp.js - v0.13.1

Type Alias SsExtendedReportDump

SsExtendedReportDump: ExtendedReportDump & {
    beginSeq: number;
    devJitter?: number;
    devTtlOrHl?: number;
    duplicatePackets?: number;
    endSeq: number;
    lostPackets?: number;
    maxJitter?: number;
    maxTtlOrHl?: number;
    meanJitter?: number;
    meanTtlOrHl?: number;
    minJitter?: number;
    minTtlOrHl?: number;
    ssrc: number;
    ttlOrHlMode?: "ipv4-ttl" | "ipv6-hop-limit";
}

Statistics Summary Extended Report dump.

-
diff --git a/docs/types/packets.SsrcAudioLevelExtension.html b/docs/types/packets.SsrcAudioLevelExtension.html deleted file mode 100644 index e1544609..00000000 --- a/docs/types/packets.SsrcAudioLevelExtension.html +++ /dev/null @@ -1,8 +0,0 @@ -SsrcAudioLevelExtension | rtp.js - v0.13.1

Type Alias SsrcAudioLevelExtension

SsrcAudioLevelExtension: { voice: boolean; volume: number }

SSRC Audio Level data.

-

Type declaration

  • voice: boolean

    Whether the encoder believes the audio packet contains voice activity.

    -
  • volume: number

    Audio level expressed in -dBov, with values from 0 to 127 representing 0 -to -127 dBov.

    -
-
diff --git a/docs/types/packets.VideoOrientationExtension.html b/docs/types/packets.VideoOrientationExtension.html deleted file mode 100644 index 912ce320..00000000 --- a/docs/types/packets.VideoOrientationExtension.html +++ /dev/null @@ -1,9 +0,0 @@ -VideoOrientationExtension | rtp.js - v0.13.1

Type Alias VideoOrientationExtension

VideoOrientationExtension: { camera: boolean; flip: boolean; rotation: number }

Video Orientation data.

-

Type declaration

  • camera: boolean
  • flip: boolean
  • rotation: number

    0: no rotation. -1: rotation is 90º. -2: rotation is 180º. -3: rotation is 270º.

    -
diff --git a/docs/types/packets.VmExtendedReportDump.html b/docs/types/packets.VmExtendedReportDump.html deleted file mode 100644 index 0a047cd7..00000000 --- a/docs/types/packets.VmExtendedReportDump.html +++ /dev/null @@ -1,2 +0,0 @@ -VmExtendedReportDump | rtp.js - v0.13.1

Type Alias VmExtendedReportDump

VmExtendedReportDump: ExtendedReportDump & {
    burstDensity: number;
    burstDuration: number;
    discardRate: number;
    endSystemDelay: number;
    extRFactor: number;
    gapDensity: number;
    gapDuration: number;
    gmin: number;
    jba: number;
    jbAbsMax: number;
    jbMax: number;
    jbNominal: number;
    jbRate: number;
    lossRate: number;
    mosCq: number;
    mosLq: number;
    noiseLevel: number;
    plc: number;
    rerl: number;
    rFactor: number;
    roundTripDelay: number;
    signalLevel: number;
    ssrc: number;
}

VoIP Metrics Extended Report dump.

-
diff --git a/docs/types/packets.XrPacketDump.html b/docs/types/packets.XrPacketDump.html deleted file mode 100644 index cd446030..00000000 --- a/docs/types/packets.XrPacketDump.html +++ /dev/null @@ -1,2 +0,0 @@ -XrPacketDump | rtp.js - v0.13.1

Type Alias XrPacketDump

XrPacketDump: RtcpPacketDump & { reports: ExtendedReportDump[]; ssrc: number }

RTCP XR packet info dump.

-
diff --git a/npm-scripts.mjs b/npm-scripts.mjs index 9f099ffc..ca65537c 100644 --- a/npm-scripts.mjs +++ b/npm-scripts.mjs @@ -104,8 +104,6 @@ async function run() { case 'release': { checkRelease(); - generateDocs(); - executeCmd('git add docs'); executeCmd(`git commit -am '${PKG.version}'`); executeCmd(`git tag -a ${PKG.version} -m '${PKG.version}'`); executeCmd(`git push origin ${RELEASE_BRANCH}`); @@ -117,7 +115,6 @@ async function run() { case 'docs': { generateDocs(); - executeCmd('open-cli docs/index.html'); break; } @@ -214,10 +211,7 @@ function checkRelease() { function generateDocs() { logInfo('generateDocs()'); - // NOTE: typedoc options are given in tsconfig.json. - // NOTE: .nojekyll is required, otherwise GitHub pages will ignore - // generated HTML files with underscore. - executeCmd('typedoc && touch docs/.nojekyll'); + executeCmd('typedoc'); } function checkDocs() {