diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..4c551675 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# EditorConfig is awesome: https://editorconfig.org + +root = true + +[*] +indent_style = tab +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{ts,js,mjs}] +indent_style = tab + +[*.json] +indent_style = tab diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index c07404bc..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,182 +0,0 @@ -const eslintConfig = { - env: { - es6: true, - node: true, - browser: false, - }, - plugins: ['prettier'], - settings: {}, - parserOptions: { - ecmaVersion: 2022, - sourceType: 'module', - ecmaFeatures: { - impliedStrict: true, - }, - lib: ['es2022'], - }, - globals: { - NodeJS: 'readonly', - }, - extends: ['eslint:recommended', 'plugin:prettier/recommended'], - rules: { - 'prettier/prettier': 2, - 'constructor-super': 2, - curly: [2, 'all'], - // Unfortunatelly `curly` does not apply to blocks in `switch` cases so - // this is needed. - 'no-restricted-syntax': [ - 2, - { - selector: 'SwitchCase > *.consequent[type!="BlockStatement"]', - message: 'Switch cases without blocks are disallowed', - }, - ], - 'guard-for-in': 2, - 'newline-after-var': 2, - 'newline-before-return': 2, - 'no-alert': 2, - 'no-caller': 2, - 'no-case-declarations': 2, - 'no-catch-shadow': 2, - 'no-class-assign': 2, - 'no-console': 2, - 'no-const-assign': 2, - 'no-debugger': 2, - 'no-dupe-args': 2, - 'no-dupe-keys': 2, - 'no-duplicate-case': 2, - 'no-div-regex': 2, - 'no-empty': [2, { allowEmptyCatch: true }], - 'no-empty-pattern': 2, - 'no-else-return': 0, - 'no-eval': 2, - 'no-extend-native': 2, - 'no-ex-assign': 2, - 'no-extra-bind': 2, - 'no-extra-boolean-cast': 2, - 'no-extra-label': 2, - 'no-fallthrough': 2, - 'no-func-assign': 2, - 'no-global-assign': 2, - 'no-implicit-coercion': 2, - 'no-implicit-globals': 2, - 'no-inner-declarations': 2, - 'no-invalid-regexp': 2, - 'no-invalid-this': 2, - 'no-irregular-whitespace': 2, - 'no-lonely-if': 2, - 'no-multi-str': 2, - 'no-native-reassign': 2, - 'no-negated-in-lhs': 2, - 'no-new': 2, - 'no-new-func': 2, - 'no-new-wrappers': 2, - 'no-obj-calls': 2, - 'no-proto': 2, - 'no-prototype-builtins': 0, - 'no-redeclare': 2, - 'no-regex-spaces': 2, - 'no-restricted-imports': 2, - 'no-return-assign': 2, - 'no-self-assign': 2, - 'no-self-compare': 2, - 'no-sequences': 2, - 'no-shadow': 2, - 'no-shadow-restricted-names': 2, - 'no-sparse-arrays': 2, - 'no-this-before-super': 2, - 'no-throw-literal': 2, - 'no-undef': 2, - 'no-unmodified-loop-condition': 2, - 'no-unreachable': 2, - 'no-unused-vars': [1, { vars: 'all', args: 'after-used' }], - 'no-use-before-define': 0, - 'no-useless-call': 2, - 'no-useless-computed-key': 2, - 'no-useless-concat': 2, - 'no-useless-rename': 2, - 'no-var': 2, - 'object-curly-newline': 0, - 'prefer-const': 2, - 'prefer-rest-params': 2, - 'prefer-spread': 2, - 'prefer-template': 2, - 'spaced-comment': [2, 'always'], - strict: 2, - 'valid-typeof': 2, - yoda: 2, - }, - overrides: [], -}; - -const tsRules = { - 'no-unused-vars': 0, - '@typescript-eslint/ban-types': 0, - '@typescript-eslint/ban-ts-comment': 0, - '@typescript-eslint/ban-ts-ignore': 0, - '@typescript-eslint/explicit-module-boundary-types': 0, - '@typescript-eslint/semi': 2, - '@typescript-eslint/member-delimiter-style': [ - 2, - { - multiline: { delimiter: 'semi', requireLast: true }, - singleline: { delimiter: 'semi', requireLast: false }, - }, - ], - '@typescript-eslint/no-explicit-any': 0, - '@typescript-eslint/no-unused-vars': [ - 2, - { - vars: 'all', - args: 'after-used', - ignoreRestSiblings: false, - }, - ], - '@typescript-eslint/no-use-before-define': [ - 2, - { functions: false, classes: false }, - ], - '@typescript-eslint/no-empty-function': 0, - '@typescript-eslint/no-non-null-assertion': 0, -}; - -eslintConfig.overrides.push({ - files: ['*.ts'], - parser: '@typescript-eslint/parser', - parserOptions: { - ...eslintConfig.parserOptions, - project: 'tsconfig.json', - }, - plugins: [...eslintConfig.plugins, '@typescript-eslint'], - extends: [ - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - ...eslintConfig.extends, - ], - rules: { ...eslintConfig.rules, ...tsRules }, -}); - -eslintConfig.overrides.push({ - files: ['src/test/**/*.ts'], - parserOptions: { - ...eslintConfig.parserOptions, - project: 'tsconfig.json', - }, - env: { - ...eslintConfig.env, - 'jest/globals': true, - }, - extends: [ - 'plugin:@typescript-eslint/eslint-recommended', - 'plugin:@typescript-eslint/recommended', - ...eslintConfig.extends, - ], - plugins: [...eslintConfig.plugins, '@typescript-eslint', 'jest'], - rules: { - ...eslintConfig.rules, - ...tsRules, - 'jest/no-disabled-tests': 2, - }, -}); - -module.exports = eslintConfig; diff --git a/.github/workflows/rtp.js.yaml b/.github/workflows/rtp.js.yaml index 956716c9..c0b2bdbc 100644 --- a/.github/workflows/rtp.js.yaml +++ b/.github/workflows/rtp.js.yaml @@ -56,3 +56,6 @@ jobs: - name: npm run test run: npm run test + + - name: npm run docs:check + run: npm run docs:check diff --git a/.prettierrc.json b/.prettierrc.json index 7cae653b..a824e542 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -5,6 +5,6 @@ "bracketSpacing": true, "semi": true, "singleQuote": true, - "trailingComma": "all", + "trailingComma": "es5", "endOfLine": "auto" } diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js deleted file mode 100644 index 91f83a4d..00000000 --- a/docs/assets/navigation.js +++ /dev/null @@ -1 +0,0 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE52ZW1PbMBBG/4ufmbYw9MYbAdppB1ImSTOdYXhw7CXR4FslmZJ2+t9rx/giS9pd9y0kR+eT1het8d2fQMOzDs6CIoweQavgqPqkd9UXaR6XCajXLz+82uk0qX59FFkcnJ0cBdFOJLGELDi76yRXzxqyGOIFFLnUq30BvQ+yMu1tNmkGfPh71Flv1SeAeFONvAGlwi1gYifsdy90VNwehmJSk8JsxWFhSuQZ7jM51Dhh8W7ab1/GoL5oSDHnkPGbZntoCtRroiRUanACdYhpOT4Zei7ytMjLLKZkJocZLxMpzbPNb7VZ1CwTYJstFjNfRRlXbKGElypsh6Cel8SvQmuQTa4izf5BnCyyEOwqtJcINWGTw4yfIQMpIu5UnTjDz524E2f4mV7adz3hyrBZzDxnLH/OWjNlYRgSQUpaBPVIzS2WhWLeBUQgntpLjZqqi6bsha42MGrOIxB1Foosac+gJn5NLRT1dp0AIuwY3MQQMTz1/nyxK7NHv6dDKA81oZ5BTXUtmWedzeJmKcJE/A43CWDOnkJt9PW75Fy/y2r+P0lTD6EuxT1txyRmXadc65jErD8kteiWwCxdW3hZpkWv0lW76egda2j0KPLm4/vjtyfeHhLT2iTltjtEzO+mORnLcjM+VLa6g0ijtceis3bSVIbViGIRTpiRQB9SAyKN/pYUzcCHcVObgaN7tztpgE6zc5bBPwJmR4m5bZJyO5tiLMI7gJnEX4x3ADOJncA3210zpnfTVMacVZz5pIrQvgmudnNGdUOINI5bQdTsgqkEV5eNhfh4Ts6g6aYiRihp73pwVGxQpHNK7Z0wmdD15ajaoGhn/5+8m7AoRLb1iy2UYedMeMJ8u0cBzGhAHCM9SZMindZTAep20nRG/5SA202O9HLuSsspd6XBowPqNDHSqviXm4ul/TI6L2ORX8MTJN2Z749w4lTKWsSQf5MCMh3W9zAyxzuATEr59XKxlL99VsK8Q4byRRJCPdr1Z0KvIdK5HDWdD2UW1cXok+jRZv67UyJ6UWbXkG317r+izdFkdN2T1O8s6JiWRJRC1VsCpmoIQkEaMEERSjUqCVlH3xgqhlM8A0SEcrDnfZdilZtvmmyxcwASoEUKN2qVn29UvQ2sqj8xvQO35PcDfalF4ngnevia9UY0lDLcz8qHB5CrfJ7H0Hx2zbGRegYgJTBGLLU0WhBU38CIOg51uBbwizd1F82SU5Mek4h0C7phZnsNzS3D73XAiDrrFlWdP30Z/XrPAGbE5cuief6WxuRlumGKRyQurR9cD8tjqh08ekuKV/lpfYCU3zqAEJU6HGvOLMek4x5x/w/P/29jOyEAAA==" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js deleted file mode 100644 index 78e35a74..00000000 --- a/docs/assets/search.js +++ /dev/null @@ -1 +0,0 @@ -window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAAE72dW5MbN5Ko/4v0qtUhrkX6TbY0u94jS9purXdPOCY6KLIkcd1N9rDYsrUT899PFUCwgaxMFIBCz5NlCZesTCCR+JAA//7sePije/bDb39/9vtuv332A3/xbL++a5/98Ox+vfm9PXXPXjx7ON72/3932D7ctt3/Of/9y6+nu9v+Hze3665r+yaePfvHi3ErD6fd7bgN87fRFhhfXtq4bo+79e3uf9efbttLU+daF3H8QkjLL/rvObb7k/dhnrgL+djb9uHuPr2X5+fi0a6CalS/X9rTr7v2j4yuH2tU6f3H76f2bbv/cvqaJ0NQb74k+7bddpeCp91hnyEOWnm+TN25TMbwe+7XmS/B5vawz+ndlS/sedUwxdEJ+NqfHqfv94QUQ7HcaaiVEvrS6c3N0HpOV88vVdK/2nyO53YWXF4k+DSeEOlSvPxUNi1MO+cPwd3hB1OLHAv2n5/OBXrtpzm/s7y04/mw3m53+y9JPQbF5/R7v95+PMjBd3VJHYflZ35x1NGDzx25+FO3/Zdd9y+7/dd+2JzabZEECc4eyEG4+fnSZDh8X6QJVz9frmmn74uDu/v5UsQdvy/B2OUX9h46f1sg4vYfC2Q7/Edfu+uuTo8dfH7YbwaLPnZi/j23fd9r9tUnHOelRG43ij1qa9MLfTo+bE6HY2JHz8Mqcc/y+BUlrht0nOS9J3tMcyag67ywcVKG6akK+k8Pzib7jk9QaOuksCxF5x/W328P/Zrkx0jTSg9rzdZ6iRSjWvN1cd3+7aHdb9p3D3ef2uR5h1Wcr5EyWbCK8/XycXfXdqd1ukcAdeZrI1uCrqoEg4m74yZnRNjiFcZBRr9drX77D/ipb4iOaMcf7MrP/+KsnrtqPfff8Mv6+HvWvL9UmP/VeX139fr+uu7e79thFX3z56ndd0O4lCoGUXe+RB//OJgtUpFIaOWZMrX7YVNdrCi6ehW5ytUVqT9/PuWLAytVlKFEhCozO1uCrqoE2/a29cZcclA/qjY7vm3Xx/wRMa5WcUz8sr6/jxGjyNB4rFpxhGTKg1etsA7utiXTBlSrsCYWyDGuNl8fV2X6uKqtjxI5xtUq6KO9X++O7bZUL3j1CvqZIRddfb6+Xn3qrtv9dtiQlOiLqD5fX3PkoqtX2G8e1/vu/nA8/ddu2/b7WbuVLVHddEsV9qZ1pE1qqc4+9tXDdnd4235rb0t0SrdQZ7c7Q7poC/N192tvlsP7466vaQ4KSrQXa2O+/mZLONFGpbl9t+uGBt9//lwSH0+2UmlOz5NyspVq7Daf29Zktvm8dn7vx9Ofb/abwzYZFvsV5vf9us3s+1Khhs3jh9yYzcfn3CknepPSpBx9A3Go0+8q8kwdiGPOuOBMfFKOjINoIFKFs2hcuvAo9lImchoblMk9yQyOSy8+LzjdafcPd0FvQbHsE9rHfJ9ffn6d08lzW35yYoZfgfZ89fHDzfXHqzevfrnJlAHWrCXN1ZsPr36+evN6hlhoEzXke/Xj9c31m3evbz7+/MubLLFgzRrSfLx69e76w/urjzf/9fPrN33z/3Hz7j9/+fHNVZZksVZqSHl9ffXTzav/fP3z+5u3b3598zZLOKRyDZl+7b/0/c37q5/fvPv46uPP799lCYXVrmLP93/5y/Wbj3nWu9QplgDxtCTcG/lbWHJGGszRa+0/j7uPh8D3jtNi0PL5uX8g3XNiMweSIPHST5n8GekxOQeU+EYiFfTb4fbhboY8Ly8NFImFJISG0u0284Sz9SvJBsfT9OY2FJks/4RjKt5n6qiiv5Sw3Kb/z3E9R6aXlyYKRZsYW59vd1SomSbfuYGnke54OIWBeomEXiPVpPR8+ml31/7SfTx42DXi0ZHSM9MqN1N5lZuZiZWb6czKjb9dylqa0nMbgz5Skxs3KTv3ocBEittmvHv3alWQ4qfDwz5Zw8+9ClU0MMUukM8vhRdT8qTRi01FfJGgoQl+MVJPIcBIkCQpF3ckz4zk/mmpsrjKpj5YmZIvJXs4FKs82X9amql84lCSsqR/VArMpUfRj19oBvj5+d/Te3huCqe6tMiGnOYD4z6vUzDAdJ9XOX1e1enz+vWb65wvtcXn9/vj/6PR0LhbW3p+r68+fMjo1ZauYNePH/7yY45pz+Xn9/zhOqvjc/H5/f53zkj+7xkjeYxlXMEoAfcLzQltfzrc3fdR1HYivA2LPfXtIaS3rCtE4KNKYm1MhKR4O63vtCgGEyLvWlGaNBnRCyZSwY30NLmmoxZMnPSLT2lSxKMVdKwmXYFKHikfzhMqc5g8VqtjiyI5utpy9JuufF/13K9VySrR/RBhkqI9UUSicOkIC0aWj3HBWXSk3bS7b+3xqh3ywyaMgxV+8suoVJ9591KxzyzCOKQ4aUAnQ47EzTIpUOYd1gzJcjbMpHgFC0+OjAmbZlK0jNu3GRJNbJzpcZ52JzdvZMWv/8XGVNpNwCxLlUqTfC8xTze2WITexdTzWLmqhspl6p5Gpn5RtsUKRPLrVrWct0krMl5QPxNZ5Uk6gctjQo7B+RPIN4nU42oshOsZMiZhdlLIWcA9T5Nx9B5TYxmEn5IOEAukeIxdEMXnhqD3w/qf4E+8cv+MwBN2lx1z+t9VGm6OhEiONBN6Tw8yR2Lkx5cJ8qSFbSNZ8iK2BDmmg7Xx2EiO09LsMhkUYRZJjoeSbFEgQ05MlqaHvxzXJing7aHLcw7Px5Vr6aVcpnHlWnr6eDitb4uU5NespaFCabonkKb/wn/bffnadqfL3bdsFSEN1NLUPNnwBmrp7d93p1OBti7VaumoRI6uthz9h71d93q+Sng1iFDMuH4tDc2SDK1fS2ev29v19+vdftPaPrKVhjRQS2vzZMMbqKW3yY0DpqviPUOCTJnYbyRejWSZiKTjjY1XcmJPA0rO2c4MWZGJPH1c9Kk3NUSPWfsa5ANLtjaUKIkPlqfKkPpwOC5M7vPhqVJlPSKOi1b0lHiqfCkPiuNi5TwrnirN1OPixJhOfGI8YyRFt0ORMZS0I8qxTpkkqXuzLJ28O91ft73/2NIcLqKZoHZF/cyQCtauqyu3+StUlle9rraK5RpVr6ivq9P9dEQbURioX1FjsyQb16+oM1sgfr4QUVlYvaLG5sg1ql5RX+83pxnqCmpX1NYMqWDtmvNx4hQyNhUTzyDzZmGhPBlnounyTJ+IUuKkn4cWeILoaeikIyg6C82SsnjqlZ2DZmowfgoaVV/ZGWi6fCknoJSAc84/szQ48ZNRpPqKOMaEZPBHg2Dh6E8HYYXnYIIfv7cTdOBS4qmhQNhRFgt4/IoSBAA6Ttr5T/aYtuEHXeft8ydlmN4+g/7Td82Tfcc3y9DWSXvkFJ1fR19XH6v7Oul19QRN5/XcVeu59+/RTTjo+LH4fF1ftesuslMbK/tSYb628/ru6vWdFtCMv31GHJMiUzx8GYtTFrWkaScerGCqKYtRJqVJCU2AOHMikhTtRAORsWqK4o9JOTKwLxCpwtkJLl0YFF3KRGKhoMysk5Jt203EQI9FnvxkJOwp70Tk8UOKTkJA12knIJN9Jp58gM4zTzwmpcg56QCilJxwTMqTcLIBxMg40ZjsfeIkA47BtBOMlJHw09eH/e+RfeJ4FFxqzNd4bu9dxd77Jc60ldy5V6GC3hNCFkT3M2KWtNEQZy7IYChjLWkammAsmHoK2cqkPElMBQg0i6WkaCjOUMbqKWMnuCSAmVwKxVhJUGhugDA9eU2Jf0Z48NhRdnRgv6I0OPA6To4Noj2mhwZe1/mRQVSGtIXY6z9vHY72Pb0M+7ZOXoWndB4/tB9pO+2sflrPWf0m5wgkfO/Pp/Yu7kfDD3bl539xVs9dtZ77dWloKbXjx+LzdT25SISqLl4jonJkBvueSBX2t7h04wXMlJlYvy5lcteVcPEarBt5osovkr1OPj5389O7V+RL16MunrvS00PuIj3aa1anlfp888urn6nHqcedutJze/3wb+/fpX+qKz2317fvf0ru05ad2+PH9+/TlXsuPHsUvf+YMYps4dn2vPr513Rz2sJlfXqx7F96B/epLz4BvMJiuU4hPaxE+kmLLcF30AvSL23Xrb+00a0vJsWoaiV57BFuNBQixAlq1pCmK5YG1qxmq+1uXaIav2IlzZTJ0tWXJY3eEIqZQXCSpYtTHEKwMpKTobE4zSHVVUZ00uRKoTqYYHPITrLGooE7oa6i6D1ZogQ0QMg145neNOkyNhiYiBV2Gal+bApu4E6s9NneNKni2AOTqOz5XlIa79GH070rhQUKo59VQQrP2DG9e/XT/83v6/m5WnxxIb4MleP66ubqzX8USHKpWE+WNz9FfmGHFMTWminF47D40KWPCrTsjEHx4e3P2T09t5Xi349/FD4gSmS4rivD1YfrAiHOtapJ8Yp8OjgixKuEB4SnZIDIKHRmEW40Ljjn7OPdo/+kHPZjkac+/QA9ZR1/eB9SslGFXSdtUqf7TAtzYOd5RyDTUkyHCVCC9EOQ6d7j4cDI5knHIEmaj9N5ROlpeD5F35l9Jx8NTPc9dTYAu049HEjSeAqMQfROgZiUIDBJrgQMgohFIJA6UqXBGWSgPKlUSZAGtSAGRappKl8mEtRU01MCtEEUNQPYJEkVhzWIQGWgJlFDcUiDqqcM0EzLkwJnoEBzwEyShqJQBlFPEZCZliQDd0ChKqAOQr4wPH4sFAmNw0K50ar3e3F9qa4dWguW0vHPxgXlZvS3ObbrU0qHYcHsHmM/BJnU2XPwd4k/CAlqgc/1dib+jxre77Y1hHtp25kh4MSPL37ane7W3e9VZH1sq668frbb8ar928SWzyvz5BlvoKu8nDfvW4qy3mDnaXlv070mZr7B7jNz36blSMh+gzJk5L9N9z+RATeyfVoOXJL+U/YimAHmbEbSJEuI+zHBZgT+SSOlSK55G5JUS05F/7gdS8P/NG0VSDVrU5Kmq4RdCaasGduSNLkmrgIgIhXeBUjU0sRlAFRFhbcBpiVKug4ARZp1HyBJS/FcT0RFZdme07Lk5HtCsWpkfBISgpzPx1KxrM+w1Bx0/2aznwjjLiWeOogLO8oK4R6/oiSAAx0nhW+TPaYFb6DrvNBtUobpwA30nx62TfYdD9qgrZNCthSdm5+R37bbx3emH9r9pp14rXpshql2ZlumjqQJ7VTQ6ea0MAtpngaDWhX0lS/FqFYVXbAiXbDKusiVYlSrhi72P7Ulygiq1dBGvhzjavP18e6w71WcrxBYb75GiiRB6s3XyfDbCLZQl68YtPJ87ZTLRFWer6fXD/e3u40JLfP1hFaer6dymajK8/WUAmTGCpqDY1KkSoAeY6FmII8U6+XLNA/DpFlvCndgtiuFHSlaypZoFn5J0ZEtkDnAg0r1ZYqDl7E4ZdglTTtx6IKppgy5TEqTAlyAOHNwS4p2orBlrJoi1DIpRwZoASJVwCy4dCFkuZSJIJagzBzA8uF2dxaIUsKlxFMDlrCjLMDy+BUlgAV0nARYJntMAyyg6zzAMinDNGAB/acDlsm+44AF2joJsKToPCUAGyt9TgCWIlVCsDMWakawkzAyCmSaF4ClWW8q3MFsVxrupGgpW6JZAViKjhICsLGSZgRgKTLFA7CxOGUBWJp24gEYppqyAGxSmpQADIgzJwBL0U40ABurpigAm5QjIwADIlUIwHDpwgDsUiYSgAVl5gRg15MB2HWghCcMwK7BopyTpDQrAAMdpyUo1QnArkeDPic5aX4Adg1Xj+TEpHkBGLR1WlJSgs4nnosaqTvxuaiEpTqr5/SHqqZ6nnyoKuw4+aGqSsHuWOOzkr/qBLtjoeYkWNUJdscD5CllSkv5qhjspmgpW6J5yV51gt2xkmYEuykyTaR5VQp207QzkeJVLdidlCYpvatesJuinXhqV51gd1KOnLSu6sEuLh1I6UoIdoMyc4Ldq/tuKtp9LPLU4S7oKSve9T6kJOCFXSdFvNN9poW8sPO8mHdaiumgF0qQHvVO9x4Pe0c2T4p7kzT/Yf399tC7tNhahag+rDZf90VyjKrVGIm70/XpGFuesIHoVaqgi3wZuroyJAbpiCbmROlJciWExIhYM2LiJIsVSDUvUk+04VRgjFqwNDJO0lS+TLOi9UQfOBmuoy6wOF5PkioesCMClUXsiRqKh+yoespi9ml5UoJ2KNCcqD1JQ9GwHVFPUdw+LUlG4A6FqhC5E/KFoftjoUjsHhaaE7z/a7vvBd4kvr6Lln7qkJ7uNCu6x7+0JNCPCJQU82dJkhb+R0TK2wlkyTa9KYjIlb4/yJIpvlWIjaWkXUO27Q7b76VWs1Wr2qtYnu4p5EkMpONqmhNT50qbEMjGhZ0R0+Zaep6s8+Lv/FEwFfZOjYHSCDhXq7MknRWr5+o0IWyPK3VGBJ8razyYj4tZFtfnazMe4k+psizaz5IyJfCPiDlnD5Crzeh2IK7Kop1BlnwZm4SIqBX2C9NSh1sHtHxkF0GWn7Oh+O/jxB7CFXjqbUPQT9ZO4fIJJZuDsNuk/cBUf2lbgLDjvKh/SoKMKRGKUfATtVOyTG86QhHS9xlTPce3FmC8Je0mEiwfjTVGNk/6eY9pDef0mvqDeAnfetXeH44nevUafe5jhdlfnNd3V6/vPjSwTSV27ZefrfGEIHGk9BlxYYJE8VBwJExZ9JekmXjAh6ilLMabkiUlrAuFmRPJJWgmGryN1FIUr6FShMGOKxKJb/wic0Ia99rFxDQNi+V2mPF0zLifxPdjwu+Y8sPx66CIELBmJWniFwxxOcpuGaZKlPLIDi7XjB8ASpMu5yIkImKN25BJciY8E4SIV/4DQGlSTTwghEhU9gNApDSU04n8zMu4YLav835U8+ot9XOTRD/Pz1VyJjv9qyav8/t/XbP/D1cfM7u3Ner0fpXd+1XF3l+/vbrK1b2tUqf/6+vM3k2FOn3/+ktm36ZCnb7pH5aiOk/5Ualo76Pb6UHh2BX1UcE5gdXb422bGFyNiz41PyJ6zCJJyAeWRHyUKElRX7oMaZENJUwecUqXajpSoCRKJz/p0sQjBHLMJNGgLEt9/Lrb72Mb1IidvLr1rFQuUfckEk2xs4h+knhWlm6KJEkla3kzvP2y21+3fyua3491K+qmWKLuSSQaXgvcbws1dKlZUT+F0nRPIM0A3L4+7H+nSVREN5eaFXVTKE33BNKst1vTZrYwXsWKdkpgOBFbERwnZW+bJWWU7UTkK+I76ZJlUBRKyAokZULeMIQfF46E8XjhOaH86/RQflz0qUN5osesUB75wJJQnhIlKZRPlyEtlKeEyQvl06WaDuUpidJD+XRp4qE8OWaSQvksS00GzhE7JQfOOVYqlygnlM/SUTSAjugnKYDO0k2RJKmhfN4MnwqcY/M7NXDO0k2xRDmhfJaOJoLniIYSg+cs/RRKkx7KZ+lmIniO6CYxeM7STaE06aF8ujSToTwlTHIon2WnhFA+YqsZoXyWlNFQPiJfUSifLllGKE8JWSGUn5A3DOXHhSOhPF54Tij/4XgColIKG5V86kAe7zDvVdnR15WE8YQgaa/MpkqQ+NosLkrmq7OpMiW8PovLk/EKbaosE6/REmMl7VXaDBtNBsu0hZJj5Qz7FMuTE7vn6Cf+0Cqpm6R4OUcvJXKkxu1Zc3oqSI7M6NQYOUcvpfLkxOw5+pkIkmntJMbIObopkyU9Xs/Ry1W7aXf3p4+7u0gmKK0dUL2ejubINa5eSS6TJX1pOFesUe2aVpwM5mM2LI7lc2SMvyhMSlf2snCqXDkvDOMi1nhpOCoteHEYlo29PIyVnRPEXyUH8aOSTx3E4x3mvdRWJYgnBEl7t61uEE+IkvmKW70gnpAn4023OkE8NVbSXnjLsNG70/112w/BbeTRHNJGQeVqNpohE6xcVU9/Oa438adzYoryalfVVKlUo9r1dJWw1NOqmrHU58gYf5ip7lKfLFfOM01PttTHpQWPNmUs9WjZWUfvt8dj6tH7qOiTH73jPeYdvY8/sOjonRAl7eg9WYbEo3dCmMyj92SpEo7eCYkyjt6TpZk4eqfGTNrRe46lrh8+2TKRgyfaUkHtepaaIxWsXUuqfkd8aTdbKFC5ov1SjsZo+805GsuRMn40RstXdjSWLFnO0RghZI2jsbi84GhsVDh2NIYWzr+YOxZhPBXGPV/K5HaolRKPt4Nubk7+6J7q5/ml/PQse/wKL7BYcPnoinxintjzyy4pzyWofpaZkKIvmi2ErVNPhm2JENsaUvi/KtUlhnmw4FMHeWh/eT81BT+tJMDDxUj74anE/tOCO1yQvNAuVaKEX6NCpcn4UapESSZ+mwofI2k/UZVunfgP3VB2STrjS7dIiRSpJ405I3XqYI8ep6nnehk6KZQm55QxQzcTB3ukZhLP9TL0UiRJ+gljhk7eHrrz4z6Rn/uhFBNWrqadcplGlavp6fXD/e1usz61xcpCWqimsZnS4S1U090vu/2/706nNjeYAFWraatUnu4p5Bk+cv1nsX68qvX0UyhP9xTymJd+1+UDyK9bT0OlEsG69fxT+61URX7Veh6pUJ7uKeSxjuTj6fb98d8O9293d7vMfdRzvIWaHsm2fVvkkh7r1vRJc/U1bqGmhyrXl1+3qo+aqzCkiaoeq1xlQeWaPmumypAWanqwYoUFdavpKwF8k5qagb0zJIz/UiclW9kPdiZKlfO7naiANX6+MyYr+BVPUDT2Y55I0Tlnyr/eJaJGWPCpUSPaXxZqHH1aCWrExUhCjan9p6FGXJA81Jgq0TRqxKVJR42pksRRIzFGklBjhnWikI+0SxLkS7dIiRSpqDFDF28PXXe1PuXaJKxZTSeF0nRPIM0QmOy6zfq4LVNPWLmahsplGlWu5+0ejl0fLe273Yn+iSra34W1q2lqhlTj2tV09a/r+2JNBXWr6alYIli38nh6OMYDvYkB9Vi98ogqkwupXnVMFWsrrFx1VBVr6ilkGrZPh4f99uNx14/Z23XB/BvVr6atWZJh9avpbDis+t6d2rtCnY3qV9PZLMmw+vXiy92X/fr2bfutpakDHWYGletFm8UyjSpX09O7w65rC9UU1K2mpWKJYN16PqvtdtuH9e2bzdfDVXt6OO6HSLfAd1Ht1PNhNSSNtVNvvbzblSyUtla9FTJfiq6yFMO4+Mu6ANsEFeuNoCJZuvqyDOtWX/DYO71i/YwbqLfyzZINbaCa3n45dG//I19brlo1HZXI0dWWw37YT2X6+Km2PrLl6GrL8cX9Btng0X867Dft+vZuaCpbP1Qz1fRVQ85IM9X0aQ/Zf3z4/Lk9vtqu70+7bwWwimilmjYrSEm38iS6LIN+SAtPosMy/Pdk0oEvf3fog5T1beGOMdLSk+hyhrTxlp5Et7+s/9zdPZTuxiMtPYluZ0gbb+lp/Oen7nD7cGrr6Zho8Wn86nzp01qsuLedTIWI7GeLUyEyJIymQpCyFaVCpEqVkQqBC1ghFSIqa5gKAYtGUiGwonNSId5s9om5EKOST50MgXeYlQ0x/rqSdAhCkLRfJU2VIC0hghAlLyMiWaaEn7HE5UnPiUiWZeLHK4mxkpQVkWOjaEICbZ2kjIQMuxTJkZoZkaOPN5vTwvxKdST/mVZLWLuedmZINapdVVdslq7YE+mqVKpR7Zq62v/UzlFWUL2mtsrlGlevp693h31vinKFwfr1NDZLMqR+PZ15F+jKFYc2Uk9782WkGqmnR3ejro+Sy/WINlJPj/NlpBqpp8eErR6tvxl7vRwZ4z9XT0pX9ov1qXLl/Cw8LmKNX4aPSgt+kRiWjf0oMVZ2zpbvX9t9/xWbxG0fWvqpt350p1nbP/xLS7aAEYGStoFZkqRtBSMi5W0Hs2Sb3hJG5ErfFmbJFN8axsZS0vYw13aDD76+bze7zzt6ixa3Hmiiqv1myzduovLYP2xpJjsx6m3Vuvoqlad7CnnSwoS4lmaECrmyRsOFuJRFIUOWfBlhQ0TUCqHDtNRh+ICWj4QQZPncdXwUxwQthr8qBqKYccnczjNejqN6S30/DvsuL5jy307bDP/4sViUl379bKEm3nU7PuxnSPZY+wnkAsFNtmSpqDtbtk+7069tEJzmyebXryCbfpSsb6BrYzPu88PePPP9KCxVJXvqeeP92K5PoM0rZ48peaYrV5bsR2eNEsnCyrNO2c7t2oNj23pniQy9U6XrPPnJ20TXeWdwkW8vOo2bEi7tXC5fqsQTuinxMs/q8uVMOLWbkjHj/C5fvomTvMmxl3amV2RfW5rOx08x7mMbT2DZ+RJ2TyrherudeAxpUkC/iaewsS0Qp6wJZg6aySSFRXIb4jxLZNfCP0PaD70ZY7/SmKZi18aTS3y/3n48yMEvz5haYSP/DC3HaXyCisu4fL6sOYR+SuwarD7xC/DdLlIrxu/jtSqQ/IlAMij1TyL3pcFi+EUzSH12QJjUcxaZLw/6kmRJJvFlgV2SDEnkPT94S/z+iSUR/XxkEZw1GhLYMBwHGUx4UgO5/Wcy6RrBFK6FGeFTqmzZo6M4RErXVjwoolRVFgYlSZUS+CBizQl1UrWVcnZQI5xJkif/rKByyEJLiZ4NTIYlo3IzyBs2iB4R28NpdzugyEuZeE+mON7P/rBt7a2Lj4fX69M6GCGwQ6xwcc/bcwMfD+8uzZI9Y4WrfPOr43H9faJzonxx/+vHNpI+nihf/v0Pd8M4NZ+SYnW0+JzeP6WNNlCwwki7Ph39xYIeZbZgHQtPdIqULe63M9UTdAsLFvc4JOKbtpAgHnaKlE3q968vnvXdtn8+++Hvz761x27w9T884y/Fy1Vf+vOuvd32NX+zIvVtHe7Mbee/nv/NHjgMJWyR/7N49uK3xQvNX3Ku//rXF7+5GuYfzF+YYqz/P4YVY0Ex3v8fx4rxoJjo/0+8EOyl1MugmAiKyf7/JFZMBsVU/38KK6aCYrr/P40V00Gxpv+/BivWBMWW/f8tsWLLoFhvlN9WmEJWoXoHbbPFC9m8VJqHCgaGMJbATRHagg06Z6g1WGgORtqDhQZhg+JZX7J5yRYiLBnahA26Z73x9EvVgM5DszBNWZmFhmENZWcWmoYtKUuz0DhsRdmahebhC8raPLQON9ZR6AwAM8VYR6MlQ+vwwQasQUuG5uHGPL2c4iUTq7BkaB6uKIvz0DpcU0rnoXU4OW94aB1OzhweWocPNmCrF6ofbAyUDM0jBiPwBVZShPYRgxE4OntEaB9hXBk6ewRwZoMRuEBLhvYRgxG4REuG9hGDFbh6IdnLBQ8nmggNJAYzcI2WDC0kBjtwdByJ0ERiMARfoiVDG4nBEBx1cCK0kRwMIdCVRoY2koMhBGojGdpIDoYQqI1kaCNpPBxqIwnWnMEQArWRDG0kzRxC57oMbSQHQwh0rsvQRnIwhEBtJEMbycEQArWRDG0kB0MI1EYytJEaDCFRG6nQRmowhERtpEIbqcEQErWRCm2kBkNI1EYqtJEygQFqIwVCg8EQErWRCm2kzDKE2kiFNlKDISRqIxXaSA2GkKiNVGgjNRhCojZSoY30YAiF2kiHNtKDIRRqIx3aSA+GUKiNdGgjPRhCoTbSoY30YAiF2kiHNtImfkNtpEEEZxYj1EY6tJE2sQJqIx3aSA+GUKiNdGgjPRhCoTbSoY2awRAatVET2qgZDKFRGzWhjRpOhl5NaKNGkKFXE9qoIQPsJjRRo6iIqgkt1JggGx1JDQizBzNodCQ1oYUaE86hI6kJLdQMZtDoSGpCCy2NhdCRtAwttDQWQkfSMrTQcjCDRkfSMrTQcjCDRkfSMrTQcrBDg46kZWii5WCIBh1Jy9BGy8EQDWqjZWijpYnpUBstwW5oMESD2mgZ2mhpojp0p7MMbbQaDNGg1lyFNloNhmhQa65CG60GQzSoNVehjVaClHMV2mhlbITafRXaaGVshG8HQxutBkMsUbuvQhutBkMsUbuvQhutTOCN2n0FNq2DIZao3Vdw32rCOnQLtQAb18VgimXvbpYvuWxAWbB1XQzGWCq8LNi8LgTpGe2/+WUl6Rvtv/llFeUd7T/5Rcldkv0nv2hDuVL7T35RM6nwomAjuzAWw4sCixmesEQnCxuxBmMydLowSBsMU1ii04BB3mCwwhKdCAwiBwMWVuhUYBA6GLSwIuAIsJmhCyscj0DyYADDCp0QDMIHwxhWqCtkkD8YzLBCXRwDCIIZ0rDC7QYoBDOsYYXbjUNKZAILFBowQCIYp0ERQBHMAAd8SgAWwTgZXTBAI5iBDviUADyCGeyATwlAJJgBDyt86AIowQx6WOFDF2AJJizVw8cuIBPM8Afc3QA0wQyA6H0m3i5ke3Yhwwc6ABRM0ASJAUTBBMmQGGAUTND+EUAKJmj/CCgFE7R/BJiCCdo/Ak7BDI3A0QsDpIIZHoHDFwZYBZPWaOKFEi8bBQsDo0lrNIkXhlDWGG2h8MLAagZNEKswwBbMwAliFQbgghk8QaFhYDgDKIhVGMALZhAFPi0AvWDKTjfcRQKAwQym6JdcvDCwnYr4SEAxmKJ9JMAYTNE+UkGcrsixDkAGM7gCH+uAZDDDK4ixDlgGM8SCGOuAZjBlg3zcowKgwbQ1G+5SAdNg2h5/4C4VYA1m4AUjDksA2WCGXzDivATADWYQRh+q4IWB7QzF6GMVvDA8DdGmMB4TAMrBDMtg+CkCA6CDGZzB8IMEBlgHM0Sjj1fwwsCCBmr0AQtaGBAP1tDrHEAezIANfC0AzINZ6MHxcQGwBzN0g+HHAAygD2YIBzH3Af1ghnHgc7+Bh1mR0yxguIY+zwIAhDX0iRYgIGxJnmkxgECYAR2EmwAQhBnUQbgJgEHY0hqNYwc3DJAQtrRGE3hhYDSDPPpAEy8MrGaoRx9q4oWB3Qz46INNdOwAKsIM+2D4mQsDYIRZMoIfuzDARpghIAw/eWEAjzADQRh++MIAIWErCxrxyQEgCTtTEjyoAZyErWQkqAGohBkgQgU1gJYwi0vwoAbwEmaBCR7UAGLCDBchghrATJghI0RQA6gJN2gE9YEcUBO+sLbDkyoANuELazt0WeKAm3DLTfDTYsBNuGEj+HkxwCZ8QaZjcIBN+ILczXGATfiC3M1xgE34whoNXW45ACfc0BGGn+JxgE64zdLAD/I4YCfcJmrgZ3kcwBNuczXw4zwO6Am39AQd7RzQE24ICT7aOaAn3OZsoKOdA3rCDSHBRzsH9IQbQoKPdgBPOJ26wQE74cxaDvWAHOZvGEDC8KNNDnM4bBIHPjFGWRycnBgwjcMQEnxiwDwOQ0hwNcBEDk5uDDhM5eDkxoDDZA5DSPotLOZ9OUzo4HY7x/HCwGw2q0OiKwYHAIUbRkKMdMBPuIEkxEgHAIUL+jCNA37CBX2cxgE+4YI8UOOAnnBhE6RwLwX4CRd2tuFeChAUbjAJMXwBQuGGk+DDFyAUbjgJPnwBQuEGk+BjEhAUbigJPiYBQOGGkeBRKAf8hBtEgkehHOATbvGJ1OiIBPiES2u2Bi8MzCat2ZZ4YWA2SXtJwE+4pL0kwCdc2umGe0kAULgFKHhyAQcAhVuAgucXcABQuAUoeIoBBwSFG0zC8CwDDhgKN6CE4YkGHFAUblAJw3MNOOAo3MAShqcbcEBSuKElDM844AClcINLGJ50wAFL4Zal4HkHHLAUrsnjOA5ICrckRS9eSPlyCcsC81mQohlaFljPchTN0bLAeBajaIGWBbazFEVLtCxMWqT3AxwwFK7p/QAHCIVrej/AAUHhmt4PcABQeEPvBwA+4YaR4G4Y4BNO4xMO8Ak3hITI3gQ2M3wE99gAnXCLTvCEDA7YCTeAhOE5GRzQE24QCcPTMjjgJ9xAEqaXaCYpICjcYBKGJ2dwwFC4ASUMz8/ggKJwQ0oYnqLBAUbhBpUwPEuDA47CLUfBEzU44CjcchQ8V4MDjsItR8GTMDjgKNxyFDzwABiFG1KCOyoAUbjhJPiIBwiFL0n8xQFA4Ss6pRvgE27xCREgAHzCLT4hAgSAT7jFJ0SAAPAJt/gEd9iAnnBLT3CHDeAJX2naYQN4wlcN7bABPOEWnuAOG8ATbjNOcIcN4IkwhAR32ALQE3GmJ5jDFgCeCAtPUIctADsRho+gDlsAdCIW5F5OAHQiFna2oS5QAHgiDCFheC6TAPhEGEbC8CQlAQCKsAAFTX0SgJ8Iy0/wnCYB+Imw/ARPaxKAnwjLT/DMJgH4iWD0AZ0A+ETQt10EoCeCkQd0AsATwch9uADsRDByHy4AOhGsIee8AOxEsCU55wWAJ8LCE3TOC8BOhGUn6JwXAJ0Ii07QOS8AOhGGj+BzXgB2IgwgIeY8gCeC05eUBKAngtPXlATAJ4KTF5UEwCeCk0kMAsATYeEJnpYnADwRFp7gmXkCXoqx2Sf4nIDXYgwgwecEvBdj+Ag+J0YXY8ioUsCbMYKMKgW8GmPJyRK/RgNvx1hyskQDGAEvyJzJiUYvEsE7MsIarsELA8MJazg0BBUAnwhpDYfefBIAoAhDSdgKv/wEEIqwOSgrhhcG1rM5KCv0dE4AiCIsRFmhp3MCQBRhIcoKPZ0TAKIIC1FW6OmcABBF2CyUFW5BgFGETUNZ4RYEIEVYkIJ7YsBRhOUouCcGGEVYjIJ7YkBRhKUouCcGEEVYiIJ7YsBQhMEkhCcGCEUYSkJ4YkBQhCUouCcGAEVYgIJ7YsBPhL1XgzoLQE+EASS4JwbsRNg8FDwNUAB6Iiw9wfMABcAnQkeiE4BPhKajE0BPhKajEwBPhKajE8BOhKajE4BOhI5EJwCdCB2JTgA6EToSnQB0IppIdALYiWgi0QmAJ6KJRCeAnogmEp0AfCKaSHQC+IloItEJwCeioaMTAE9EQ0cnAJ0IQ0c4nsEqADoRho5wPC1VAHQilpHoBJATsaSjE8BNxJKOTgA1EUs6OgHMRCzp6AQQE2GJCQ4LBCAmwhITHBYIgEyEzTzBYYEA0ETYzBN8agJqImziCT41ATYRNu8En5qAmwjLTfCpCbCJsNgEn5qAmogVff4tADQRK/r8WwBoIlb0+bcA0ESs6PNvAaCJWJEnOwIwE7EiT3YEQCZiZWcbvnEAzEQu7A15/AI0gCZyQZ9/SwBN5II8/5aAmcgFef4tATORBoygU1MCZiINFkGnpgTERFpigobVEgATaZgI/qSABLxELqyTxO+MA2AiF9Zs+LVxAEykBSboLJaAl0jLS9BZLAEukRaXoLNYAlwimSBnsQS8RNr3QdBZLAEwkYxORJeAmEhGJ6JLgEwkoxPRJUAmktGJ6BIgE8nIRHQJiIk0VASdxRIAE2mgCMdz1iUgJtJQEY7nrEuATCSn07skQCaSk+ldEhATycn0LgmAiaQv60gATCR9WUcCYCK5nW3oMigBMJHczrYVXhiYTURmGwAmUkRmGyAmUkRmG0AmUkRmG2AmUkRmG4AmUkRmG2AmUkRmG0AmUkRmGyAmUkRmGwAmUtCzDT4sIunZBl8Wsfd18NsDEj4uYvNN8NsDEr4vIiOzbfTCCD3b4BMjkp5t8I0RSb5vJeEjI5J8q0fCV0Yk+VqPhM+MGAqC5+dIQEikoSB4fo4EhESeb+qgGWMSIBJpEQmeYywBI5GWkeA5xhJAEhmBJBJAEhmBJBJAEhmBJBJAEhmBJBJAEklDEgkgiTQkhONXXyTAJNKQEI5ffZEAk0hN7twkgCRS2+nWezP+stFAaYCSSE2ev0lASSRNSSSgJFKTF1EloCRS02sboCRS02sbgCTSgBCOX/6RgJJIba1GPCsErNZYqxEvCwGrNdZN4o8LAVAiG2s3/H0hQEqkoSGciKsBKpEGh3D8mo4ErEQaHsLxB7skgCXynGuC4ngJcIk0TITjD3xJAEykBSb4G18SABNpc03wRQPwErkkM7skwCVySaYISYBLpGEi+DAGuEQaJoIPY4BL5NIaDverAJjIpTUcCkwkACbSMBFijQG8RBokQqwxAJfIpTVb80Kx3mODssBqBolwvkTLAqsZJML5CisLcIk0SISLBVoW2O2cZYLmZ0vAS+Q5ywTNz5YAmEibZYLnZ0tATKShIpTPBshErkhCKQExkSuSUEpATKTBIpx4Lg4wE2mZCfFiHGAmakETSgWQiVqQ65wCxEQtSEKpADFRC5JQKkBM1IIklAoQE7VQ9OxUgJkow0WI2akANFEL+jqxAtBELejrxAowE2WZCTo7FUAmii3I2akAMlEGi+CzUwFkogwWwWenAshEWWSCz04FmImyzASfnQpAE3V+VhWdnQpQE2XICDE7FcAmir6kowA1UfQlHQWgiWJ2wuGP+gFsogwb4fjFLQXAiYpc0lGAmyj6ko4C1ETRl3QUgCaKk5BSAWiiOAkpFYAmiuvI7ATYRPEmMjsBOFEWnOCzE3ATZbkJPjsBNlH29VV8dgJsouz7q/jsBNhEnV9gRWcnwCbq/AYrOjsBNlH2FVb8yp8C3ETZh1jxK38KgBNl32LFr/wpQE6UfY6VmJ0AnShBbuYUICdKkCfeCpATZZ86wW8dKsBOlGUn+H07BdiJkvSJtwLoREnyxFsBcqIkuZdTgJwoSZ54K0BOlCRPvBUgJ8rml+A31hVgJ8rml+A31hWgJ8rml+A31hV8p9UmmOA31hV8qlWxyECDr7Xa51pRXcDnWg0gwQcafK9V2YeP8ZdlR0+2milHPC4LX21VdM65gu+2KjLnXMGHWxWZc67gy62KzDlXAJ0oTeacKwBOlKEjnHg3F6ATZdEJ8XQuQCfK8BFOvJ4L4IkyhIQaOwCfKE0+mKcAPlGahJUK4BNlGAkn3vAFAEVZgEI94wssp+mnKBXgJ8ryE+rVX2A8y0+Ih38BP1GWn+BIRAF+oiw/IR4KBvxENfRjXgrgE9WQj3kpAE9UQz7mpQA6UQ0JmhUAJ6ohQbMC2EQ1NGhWAJuoJQ2aFeAmyj5zggcyAJwo+8wJHsgAcqKWgg5kADpRFp3ggQwgJ8qSE/y6pgLkRJ3JCe5VATpRFp3g1zUVYCfKshP8uqYC8ERZeIJf11SAnihLT/DrmgrgE2XxCX5dUwF+olb2LjE+nQE/UQaRcPy6pgL8RBlEwvHrmgrwE2X5Cf5StAL8RK3sS/+4BQFBUSsLv3ALAoaiLEPBH2NWgKEoy1Dw95gVYCja5p3gNwA1gCh6YV/Tw9/3BhhFL+w7Q/gT3wCk6IW9Do6/8g1Qija8hOM3ADWAKXoRIWAawBS9IAmYBihF08/EakBStCUp+CVEDVCKtigFv4SoAUvRjCZgGrAUzUgCpgFK0YwkYBqQFM1IAqYBR9GMJGAaUBTN6F/X0ACiaEb/voYGDEUz+wsb+EP6gKJoZs2Gv6UPOIq2HAW/tKkBR9GWo+CXNjXgKNomoOB3zjQAKdomoOB3zjRAKdrwEo7fOdMApmhDTDh+j0wDnKINM+H4PTINgIq2QAW/R6YBUNEWqOC3cTQAKtoCFfw2jgZERVuigt9a0QCpaItU8FsrGjAVbZkK/qKzBlBFW6iCP+msAVXRlqrgbzprgFW0xSr4o84aYBVtsQr+qrMGWEVbrII/66wBVtEWq+DvOmuAVbT9oRv8YWcNwIo+/9YNbkGAVrRFK/jTzhqgFW3RCv62swZoRdu0FPxxZw3YirbvoOB3GjSgK9ogFI7fadCAr2j76zd4ZrgGhEXbH8DBM8M1YCza/gYOntiqAWPR9mdw8MRWDRiLtr+EgydqasBYtLI/WET8LgmwoMEoAk/j04CxaANSBJ7GpwFl0fY5WfwpVQ04izYoReBPqWrAWbRBKQJPhtKAs2jDUgSeDKUBaNEWtOD5JBqgFm14isDzSTSALdoQFYE/parhL+XYx1DwbAoNfyxHRyiZhr+Xo0lKpuEP5miSkmn4izmGpwg8oUPDH83R1nr4IBr9bg5NyTT85RxNUjINfzpHk5RMw9/O0SQl0wC16IakZBqAFt3QD5NqwFl0Qz9MqgFm0fY1WfwiqAaYRZ8xC3qNUAPOos+vyaKZJxqQFm3TVPCLoBqwFm2fRMEvgmpAW7R9EgW/CKoBb9E2TQW/CKoBcNH2Xg9+EVQD4qLtkyj4RVANkIu2T6LgF0E1YC7aPomCXwTVALpo+yQKfhFUA+qil7EdH6Aueknv+ABz0Ut6xweIi15al0n8aBWw3tK6THxNAMRFryI7PgBc9Ire8QHcolf0jg/AFr2id3wAtegVveMDoEUbliLw56E1AC3asBSB551pAFq0BS14OroGoEVb0IKno2sAWrQFLcRAA6CloV+UbQBmaQxJwX/MC0CWxt7uwZPqGgBZGsNRBJ4n1wDI0tgf4kHZewMYS7OwxsN/AQwwlmZhjYf/CBigLI1BKQJ/zLkBnKUxKEXgjzk3gLM0BqUI/DHnBnCWxrAUgT/m3ADQ0ljQgj/m3ADU0hieIvDsqAbAlobROewNoC0NI3PYG0BbGkbmsDcAtjSMzKptAGtpGJlV2wDS0hiYIvCsrwaQlsbAFIFnrDSAtDQGpgg8Y6UBpKXh9O9fNQC0NJz+/asGcJaG079/1QDM0nD6968aQFkaTh7nNYCxNJw8zmsAYWkMRBF49kUDCEvDreXw+QkIS8PpbNoGAJZGkNm0DcArjSCzaRsAVxpBZtM2AK00gsymbQBYaQw7EXhWSQPASmPBCr4cNQCsNBas4MtRA8BKY9gJMXwBV2kMOiGGL8AqjX0aBR++gKo09mUUfPgCqNJI8ncmGoBUGkk+lNgAoNKcf0gY9+sAqDQyMtsAT2ksT8HTaxrAUxrLU/B8igbwlMbyFDyfogE8pbE8Bc87aABPaSxPwfMOGsBTGstT8LyDBvCUxvIU/NC/ATylsTwFP/RvAE9pLE/BD/IbwFMay1Pwg/zmzFP++uLZbv+tPZ7a7c/7bfvnsx9+++3Zzc3p+3377MXfn93s7F/2sY5p9NkPf3/WL+k//P0fL5710bf5bx/Ymv8Or6uZPwzpB+YPQyzU/6H/07lb83+DGOtP3U3X7rc3p91d0JFuHjvqt1BE7e128/Vh/3sgYW/IS83hKW4jwZDzbWXqF2uysd2pvQvbWnpt9SPSNMEvH9rvaMi2/md3OrVHv7Vhhb20NqyrZN379eb39hTq3Ve8iNQ9tpt2d3+C+hzy+S4NDFl8kQbuD0fQufI6l2dNDj9fYXWrBN1a1x03QVv9MvioUhb5kO7h01iUIePn8TM02fHnT0GnjT8mlmSt+3u/1op7X81IjR2P6++fHj5/7ufOYX/YtvbPgeGl19LgfhJa6k7H3f5L2IqnucEh4K182p3u1l04JZbe4BGkzvua39rN6RDKzr1x0ywo2T99D0bbivmqo2ZcXwkZ6cK31YL8TFd3+3B3H9Zf+QNsRdY/tbft/svpa1A5kJuouukLHNd+tcZzEyvK1RlPBf3psB/01EtpanPbro/tn6d23+0O+y5owftcSX3t5vawD/r1BD47a3725vz8/8Mvrto/8Ob8B+H+Rp094fATS+fK5zL98nL+g2TnPzTSuc1zYcHOZYY38ewftPub5flv5MI5F9e7lGfBhuuG9g/Lsx9WC+fc+bmWcr56yEi0f2jO1YdjdPuH5vxP2q0Nw5bL/kFQLmJjtOaPGOUNmeHBeKLe4e7+8LBHPPvKm1/Dr5qm1B+N+YU/bgU1Zzb90DkdH+AUZ8Ei54zOndHd3yj3N41yRhfO6M7Wwg2DpTMo487Wzvra/Y0bPMNrLGdbC2dr94dm5Uzs7Oj6GhKw7R/caFRupGkXmWg3rrQbewMBsH/g5Fw5tutTaybbtj2vhhfXOAo3BoTxOIFpn4E0enzYWw80bpSv/EYph20b3fdDYhS4+B5JLKgwZbs+rb/t2j/ohcv/OEktgY/NYKuW8lctSj/b3hmf9TN4uKAF71PItXN7ewwkHzJRH2s1zlE01NQY6ofWCaMOb34NydupjcCJyn1tKE3apW+ICH+0X5/UxvE2DP5Y42uDGk9DtYgSBPdXGmr6jBsZKcFf4RW5QsNqXiXhfNPZ2yi3ZC2c97qUcP+k3N80boFyiwZ3rm74rRj7B31ZCxvnxlzIL5hzY5dNgPNeC+7cmFvEXKg8vBJwXrKcG3M+T7nelfN5Qxb/ebQq58+Y82eN82fM+TO3dpF7gnYTTKfhvviju3eromyoyd1Xp8eE8AfWcF6b2MbItv4aNJz9kO0gAePSHxmkW7/UHS2eK99XalKNd+vdbbjy+4EquQfq/fOn27YPv4aIkwjhvIZkvJ3TH4ehnY5oyAsmJRWHOkvYDaq1RzdW64DbvTWIcpyR1kZGFv5SwCnnF/FAzFcUbamgAWRxFX7ITeo77sP8RobnE1IagcH/8ESG9z3UqP/ctttPvUaRoa/8vY6ihn7YwGj8N96o4Utq2Hy+3QXVGq/rFTXxv7T79rjbxBzIyp/41Beg7YzGF/e32eTO8dwWrdXhabJHs/CsdkbjxAdmUlLhz7ktbBb6m35ODZGg/njeeQ6uIR3Ml/a0/tQNMG5gR2go5uMwRcty+tR+2e279m/hjPG1unSI0O0yldsfKJL2DQ3vTuMQc3iz8LFlElEM1Q/b72FNP7Z0O9/hvPu8ptLj+vTp4didtoOOTmGbjWcxTW7oLi08HNcnoGbu8xrNY0KgFMOPMV3U4yIbFym5P1w2fML9jXJ/07hKbi/OXVjFHQkYfqzpHCktXaTk9vTC7fO0+5ulC5DcxlG6yG14BuwcKbmQyYVVyoVVyvWuXFillBtFLqjTbrup9cWY3EVKylk1YhOzWgRrKvNjf36hEa5ZxSLzadNv2YPpvPRBqvsw5mAFcwOPOyVyF25yF/kJF+MKpw6hzh8m3DZHOKAhHWmRzrrSFW5c3NmIyITZdMdNF45uL1aiVr2+Yr+fW3/vdvtN/9/u1IW8wQ/2mKZ9ft/KtzFGHy4aPY7vyNIzVD+dbg/Hr4f7293dLnTyfhisyShgaGXXbdbHbT9Nw8XbXzY1uYsZGnjou9/01a17DvWpuO9SYxo9t9L7CjOsQqUMOWKPhpFum0Ci7r7BPiDetGhTPi12GE+TMY5p6rTAWlr6Qjk2pJuoUCeGtuTH6M776CZi/H4dG61AASp1643bXCnnsFRUa32z37tTe2dGeOi1fccfczIujPm6+/K17WdH+7eHtrfF/uHuE/xs6X927GtRcqL98DKh8t36/h4srj4BUlTE7bcRbkj8AHdC/ON+fXv8vIZ0kvvbMx2LXj4f+8q9BLeHDhxf+f6GjJL7Fr6s79EV3ZeARyQY6qPrOfcbiEykL3e7sObKdzIiIvrjWEKGEfNPsshDs76VgSOC1c8/rnMLL3f4YXgKnmxs7LoZk74gk3Utkeyj0sPtQy/Z+s/d3cN44gm/VR2zb9Dqdn1/2n0LT2MW/hQmYSVoiZbLN7uKmN1vbX/ox8D6FmnNDwpJBglag6uW8OeCJqHFpRXAKfwNFovEDXbRH/YR3WkNtptM+2MgopV+HnfjVdfXKYvXPqELru/QYsPXawBdJX3X7MJXHdu83K2Pv4NQxluQYpO7H2FIHKR8FryKdvxnJA7yD9RJqju00q73mBT+nnAVGVBD/YgY/sxbxD6m3e7Wo6wC7bM4fXFTLmh2h5vCHWIJd/gnnCuTDvFK8vDP9N516/6/MC3Gj0m5o73cxeHC7b+EPIcu4hLPu42TdIdWkiS5Q/+7Lb4z98NImlj09VEb+mMgAmGG6hET+jKsIlPz7tBt/hZ6JX9Wy3jVW1DVd4uxGGN/2HX9ZvlbextOQb9+LMTaH/Z9dIq6Au67gvMw0k1Ej/vTvYtWgpb8bAC2vBxmx1vq+ii+j0rDhvwV/3JOHtPsYXNCNqzMP95kMSdjXeW4Ae4HX7GxZRsYnH7/OZt2fWsKBKb21/mYUhC/70eRLMLRznXhBPcDcebObphz+/3u6zzjL0dSDmdxfckac1Pf7byFIy2icX/jMsukgxXSHWBJV7hxB+BNbP99P2SzhZG8D88vp0YOQTgiw9zWka3cYZgThbv9EXdsRThFCEeRhDuLF+4sXlyyxJwPlG4jKF3hxqGMJrYI3q+/3x7W2wB0BadGk1VHXtun5y5RcBHZKB3bdQdmrJ9Wx8njf1P3kpcXBiT+HkkJCr+bFu7Xu2O7PVJrQHA2HG1nOKQJt0jB4HCj4jIcY6EwdbbhQ1mX8yHdaFCOTCk3GpRy+3C3fGvHHbVbULVziToWqBzbbrd9WN+2m6+HY3t6OA47wlDnvsfWsXmEbkj9UCWC9E+kofzlNmbwIeOnb+UeYQ2+KyTPPIc2Tvd4GM79MDwGnoYTgX4jMIq4fCzq7MudfQVzPkJd8n7c37h8YenIi4zBEpqOcE+CaAu7L/2Garzy+0xJx4I++O3cm7GXBAPpcg/c8T1zBJu7+SRd9CddepRyeXPKHT4ol/Gknd/VTezbetHWD9vdwXweOtpUAB/iTYVOwT9O5rFzFXsmgx9GCP/QqIkN90vGSzhXg9BWR3Rx+rrb7+HZkG8r6bILlfMsikf8JDpv/HPf2Jg5HU79mIMkKkifj37Lcb3v7nbdYMzD588dQfj8LaCOfcrQ3KDaP3qXdGFEeJN+PBzZiQwOv7tvN7vPu2ByCD/zSsfw/LdelsPhuOv/2iAzXJwg5os11v4R+FjP7Of56KIN9/9uEDBxiedcguvlWMudtvDLCZrLh+QuUuKXraQLooQ7ZhPugEq4AyrhtqSSOV/gaLZ0haVLLZIurFSud+VSlJTbyCrt3IQ70tPOGWvnZRr3FY07b2vIZevrEOHEclU8pxtrZCJRxU8lo3zS7n+CCNzPkyUDrV13PG2CCeuz1xXlw4Zq4fLoY09KwNtDuCQqz9dwktDdjpLzAkxPreW38eQ8f+coG+o7x42Mk/N8A5MKg+mWQWYAuWDd7YLw3UdPpMhDemtoGd80ZNraHk+YaXwTkfRvH0mW8Y+0yHx9UyIYGtwfGtSA2rfttuva4259u/vf0TGC7+tdiHGezpcESBd7XFIiXXjNLls9l/LHXW3OLy7N/c1lQ+qSJIU7+BbKbWNdeoBwO0XpKJuUlz+4Y2fnpaTzf8r1rpz/Uy5FU12ytt3naOcRtUvIbNzWs+EXt05q9ZLbfDp4d2zCIMVPdiMxid+SS3oOAbmft03CqP3hBEaHv4kkDwrsok307O8pGvKgrm9iyBMyWqAa8rPjSMiCTC2fOFGmICaVPykp34EwHS/QoD74vt/1H6RZicJjLf9E8DyAHAJxY5656cAcuuEuhuDCcR53xVG4bA7hpp5wGwHhpqdw67l0g1+69Vy6wo2bjI2bRA2ZyXm/PnbtZLajH34vaHv2TeE3CfyMDxKO3H8FF4yYH7hxMuy/D1cE5mcVClra211Yy6fvS3Is3O6QYbvyeyRD8kvd0Xrp82dBrmL3x923UD1+FjaZS3cPE2D9fDVyme1rxdL4ffpA3kIdtTEOFPwlX5LtdOFVTP/YjJFHiH2tc1oleeDiszsStRvo9s3lJWPXan2vRe7nsGbGd7B8oEJ64KGp+2Flx67Z+iEuidxACyM5/P0XI3NtjofTKMDw0w5X1Ew/3ndg8vmhzZLy/EM1LNXWT6NekEq7VB5PPz94JhePMFpdrvwxSGoIzj0/e4i8SHSMz72VP2doaafmXpCVQzrXYSs01rl/XYLEqI9VYd8+/WSk+3isPzpJ8euTV9v6WXbjePdNN4D3uxuwefDaIV3+0Axe27+KQCvhPpYa5Q/8JTldvDagKvxDazK9zm/g4bg7HWAr/t12kuP2rQA/7AN/Mo9iqDbliP3gjUzI6xvCdmNeVXIanoiB6B83k9vA4+nPbbvpw/agZnCzha7Z7kc1/fuQ5KBz9zrDOMxP5CdvZPZ1x1fE/bFKRmDdNgxx/XNtxigXMdRCntDwbUq+FXGpO1qCpL84k3uIof4Qbo6GlI8gObmSDtWRMeW7Rk76p8fKY+H9wJVMCLCnImRc4Z9NsIbU/qiR8WsG/upK5sVcmMEnwJa8yglVR77eWykmqocuyRuwz85bKPvfy1sC7o0YdrmS4LZCzKWoM3cUwh3a5G5vxd3miLtdG3enSsLt54TbowkHH4RLhJBuiydd79LRXOngg3S3FZTDusptzZQ791cOhigHQ7RLANBuY6jdIWpzAdDkBf0u4QqOH0HQRiGu4ARXqZ3sLvFIOQ6uyCiuI6/g+Mcs5L6tw67g+GEVvyjNkS3a+8Su4Pi3Ukl820Wv4DC/iYgQ2I0Rf9q5gz3pxoGinTGSPyP8BIOGTA/osLsafs48tdPqpu5q+LEyueR15F0N/+I8uafovLsa4Rmtv83T5CtSXeSWhvLtGJM/ekvDv7FOXk/upm9p+DDF4SVN3rnsYrc0/NNvd8KsSQDRRW5p+EI5L6wjixZ9S8NnKc5FazI469BbGn7GmXTZmcpd7FLOq6uo1iK3NHzfEPPEGbc0/HyAmMPCb2kEbzMkVMZuafjTjA4S4vcs/KlGMscuds/C9xXk2XFH37PwJeARCch7FsJvIDIVxvcsfDdBwqxu6p6Fv6kiT6s79J6Fvxdy8QV3twwFub/s8HsW/j1DMjGgy71n4SspZt/pexb+JCSPw7rUexa+2UmW2qXes/BXfjKPrpu6Z+GPZZLQdMQ9Cx8MkFcLu4l7Fj5NJLMjO+qeha9TktN2kXsWvkuKDd+pexa+c3XniToWoY7vWQRLSmTcEvcs/JcTV9GO/0RjGH/akIyzo29YBCF/ZCg93rAAAvizjXwXoSPvVvgbYn1xTedAQbh8ZOHOb4XLnhHOfUmXbyxjASx5t8EPvihM1JF3G/z02lVM+ztceX7vZD5Eh95q8OcQ+XRVh95q8J0QeXezo281+PVjIUnkVoOf6eZu/mkStXaRWw3+anRJfaTBDn2rwV9fL8l8Mc1Stxp8PBOb0uStBj/UiY2qhFsNvnuIKQW71eCLQaYBd3jyvL9CTVcdJXj7556Xl/wi8SuWPO8fgpJJA10sed7PeY/Auunked/JR78CSZ73zzTd/R92eYQhFt+k5Kr7XiS2j0eDet/1kxkyXSRX3XefMf1GctX9AU5ebutiuep+KBPbflO56j6QcblE3GVjCAcnhbuCIC5ZHe6VAOn2nzK2ZYzkqvtXxGItULnq/mSNLaKjXHU/X82hVveoA3Mpp8zBTn55edPl7UuXcqUuz3o7Sqfca3baoU1Nnot2abnqwViPNwVy1f0jixiApLLM/WWeTJPvqCxz/xT6cm/PYWtFXvnvqCzz4HJxpDKeZe6vbtFvScwy951I7FMyssz9+CQCLOgsc7+BGFhMyzIP1mCqMZh15N+AIS9+d1jWEffjO0EeQHd01pHvT8hT/JDl+vddGL3aHm+OIZFj/v6BkwfV3bGvhz3PGFzTIdX0WHt0BrYMnCfp/sMJ7Q8QScPMLvbqq7/xIjNpYBMjWzXBjQpafOC4w4iEXDb7ajfGq96MVg0fnpNv2iR4Zf+lI3r1NYdCVFKpf4hB7uEGV3jXnQ7eGVgwfj2LktfLT9aPBeJ79ciU79PhAF739NPMSQx0cXk3g8+76Z3ezXjx95+aIsHFw2l3Gy5p3mwl6hjfduM5t+CzvWFHsvIk7+gfp5GbpW934fTzb3iQaSHf7iLTz7ebJpd02MT4adngjhSpiMNuE55he9XIe+/fDrcP4SD1z5vIfeGfwfDwCRcjad+fR2QZ8Vd6SYb3rur4cUrfSPhp8l9fPLvf3be3u31f6re//uMf/x+vUIxPboQCAA=="; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css deleted file mode 100644 index 98a43779..00000000 --- a/docs/assets/style.css +++ /dev/null @@ -1,1414 +0,0 @@ -:root { - /* Light */ - --light-color-background: #f2f4f8; - --light-color-background-secondary: #eff0f1; - --light-color-warning-text: #222; - --light-color-background-warning: #e6e600; - --light-color-icon-background: var(--light-color-background); - --light-color-accent: #c5c7c9; - --light-color-active-menu-item: var(--light-color-accent); - --light-color-text: #222; - --light-color-text-aside: #6e6e6e; - --light-color-link: #1f70c2; - - --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: var(--light-color-ts-variable); - --light-color-ts-method: var(--light-color-ts-function); - --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: var(--light-color-ts-property); - --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-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-icon-background: var(--dark-color-background-secondary); - --dark-color-accent: #9096a2; - --dark-color-active-menu-item: #5d5d6a; - --dark-color-text: #f5f5f5; - --dark-color-text-aside: #dddddd; - --dark-color-link: #00aff4; - - --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: var(--dark-color-ts-variable); - --dark-color-ts-method: var(--dark-color-ts-function); - --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: var(--dark-color-ts-property); - --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-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-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-link: var(--light-color-link); - - --color-ts-keyword: var(--light-color-ts-keyword); - --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-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); - - --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-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-link: var(--dark-color-link); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --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-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); - - --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-link: var(--light-color-link); - - --color-ts-keyword: var(--light-color-ts-keyword); - --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-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); - - --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-link: var(--dark-color-link); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --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-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); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); -} - -.always-visible, -.always-visible .tsd-signatures { - display: inherit !important; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.2; -} - -h1 > a:not(.link), -h2 > a:not(.link), -h3 > a:not(.link), -h4 > a:not(.link), -h5 > a:not(.link), -h6 > a:not(.link) { - text-decoration: none; - color: var(--color-text); -} - -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; -} - -.uppercase { - text-transform: uppercase; -} - -dl, -menu, -ol, -ul { - margin: 1em 0; -} - -dd { - margin: 0 0 0 40px; -} - -.container { - max-width: 1700px; - padding: 0 2rem; -} - -/* Footer */ -.tsd-generator { - border-top: 1px solid var(--color-accent); - padding-top: 1rem; - padding-bottom: 1rem; - max-height: 3.5rem; -} - -.tsd-generator > p { - margin-top: 0; - margin-bottom: 0; - padding: 0 1rem; -} - -.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: "Segoe UI", sans-serif; - 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; -} - -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; - white-space: pre-wrap; - word-wrap: break-word; - padding: 10px; - border: 1px solid var(--color-accent); -} -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-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: fit-content; - width: -moz-fit-content; - align-items: center; - user-select: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-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 + svg { - transform: scale(0.95); -} -.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { - transform: scale(1); -} -.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); -} - -.tsd-theme-toggle { - padding-top: 0.75rem; -} -.tsd-theme-toggle > h4 { - display: inline; - vertical-align: middle; - margin-right: 0.75rem; -} - -.tsd-hierarchy { - list-style: square; - margin: 0; -} -.tsd-hierarchy .target { - font-weight: bold; -} - -.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-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-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 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 { - user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - -ms-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-index-accordion .tsd-accordion-summary > svg { - margin-left: 0.25rem; -} -.tsd-index-content > :not(:first-child) { - margin-top: 0.75rem; -} -.tsd-index-heading { - margin-top: 1.5rem; - margin-bottom: 0.75rem; -} - -.tsd-kind-icon { - margin-right: 0.5rem; - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - min-height: 1.25rem; -} -.tsd-kind-icon path { - transform-origin: center; - transform: scale(1.1); -} -.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: 4rem 0; -} -.tsd-panel-group.tsd-index-group { - margin: 2rem 0; -} -.tsd-panel-group.tsd-index-group details { - margin: 2rem 0; -} - -#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-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-anchor-icon { - display: inline-flex; - align-items: center; - margin-left: 0.5rem; - vertical-align: middle; - color: var(--color-text); -} - -.tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; -} - -.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-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-literal { - color: var(--color-ts-type-literal); -} -.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%; - } -} - -/* 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 0; - } - - .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 4cc7dfd0..00000000 --- a/docs/classes/packets.ByePacket.html +++ /dev/null @@ -1,123 +0,0 @@ -
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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP BYE packet info.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
RTCP Compound packet.
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Compound - packet will be created.
-view
does not contain a valid RTCP Compound packet.Add a new RtcpPacket at the end of this RTCP Compound packet.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP Compound packet info.
-Return the RtcpPacket entries in this RTCP Compound packet.
-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.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set the RtcpPacket entries in this RTCP Compound packet.
-Generated using TypeDoc
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
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty DLRR Extended - Report will be created.
-Add sub-report.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump DLRR Extended Report info.
-Get the Extended Report type.
-Get sub-reports.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set sub-reports.
-Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty Duplicate RLE - Extended Report will be created.
-Add chunk.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Duplicate RLE Extended Report info.
-Get chunks.
-Get the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set chunks.
-Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty ECN Summary - Extended Report will be created.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump ECN Summary Extended Report info.
-Get the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP ECN packet info.
-Get the RTCP Feedback message type.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- : ... :
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Extended - Jitter Reports packet will be created.
-view
does not contain a valid RTCP Extended Jitter Reports
-packet.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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP Extended Jitter Reports packet info.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
Abstract
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 :
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Abstract
cloneClone 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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Base Extended Report dump.
-Abstract
getGet the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
Abstract
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) :
-: :
-
-Abstract
cloneClone 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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Base RTCP Feedback packet dump.
-Abstract
getGet the RTCP Feedback message type.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-: ... :
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty generic - Extended Report will be created.
-Optional
reportType: numberIf view
is not given, this parameter must be given.
view
does not contain a valid generic Extended Report.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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump generic Extended Report info.
-Get the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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) :
-: :
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP generic - Feedback packet will be created.
-Optional
packetType: RTPFB | PSFBIf view
is not given, this parameter must be given.
Optional
messageType: RtpFeedbackMessageType | PsFeedbackMessageTypeIf view
is not given, this parameter must be given.
view
does not contain a valid RTCP generic Feedback packet.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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP generic Feedback packet info.
-Get the RTCP Feedback message type.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 | ... |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- : ... :
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP generic - packet will be created.
-Optional
packetType: numberIf view
is not given, this parameter must be given.
view
does not contain a valid RTCP generic packet.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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP generic packet info.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty Loss RLE - Extended Report will be created.
-Add chunk.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Loss RLE Extended Report info.
-Get chunks.
-Get the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set chunks.
-Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-: ... :
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP NACK - packet will be created.
-view
does not contain a valid RTCP NACK packet.Add NACK item value.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP NACK packet info.
-Get NACK items.
-Get the RTCP Feedback message type.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set NACK items.
-Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty Packet Receipt - Times Extended Report will be created.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Packet Receipt Times Extended Report info.
-Get the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
Abstract
Parent class of all RTP and RTCP packets.
-Abstract
cloneClone 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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Base RTCP packet dump.
-Abstract
getGet a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP PLI packet info.
-Get the RTCP Feedback message type.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty Receiver - Reference Time Extended Report will be created.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Receiver Reference Time Extended Report info.
-Get the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Receiver - Report packet will be created.
-view
does not contain a valid RTCP Receiver Report packet.Add Reception Report.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Receiver Report packet info.
-Get the RTCP packet type.
-Get Reception Reports.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set Reception Reports.
-Generated using TypeDoc
RTCP Reception Report.
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Receiver - Report will be created.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Reception Report info.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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) |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP RPSI - packet will be created.
-view
does not contain a valid RTCP RPSI packet.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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP RPSI packet info.
-Get the RTCP Feedback message type.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
Abstract
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 |
- +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
-Abstract
cloneClone 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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Base RTCP packet dump.
-Abstract
getGet the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-| .... |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTP packet info.
-Read the value of the RtpExtensionType.ABS_SEND_TIME RTP -extension.
-Get RTP extension mapping (association of RTP extension types and their -numeric ids in this RTP packet).
-Read the value of the RtpExtensionType.MID RTP extension.
-Read the value of the RtpExtensionType.RTP_REPAIRED_STREAM_ID RTP -extension.
-Read the value of the RtpExtensionType.RTP_STREAM_ID RTP -extension.
-Read the value of the RtpExtensionType.SSRC_AUDIO_LEVEL RTP -extension.
-Read the value of the RtpExtensionType.TOFFSET RTP extension.
-Read the value of the RtpExtensionType.TRANSPORT_WIDE_SEQ_NUMBER -RTP extension.
-Read the value of the RtpExtensionType.VIDEO_ORIENTATION RTP -extension.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Decode the packet using RTX procedures (as per RFC 4588).
-The original payload type.
-The original SSRC.
-Encode the packet using RTX procedures (as per RFC 4588).
-The RTX payload type.
-The RTX SSRC.
-The RTX sequence number.
-Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set the value of the RtpExtensionType.ABS_SEND_TIME RTP -extension.
-Optional
absSendTime: numberabsSendTime
must be in "Absolute Send Time" format. See
-timeMsToAbsSendTime.Set RTP extension mapping (association of RTP extension types and their -numeric ids in this RTP packet).
-Set the value of the RtpExtensionType.MID RTP extension.
-Optional
mid: stringSet the value of the RtpExtensionType.RTP_REPAIRED_STREAM_ID RTP -extension.
-Optional
rrid: stringSet the value of the RtpExtensionType.RTP_STREAM_ID RTP -extension.
-Optional
rid: stringSet the value of the RtpExtensionType.SSRC_AUDIO_LEVEL RTP -extension.
-Optional
ssrcAudioLevel: SsrcAudioLevelExtensionSet the value of the RtpExtensionType.TOFFSET RTP extension.
-Optional
offset: numberSet the value of the RtpExtensionType.TRANSPORT_WIDE_SEQ_NUMBER -RTP extension.
-Optional
sequenceNumber: numberSet the value of the RtpExtensionType.VIDEO_ORIENTATION RTP -extension.
-Optional
videoOrientation: VideoOrientationExtensionGenerated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty Statistics - Summary Extended Report will be created.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Statistics Summary Extended Report info.
-Get the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
SDES Chunk.
-Add SDES Item.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump SDES Chunk info.
-Get SDES Items.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set SDES Items.
-Generated using TypeDoc
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 |
- | ... |
- +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP SDES - packet will be created.
-view
does not contain a valid RTCP SDES packet.Add SDES Chunk.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Receiver Report packet info.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set SDES Chunks.
-Generated using TypeDoc
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 |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Sender - Report packet will be created.
-view
does not contain a valid RTCP Sender Report packet.Add Reception Report.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump Sender Report packet info.
-Get the RTCP packet type.
-Get Reception Reports.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set Reception Reports.
-Generated using TypeDoc
Abstract
Class holding a serializable buffer view. All RTP and RTCP packets inherit -from this class, and also items in some RTCP packets.
-Abstract
cloneClone 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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Serializable dump.
-Abstract
getGet a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-: ... :
-+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
-
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP SLI packet info.
-Get the RTCP Feedback message type.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP SR REQ - packet will be created.
-view
does not contain a valid RTCP SR REQ packet.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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump RTCP SR REQ packet info.
-Get the RTCP Feedback message type.
-Get the RTCP packet type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
view: DataViewIf given it will be parsed. Otherwise an empty VoIP Metrics - Extended Report will be created.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump VoIP Metrics Extended Report info.
-Get the Extended Report type.
-Get a buffer view containing the serialized content of the packet or item.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Generated using TypeDoc
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Add Extended Report.
-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.
-Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a - new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where clonation will
- start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given
- serializationBuffer
where serialization (if needed) will start.
buffer
doesn't have space enough to clone the content.serializationBuffer
doesn't have space enough to serialize
-the content.Dump XR packet info.
-Get the RTCP packet type.
-Get Extended Reports.
-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.
-Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized - in case serialization is needed. If not given, a new one will internally - allocated.
-Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
- where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into -a new buffer.
-Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not - given, a new one will internally allocated.
-Optional
byteOffset: numberByte offset of the given buffer
where serialization
- will start.
buffer
doesn't have space enough to serialize the content.Set Extended Reports.
-Generated using TypeDoc
Extended Report types.
-DLRR Report.
-Duplicate RLE Report.
-ECN Summary Report.
-Loss RLE Report.
-Packet Receipt Times Report.
-Receiver Reference Time Report.
-Statistics Summary Report.
-VoIP Metrics Report.
-Generated using TypeDoc
Generated using TypeDoc
RTCP packet types.
-RTCP APP packet.
-RTCP BYE packet.
-Extended Jitter Reports packet.
-RTCP Payload Specific Feedback packet.
-RTCP Receiver Report packet.
-RTCP Transport Layer Feedback packet.
-RTCP Sender Report packet.
-RTCP Sender Report packet.
-RTCP Extended Report packet.
-Generated using TypeDoc
RTP extensions.
-Absolute Send Time.
-URI: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
Media identification.
-URI: urn:ietf:params:rtp-hdrext:sdes:mid
RTP Repaired Stream Identifier.
-URI: urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
RTP Stream Identifier.
-URI: urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
Audio Level
-URI: urn:ietf:params:rtp-hdrext:ssrc-audio-level
Transmission Time Offsets.
-URI: urn:ietf:params:rtp-hdrext:toffset
Transport-wide Sequence Number.
-URI: http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
Video Orientation.
-URI: urn:3gpp:video-orientation
Generated using TypeDoc
Generated using TypeDoc
SDES Chunk Item types.
-Canonical End-Point Identifier SDES Item.
-Electronic Mail Address SDES Item.
-Geographic User Location SDES Item.
-User Name SDES Item.
-Notice/Status SDES Item.
-Phone Number SDES Item.
-Private Extensions SDES Item.
-Application or Tool Name SDES Item.
-Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Generated using TypeDoc
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 |
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Generated using TypeDoc
Create a NACK item.
-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.
-Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Parse given 2 bytes number as a Extended Report chunk.
-Generated using TypeDoc
Generated using TypeDoc
Get the RTP extension type associated to the given RTP extension URI.
-Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
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
-
-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');
-
-Generated using TypeDoc
Generated using TypeDoc
Generated using TypeDoc
RTCP BYE packet info dump.
-Optional
reason?: stringGenerated using TypeDoc
RTCP Compound packet info dump.
-Generated using TypeDoc
DLRR Extended Report dump.
-Generated using TypeDoc
DLRR Sub-Report.
-Delay since last RR.
-Last RR timestamp.
-SSRC of receiver.
-Generated using TypeDoc
Duplicate RLE Extended Report dump.
-Generated using TypeDoc
ECN Summary Extended Report dump.
-Generated using TypeDoc
RTCP ECN packet info dump.
-Generated using TypeDoc
RTCP Extended Jitter Reports packet info dump.
-Generated using TypeDoc
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|
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-Optional
bitChunk bit vector (only set if chunkType
is 'bit-vector').
Chunk type (Run Length Chunk, Bit Vector Chunk or Terminating Null Chunk).
-Optional
runChunk run length (only set if chunkType
is 'run-length').
Optional
runChunk run type (only set if chunkType
is 'run-length').
Generated using TypeDoc
Generated using TypeDoc
RTCP Feedback packet info dump.
-Generated using TypeDoc
Generic Extended Report dump.
-Generated using TypeDoc
RTCP generic Feedback packet info.
-Generated using TypeDoc
RTCP generic packet info dump.
-Generated using TypeDoc
Loss RLE Extended Report dump.
-Generated using TypeDoc
RTCP NACK packet info dump.
-Generated using TypeDoc
Packet Receipt Times Extended Report dump.
-Generated using TypeDoc
Packet info dump.
-Generated using TypeDoc
Generated using TypeDoc
Receiver Reference Time Extended Report dump.
-Generated using TypeDoc
RTCP Receiver Report packet info dump.
-Generated using TypeDoc
Reception Report dump.
-Generated using TypeDoc
RTCP RPSI packet info dump.
-Generated using TypeDoc
Base RTCP packet info dump.
-Generated using TypeDoc
Mapping of RTP extension types and their corresponding RTP extension ids.
-const rtpExtensionMapping: RtpExtensionMapping =
{
[RtpExtensionType.MID]: 1,
[RtpExtensionType.RTP_STREAM_ID]: 3
};
-
-Generated using TypeDoc
RTP packet info dump.
-Optional
absOptional
headerOptional
midOptional
repairedOptional
ridOptional
ssrcOptional
transmissionOptional
transportOptional
videoGenerated using TypeDoc
Statistics Summary Extended Report dump.
-Optional
devOptional
devOptional
duplicateOptional
lostOptional
maxOptional
maxOptional
meanOptional
meanOptional
minOptional
minOptional
ttlGenerated using TypeDoc
SDES Chunk dump.
-Generated using TypeDoc
Generated using TypeDoc
RTCP Sender Report packet info dump.
-Generated using TypeDoc
Serializable info dump.
-Generated using TypeDoc
RTCP SLI packet info dump.
-Generated using TypeDoc
Generated using TypeDoc
SSRC Audio Level data.
-Whether the encoder believes the audio packet contains voice activity.
-Audio level expressed in -dBov, with values from 0 to 127 representing 0 -to -127 dBov.
-Generated using TypeDoc
VoIP Metrics Extended Report dump.
-Generated using TypeDoc
Video Orientation data.
-0: no rotation. -1: rotation is 90º. -2: rotation is 180º. -3: rotation is 270º.
-Generated using TypeDoc
RTCP XR packet info dump.
-Generated using TypeDoc
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 ...
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP BYE packet info.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
RTCP Compound packet.
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Compound +packet will be created.
+Add a new RtcpPacket at the end of this RTCP Compound packet.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP Compound packet info.
+Return the RtcpPacket entries in this RTCP Compound packet.
+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.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set the RtcpPacket entries in this RTCP Compound packet.
+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
++=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty DLRR Extended +Report will be created.
+Add sub-report.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump DLRR Extended Report info.
+Get the Extended Report type.
+Get sub-reports.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set sub-reports.
+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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty Duplicate RLE +Extended Report will be created.
+Add chunk.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Duplicate RLE Extended Report info.
+Get chunks.
+Get the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set chunks.
+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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty ECN Summary +Extended Report will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump ECN Summary Extended Report info.
+Get the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP ECN packet info.
+Get the RTCP Feedback message type.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : ... :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Extended +Jitter Reports packet will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP Extended Jitter Reports packet info.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Abstract
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 :
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Abstract
cloneClone 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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Base Extended Report dump.
+Abstract
getGet the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Abstract
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) :
+: :
+
+
+Abstract
cloneClone 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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Base RTCP Feedback packet dump.
+Abstract
getGet the RTCP Feedback message type.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+: ... :
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty generic +Extended Report will be created.
+Optional
reportType: numberIf view
is not given, this parameter must be given.
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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump generic Extended Report info.
+Get the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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) :
+: :
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP generic +Feedback packet will be created.
+Optional
packetType: RTPFB | PSFBIf view
is not given, this parameter must be given.
Optional
messageType: RtpFeedbackMessageType | PsFeedbackMessageTypeIf view
is not given, this parameter must be given.
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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP generic Feedback packet info.
+Get the RTCP Feedback message type.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : ... :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP generic +packet will be created.
+Optional
packetType: numberIf view
is not given, this parameter must be given.
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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP generic packet info.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty Loss RLE +Extended Report will be created.
+Add chunk.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Loss RLE Extended Report info.
+Get chunks.
+Get the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set chunks.
+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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+: ... :
++=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP NACK +packet will be created.
+Add NACK item value.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP NACK packet info.
+Get NACK items.
+Get the RTCP Feedback message type.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set NACK items.
+Abstract
Parent class of all RTP and RTCP packets.
+Abstract
cloneClone 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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Base RTCP packet dump.
+Abstract
getGet a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP PLI packet info.
+Get the RTCP Feedback message type.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty Packet Receipt +Times Extended Report will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Packet Receipt Times Extended Report info.
+Get the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Receiver +Report packet will be created.
+Add Reception Report.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Receiver Report packet info.
+Get the RTCP packet type.
+Get Reception Reports.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set Reception Reports.
+RTCP Reception Report.
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Receiver +Report will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Reception Report info.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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) |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP RPSI +packet will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP RPSI packet info.
+Get the RTCP Feedback message type.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty Receiver +Reference Time Extended Report will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Receiver Reference Time Extended Report info.
+Get the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Abstract
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 |
+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+
+
+Abstract
cloneClone 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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Base RTCP packet dump.
+Abstract
getGet the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
+| .... |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTP packet info.
+Read the value of the RtpExtensionType.ABS_SEND_TIME RTP +extension.
+Get RTP extension mapping (association of RTP extension types and their +numeric ids in this RTP packet).
+Read the value of the RtpExtensionType.MID RTP extension.
+Read the value of the RtpExtensionType.RTP_REPAIRED_STREAM_ID RTP +extension.
+Read the value of the RtpExtensionType.RTP_STREAM_ID RTP +extension.
+Read the value of the RtpExtensionType.SSRC_AUDIO_LEVEL RTP +extension.
+Read the value of the RtpExtensionType.TOFFSET RTP extension.
+Read the value of the RtpExtensionType.TRANSPORT_WIDE_SEQ_NUMBER +RTP extension.
+Read the value of the RtpExtensionType.VIDEO_ORIENTATION RTP +extension.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set the value of the RtpExtensionType.ABS_SEND_TIME RTP +extension.
+Optional
absSendTime: numberabsSendTime
must be in "Absolute Send Time" format. See
+timeMsToAbsSendTime.Set RTP extension mapping (association of RTP extension types and their +numeric ids in this RTP packet).
+Set the value of the RtpExtensionType.MID RTP extension.
+Optional
mid: stringSet the value of the RtpExtensionType.RTP_REPAIRED_STREAM_ID RTP +extension.
+Optional
rrid: stringSet the value of the RtpExtensionType.RTP_STREAM_ID RTP +extension.
+Optional
rid: stringSet the value of the RtpExtensionType.SSRC_AUDIO_LEVEL RTP +extension.
+Optional
ssrcAudioLevel: SsrcAudioLevelExtensionSet the value of the RtpExtensionType.TOFFSET RTP extension.
+Optional
offset: numberSet the value of the RtpExtensionType.TRANSPORT_WIDE_SEQ_NUMBER +RTP extension.
+Optional
sequenceNumber: numberSet the value of the RtpExtensionType.VIDEO_ORIENTATION RTP +extension.
+Optional
videoOrientation: VideoOrientationExtensionSDES Chunk.
+Add SDES Item.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump SDES Chunk info.
+Get SDES Items.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set SDES Items.
+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 |
+ | ... |
+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP SDES +packet will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Receiver Report packet info.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP Sender +Report packet will be created.
+Add Reception Report.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Sender Report packet info.
+Get the RTCP packet type.
+Get Reception Reports.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set Reception Reports.
+Abstract
Class holding a serializable buffer view. All RTP and RTCP packets inherit +from this class, and also items in some RTCP packets.
+Abstract
cloneClone 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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Serializable dump.
+Abstract
getGet a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Abstract
serializeApply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+: ... :
++=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
+
+
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP SLI packet info.
+Get the RTCP Feedback message type.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty RTCP SR REQ +packet will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump RTCP SR REQ packet info.
+Get the RTCP Feedback message type.
+Get the RTCP packet type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty Statistics +Summary Extended Report will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump Statistics Summary Extended Report info.
+Get the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
view: DataViewIf given it will be parsed. Otherwise an empty VoIP Metrics +Extended Report will be created.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump VoIP Metrics Extended Report info.
+Get the Extended Report type.
+Get a buffer view containing the serialized content of the packet or item.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Add Extended Report.
+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.
+Optional
buffer: ArrayBufferBuffer in which the content will be cloned. If not given, a +new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where clonation will
+start.
Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given
+serializationBuffer
where serialization (if needed) will start.
Dump XR packet info.
+Get the RTCP packet type.
+Get Extended Reports.
+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.
+Optional
serializationBuffer: ArrayBufferBuffer in which the content will be serialized +in case serialization is needed. If not given, a new one will internally +allocated.
+Optional
serializationByteOffset: numberByte offset of the given serializationBuffer
+where serialization (if needed) will start.
Apply pending changes and serialize the content of the packet or item into +a new buffer.
+Optional
buffer: ArrayBufferBuffer in which the content will be serialized. If not +given, a new one will internally allocated.
+Optional
byteOffset: numberByte offset of the given buffer
where serialization
+will start.
Set Extended Reports.
+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
+
+
+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');
+
+
+Extended Report types.
+RTCP Feedback payload specific message types.
+RTCP packet types.
+RTCP APP packet.
+RTCP BYE packet.
+Extended Jitter Reports packet.
+RTCP Payload Specific Feedback packet.
+RTCP Receiver Report packet.
+RTCP Transport Layer Feedback packet.
+RTCP Sender Report packet.
+RTCP Sender Report packet.
+RTCP Extended Report packet.
+RTP extensions.
+Absolute Send Time.
+URI: http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
Media identification.
+URI: urn:ietf:params:rtp-hdrext:sdes:mid
RTP Repaired Stream Identifier.
+URI: urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id
RTP Stream Identifier.
+URI: urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id
Audio Level
+URI: urn:ietf:params:rtp-hdrext:ssrc-audio-level
Transmission Time Offsets.
+URI: urn:ietf:params:rtp-hdrext:toffset
Transport-wide Sequence Number.
+URI: http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
Video Orientation.
+URI: urn:3gpp:video-orientation
SDES Chunk Item types.
+Canonical End-Point Identifier SDES Item.
+Electronic Mail Address SDES Item.
+Geographic User Location SDES Item.
+User Name SDES Item.
+Notice/Status SDES Item.
+Phone Number SDES Item.
+Private Extensions SDES Item.
+Application or Tool Name SDES Item.
+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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+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 |
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Parse given 2 bytes number as a Extended Report chunk.
+Get the RTP extension type associated to the given RTP extension URI.
+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
+
+
+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');
+
+
+RTCP BYE packet info dump.
+RTCP Compound packet info dump.
+DLRR Extended Report dump.
+Duplicate RLE Extended Report dump.
+ECN Summary Extended Report dump.
+RTCP ECN packet info dump.
+RTCP Extended Jitter Reports packet info dump.
+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|
++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+Optional
bitVector?: numberChunk bit vector (only set if chunkType
is 'bit-vector').
Chunk type (Run Length Chunk, Bit Vector Chunk or Terminating Null Chunk).
+Optional
runLength?: numberChunk run length (only set if chunkType
is 'run-length').
Optional
runType?: "zeros" | "ones"Chunk run type (only set if chunkType
is 'run-length').
Extended Report dump.
+RTCP Feedback packet info dump.
+Generic Extended Report dump.
+RTCP generic Feedback packet info.
+RTCP generic packet info dump.
+Loss RLE Extended Report dump.
+RTCP NACK packet info dump.
+Packet info dump.
+Packet Receipt Times Extended Report dump.
+RTCP Receiver Report packet info dump.
+Reception Report dump.
+RTCP RPSI packet info dump.
+Receiver Reference Time Extended Report dump.
+Base RTCP packet info dump.
+Mapping of RTP extension types and their corresponding RTP extension ids.
+RTP packet info dump.
+SDES Chunk dump.
+RTCP SDES packet info dump.
+RTCP Sender Report packet info dump.
+RTCP SLI packet info dump.
+Statistics Summary Extended Report dump.
+SSRC Audio Level data.
+VoIP Metrics Extended Report dump.
+RTCP XR packet info dump.
+
RTCP BYE packet.
- -See
-- RFC 3550 section 6.6
-
-