@yume-chan/media-codec 3.0.0-beta.0 → 3.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/av1.d.ts.map +1 -1
- package/esm/av1.js.map +1 -1
- package/esm/index.d.ts +2 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/vp8.d.ts +26 -0
- package/esm/vp8.d.ts.map +1 -0
- package/esm/vp8.js +41 -0
- package/esm/vp8.js.map +1 -0
- package/esm/vp9.d.ts +74 -0
- package/esm/vp9.d.ts.map +1 -0
- package/esm/vp9.js +233 -0
- package/esm/vp9.js.map +1 -0
- package/package.json +5 -5
- package/src/av1.ts +3 -6
- package/src/index.ts +2 -0
- package/src/vp8.ts +64 -0
- package/src/vp9.ts +322 -0
package/esm/av1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"av1.d.ts","sourceRoot":"","sources":["../src/av1.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,iBAAiB;;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAyB3B,CAAC;AAEF,cAAM,SAAS;;IAOX,IAAI,WAAW,YAEd;IAED,IAAI,KAAK,YAER;gBAEW,IAAI,EAAE,UAAU;IAK5B,EAAE;IAWF,CAAC,CAAC,CAAC,EAAE,MAAM;IASX,IAAI,CAAC,CAAC,EAAE,MAAM;IAqBd,SAAS,CAAC,CAAC,EAAE,MAAM;IAcnB,WAAW;IAIX,WAAW,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;CAKrE;AAED,QAAA,MAAM,OAAO;;;;;;;;;;CAUH,CAAC;AAEX,KAAK,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAEtD,QAAA,MAAM,cAAc;;;;;;;;;;;;;CAaV,CAAC;AAEX,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;CAkBnB,CAAC;AAEX,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;CAed,CAAC;AAEX,qBAAa,GAAI,SAAQ,SAAS;;IAC9B,MAAM,CAAC,OAAO;;;;;;;;;;MAAW;IACzB,MAAM,CAAC,cAAc;;;;;;;;;;;;;MAAkB;IACvC,MAAM,CAAC,uBAAuB;;;;;;;;;;;;;;;;;;MAA2B;IACzD,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;MAAsB;IAE/C;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,iBAAiB;IAmD1D,IAAI;IAYJ,MAAM;IAkBL,eAAe,IAAI,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;IAO/D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;IAStE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;IAcpE,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"av1.d.ts","sourceRoot":"","sources":["../src/av1.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,iBAAiB;;;;;CAK7B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;CAyB3B,CAAC;AAEF,cAAM,SAAS;;IAOX,IAAI,WAAW,YAEd;IAED,IAAI,KAAK,YAER;gBAEW,IAAI,EAAE,UAAU;IAK5B,EAAE;IAWF,CAAC,CAAC,CAAC,EAAE,MAAM;IASX,IAAI,CAAC,CAAC,EAAE,MAAM;IAqBd,SAAS,CAAC,CAAC,EAAE,MAAM;IAcnB,WAAW;IAIX,WAAW,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;CAKrE;AAED,QAAA,MAAM,OAAO;;;;;;;;;;CAUH,CAAC;AAEX,KAAK,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;AAEtD,QAAA,MAAM,cAAc;;;;;;;;;;;;;CAaV,CAAC;AAEX,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;CAkBnB,CAAC;AAEX,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;CAed,CAAC;AAEX,qBAAa,GAAI,SAAQ,SAAS;;IAC9B,MAAM,CAAC,OAAO;;;;;;;;;;MAAW;IACzB,MAAM,CAAC,cAAc;;;;;;;;;;;;;MAAkB;IACvC,MAAM,CAAC,uBAAuB;;;;;;;;;;;;;;;;;;MAA2B;IACzD,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;MAAsB;IAE/C;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,cAAc,EAAE,GAAG,CAAC,iBAAiB;IAmD1D,IAAI;IAYJ,MAAM;IAkBL,eAAe,IAAI,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;IAO/D,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;IAStE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC;IAcpE,iBAAiB,CAAC,EAAE,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6D7B,SAAS;;;;;;;;;IAyBT,kBAAkB;;;;IAOlB,MAAM,CAAC,QAAQ,CAAC,wBAAwB,KAAK;IAC7C,MAAM,CAAC,QAAQ,CAAC,eAAe,KAAK;IAEpC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyLjB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAavB,UAAU;;;;;;IAgBV,gBAAgB;;;;;;IAahB,uBAAuB,CACnB,gBAAgB,EAAE,UAAU,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;;;;;IAazD,oBAAoB;IAIpB,WAAW,CAAC,WAAW,EAAE,MAAM;;;;;;;;;;;;;;;CAiGlC;AAED,yBAAiB,GAAG,CAAC;IACjB,KAAY,iBAAiB,GAAG,OAAO,CACnC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,EACpC,SAAS,CACZ,CAAC;IAEF,KAAY,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAErE,KAAY,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,OAAO,OAAO,CAAC,CAAC;IAE7D,KAAY,cAAc,GACtB,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;IAEzD,KAAY,uBAAuB,GAC/B,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;IAE3E,KAAY,kBAAkB,GAC1B,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;CACpE"}
|
package/esm/av1.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"av1.js","sourceRoot":"","sources":["../src/av1.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"av1.js","sourceRoot":"","sources":["../src/av1.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,4BAA4B;AAC5B,0BAA0B;AAC1B,sBAAsB;AACtB,0BAA0B;AAC1B,uBAAuB;AACvB,yBAAyB;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,WAAW,EAAE,CAAC,IAAI,EAAE;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC3B,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE;IACf,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE;IACf,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE;IACf,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE;IAChB,OAAO,EAAE,CAAC,IAAI,EAAE;CACnB,CAAC;AAEF,MAAM,SAAS;IACX,KAAK,CAAa;IAClB,KAAK,CAAS;IAEd,aAAa,GAAW,CAAC,CAAC;IAC1B,YAAY,GAAW,CAAC,CAAC;IAEzB,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACnD,CAAC;IAED,YAAY,IAAgB;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IAC1B,CAAC;IAED,EAAE;QACE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,CAAC,CAAC,CAAS;QACP,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,KAAK,KAAK,CAAC,CAAC;YACZ,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,CAAS;QACV,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC;YAC7C,OAAO;QACX,CAAC;QAED,CAAC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QAExB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC;YAC5B,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,CAAS;QACf,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAC7B,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,GAAG,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,WAAW;QACP,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAU,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,CAAC,YAAY,EAAE,WAAW,CAA4B;QAC9D,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAE,CAAC;IAC3C,CAAC;CACJ;AAED,MAAM,OAAO,GAAG;IACZ,cAAc,EAAE,CAAC;IACjB,iBAAiB,EAAE,CAAC;IACpB,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;IACR,oBAAoB,EAAE,CAAC;IACvB,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,EAAE;CACL,CAAC;AAIX,MAAM,cAAc,GAAG;IACnB,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE;CACL,CAAC;AAEX,MAAM,uBAAuB,GAAG;IAC5B,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,YAAY,EAAE,EAAE;IAChB,QAAQ,EAAE,EAAE;IACZ,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;IACR,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,EAAE;IAChB,SAAS,EAAE,EAAE;IACb,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;CACD,CAAC;AAEX,MAAM,kBAAkB,GAAG;IACvB,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;IACR,WAAW,EAAE,CAAC;IACd,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE;CACH,CAAC;AAEX,MAAM,OAAO,GAAI,SAAQ,SAAS;IAC9B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,MAAM,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;IACzD,MAAM,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IAE/C;;;;;;OAMG;IACH,MAAM,CAAC,aAAa,CAAC,cAAqC;QACtD,MAAM,EACF,WAAW,EAAE,UAAU,EACvB,aAAa,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,EAChC,YAAY,EAAE,EACV,QAAQ,EACR,WAAW,EAAE,UAAU,EACvB,aAAa,EAAE,YAAY,EAC3B,aAAa,EAAE,YAAY,EAC3B,sBAAsB,EAAE,oBAAoB,EAC5C,8BAA8B,GACjC,GACJ,GAAG,cAAc,CAAC;QAEnB,IAAI,cAAkC,CAAC;QACvC,IAAI,uBAAoD,CAAC;QACzD,IAAI,kBAA0C,CAAC;QAC/C,IAAI,UAAmB,CAAC;QACxB,IAAI,8BAA8B,EAAE,CAAC;YACjC,CAAC;gBACG,eAAe,EAAE,cAAc;gBAC/B,wBAAwB,EAAE,uBAAuB;gBACjD,mBAAmB,EAAE,kBAAkB;gBACvC,WAAW,EAAE,UAAU;aAC1B,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC;YAC1C,uBAAuB,GAAG,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC;YAC5D,kBAAkB,GAAG,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAClD,UAAU,GAAG,KAAK,CAAC;QACvB,CAAC;QAED,OAAO;YACH,MAAM;YACN,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,gBAAgB,CAAC,WAAW,CAAC;gBACzB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,gBAAgB,CAAC,QAAQ,CAAC;YAC1B,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YACtB,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBACtB,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC1B,oBAAoB,CAAC,QAAQ,EAAE;YACnC,gBAAgB,CAAC,cAAc,CAAC;YAChC,gBAAgB,CAAC,uBAAuB,CAAC;YACzC,gBAAgB,CAAC,kBAAkB,CAAC;YACpC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;SACzB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,YAAY,GAAW,CAAC,CAAC;IAEzB,IAAI;QACA,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;YAChB,YAAY,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACnC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,MAAM;QACF,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,KAAK,IAAI,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,MAAM;YACV,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,CAAC,eAAe;QACZ,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACzC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QACjD,CAAC;IACL,CAAC;IAED,CAAC,YAAY,CAAC,EAAU;QACpB,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACvC,EAAE,IAAI,eAAe,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,CAAC,SAAS,CAAC,EAAU;QACjB,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,GAAG,EAAE,CAAC;gBACN,MAAM,GAAG,CAAC;YACd,CAAC;YACD,EAAE,IAAI,UAAU,CAAC;QACrB,CAAC;IACL,CAAC;IAED,kBAAkB,GAAG,CAAC,CAAC;IAEvB,iBAAiB,CAAC,EAAW;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QACpC,IAAI,QAAgB,CAAC;QACrB,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,CAAC;aAAM,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzC,IACI,UAAU,CAAC,QAAQ,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc;YAClD,UAAU,CAAC,QAAQ,KAAK,GAAG,CAAC,OAAO,CAAC,iBAAiB;YACrD,IAAI,CAAC,kBAAkB,KAAK,CAAC;YAC7B,UAAU,CAAC,oBAAoB,EACjC,CAAC;YACC,MAAM,eAAe,GAAG,CAAC,CAAC,CACtB,IAAI,CAAC,kBAAkB;gBACvB,CAAC,CAAC,IAAI,UAAU,CAAC,oBAAoB,CAAC,WAAW,CAAC,CACrD,CAAC;YACF,MAAM,cAAc,GAAG,CAAC,CAAC,CACrB,IAAI,CAAC,kBAAkB;gBACvB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAC1D,CAAC;YACF,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5B,OAAO;YACX,CAAC;QACL,CAAC;QAED,IAAI,mBACgD,CAAC;QACrD,QAAQ,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1B,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc;gBAC3B,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC/C,MAAM;QACd,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,WAAW,GACb,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC3C,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5C,IACI,QAAQ,GAAG,CAAC,CAAC;;;oDAG+B,EAC9C,CAAC;YACC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;QAClD,CAAC;QACD,OAAO;YACH,UAAU;YACV,QAAQ;YACR,mBAAmB;SACtB,CAAC;IACN,CAAC;IAED,SAAS;QACL,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,iBAAiB,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,EAAE,EAAE,CAAC;QAEV,IAAI,oBACiD,CAAC;QACtD,IAAI,kBAAkB,EAAE,CAAC;YACrB,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACrD,CAAC;QAED,OAAO;YACH,QAAQ;YACR,kBAAkB;YAClB,kBAAkB;YAClB,oBAAoB;SACvB,CAAC;IACN,CAAC;IAED,kBAAkB;QACd,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAU,wBAAwB,GAAG,CAAC,CAAC;IAC7C,MAAM,CAAU,eAAe,GAAG,CAAC,CAAC;IAEpC,iBAAiB;QACb,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAEjD,IAAI,wBAAwB,GAAG,KAAK,CAAC;QACrC,IAAI,WAAsD,CAAC;QAC3D,IAAI,+BAA+B,GAAG,KAAK,CAAC;QAC5C,IAAI,kBAAmE,CAAC;QACxE,IAAI,kCAAkC,GAAG,KAAK,CAAC;QAC/C,IAAI,4BAA4B,GAAG,CAAC,CAAC;QACrC,MAAM,mBAAmB,GAAa,EAAE,CAAC;QACzC,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,iCAAiC,GAAc,EAAE,CAAC;QACxD,MAAM,yCAAyC,GAAc,EAAE,CAAC;QAChE,IAAI,yBACwD,CAAC;QAC7D,IAAI,6BAAmD,CAAC;QACxD,IAAI,4BAA4B,EAAE,CAAC;YAC/B,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3B,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChB,iCAAiC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAC7C,yCAAyC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACzD,CAAC;aAAM,CAAC;YACJ,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,wBAAwB,EAAE,CAAC;gBAC3B,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChC,+BAA+B,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC9C,IAAI,+BAA+B,EAAE,CAAC;oBAClC,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC7C,yBAAyB,GAAG,EAAE,CAAC;gBACnC,CAAC;YACL,CAAC;YACD,kCAAkC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACjD,IAAI,kCAAkC,EAAE,CAAC;gBACrC,6BAA6B,GAAG,EAAE,CAAC;YACvC,CAAC;YACD,4BAA4B,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,4BAA4B,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,aAAa,CAAC,CAAC,CAAE,GAAG,CAAC,EAAE,CAAC;oBACxB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACJ,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,IAAI,+BAA+B,EAAE,CAAC;oBAClC,iCAAiC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACnD,IAAI,iCAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvC,yBAA0B,CAAC,CAAC,CAAC;4BACzB,IAAI,CAAC,uBAAuB,CAAC,kBAAmB,CAAC,CAAC;oBAC1D,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,iCAAiC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACjD,CAAC;gBACD,IAAI,kCAAkC,EAAE,CAAC;oBACrC,yCAAyC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBAC3D,IAAI,yCAAyC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/C,6BAA8B,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClD,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACnD,IAAI,CAAC,kBAAkB,GAAG,mBAAmB,CAAC,cAAc,CAAE,CAAC;QAE/D,MAAM,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,yBAAyB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,uBAAuB,GAAG,IAAI,CAAC,CAAC,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;QACrE,MAAM,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC;QAEvE,IAAI,6BAA6B,GAAG,KAAK,CAAC;QAC1C,IAAI,6BAAiD,CAAC;QACtD,IAAI,kCAAsD,CAAC;QAC3D,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAChC,6BAA6B,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,6BAA6B,EAAE,CAAC;gBAChC,6BAA6B,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,kCAAkC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;QAED,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAE7C,IAAI,0BAA0B,GAAG,KAAK,CAAC;QACvC,IAAI,sBAAsB,GAAG,KAAK,CAAC;QACnC,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,+BAA+B,GAAG,KAAK,CAAC;QAC5C,IAAI,8BAA8B,GAAG,GAAG,CAAC,wBAAwB,CAAC;QAClE,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,IAAI,oBAAoB,GAAG,GAAG,CAAC,eAAe,CAAC;QAC/C,IAAI,uBAA2C,CAAC;QAChD,yBAAyB;QACzB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YAChC,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACzC,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACrC,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACnC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAEjC,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAChC,IAAI,iBAAiB,EAAE,CAAC;gBACpB,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC9B,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACvC,CAAC;YAED,+BAA+B,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,+BAA+B,EAAE,CAAC;gBACnC,8BAA8B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;YAC/C,CAAC;YAED,IAAI,8BAA8B,GAAG,CAAC,EAAE,CAAC;gBACrC,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACzB,oBAAoB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBACrC,CAAC;YACL,CAAC;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACpB,uBAAuB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpC,+CAA+C;YACnD,CAAC;QACL,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAE9C,OAAO;YACH,WAAW;YACX,aAAa;YACb,4BAA4B;YAC5B,wBAAwB;YACxB,WAAW;YACX,+BAA+B;YAC/B,kBAAkB;YAClB,kCAAkC;YAClC,6BAA6B;YAC7B,4BAA4B;YAC5B,mBAAmB;YACnB,aAAa;YACb,QAAQ;YACR,iCAAiC;YACjC,yBAAyB;YACzB,yCAAyC;YACzC,wBAAwB;YACxB,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,6BAA6B;YAC7B,6BAA6B;YAC7B,kCAAkC;YAClC,sBAAsB;YACtB,mBAAmB;YACnB,wBAAwB;YACxB,0BAA0B;YAC1B,sBAAsB;YACtB,oBAAoB;YACpB,kBAAkB;YAClB,iBAAiB;YACjB,eAAe;YACf,oBAAoB;YACpB,+BAA+B;YAC/B,8BAA8B;YAC9B,qBAAqB;YACrB,oBAAoB;YACpB,uBAAuB;YACvB,eAAe;YACf,WAAW;YACX,kBAAkB;YAClB,YAAY;YACZ,yBAAyB;SAC5B,CAAC;IACN,CAAC;IAED,uBAAuB;QACnB,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACP,SAAS;YACb,CAAC;YACD,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;gBAC1B,OAAO,GAAG,CAAC,mBAAmB,CAAC;YACnC,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,UAAU;QACN,MAAM,yBAAyB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,6BAAiD,CAAC;QACtD,IAAI,sBAAsB,EAAE,CAAC;YACzB,6BAA6B,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAChD,CAAC;QACD,OAAO;YACH,yBAAyB;YACzB,UAAU;YACV,sBAAsB;YACtB,6BAA6B;SAChC,CAAC;IACN,CAAC;IAED,gBAAgB;QACZ,MAAM,2BAA2B,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,0BAA0B,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,kCAAkC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,sCAAsC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO;YACH,2BAA2B;YAC3B,0BAA0B;YAC1B,kCAAkC;YAClC,sCAAsC;SACzC,CAAC;IACN,CAAC;IAED,uBAAuB,CACnB,gBAAqD;QAErD,MAAM,CAAC,GAAG,gBAAgB,CAAC,2BAA2B,GAAG,CAAC,CAAC;QAC3D,MAAM,oBAAoB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACxC,OAAO;YACH,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;SACtB,CAAC;IACN,CAAC;IAED,oBAAoB;QAChB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,WAAW,CAAC,WAAmB;QAC3B,MAAM,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAClC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAAW,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;YACrC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACzB,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,CAAC;aAAM,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACpB,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9B,CAAC;QAED,yCAAyC;QAEzC,MAAM,8BAA8B,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACnD,IAAI,eAAe,GACf,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;QACnC,IAAI,wBAAwB,GACxB,GAAG,CAAC,uBAAuB,CAAC,WAAW,CAAC;QAC5C,IAAI,mBAAmB,GACnB,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC;QACvC,IAAI,8BAA8B,EAAE,CAAC;YACjC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAuB,CAAC;YAClD,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAgC,CAAC;YACpE,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAA2B,CAAC;QAC9D,CAAC;QAED,IAAI,WAAoB,CAAC;QACzB,IAAI,aAAsB,CAAC;QAC3B,IAAI,aAAsB,CAAC;QAC3B,IAAI,sBAAsB,GAAG,CAAC,CAAC;QAC/B,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,WAAW,EAAE,CAAC;YACd,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC1B,aAAa,GAAG,IAAI,CAAC;YACrB,aAAa,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,CAAC;YACJ,IACI,eAAe,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK;gBAC5C,wBAAwB,KAAK,GAAG,CAAC,uBAAuB,CAAC,IAAI;gBAC7D,mBAAmB,KAAK,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EACzD,CAAC;gBACC,WAAW,GAAG,IAAI,CAAC;gBACnB,aAAa,GAAG,KAAK,CAAC;gBACtB,aAAa,GAAG,KAAK,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACJ,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC1B,QAAQ,WAAW,EAAE,CAAC;oBAClB,KAAK,CAAC;wBACF,aAAa,GAAG,IAAI,CAAC;wBACrB,aAAa,GAAG,IAAI,CAAC;wBACrB,MAAM;oBACV,KAAK,CAAC;wBACF,aAAa,GAAG,KAAK,CAAC;wBACtB,aAAa,GAAG,KAAK,CAAC;wBACtB,MAAM;oBACV;wBACI,IAAI,QAAQ,IAAI,EAAE,EAAE,CAAC;4BACjB,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;4BAC5B,IAAI,aAAa,EAAE,CAAC;gCAChB,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;4BAChC,CAAC;iCAAM,CAAC;gCACJ,aAAa,GAAG,KAAK,CAAC;4BAC1B,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACJ,aAAa,GAAG,IAAI,CAAC;4BACrB,aAAa,GAAG,KAAK,CAAC;wBAC1B,CAAC;wBACD,MAAM;gBACd,CAAC;gBACD,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;oBACjC,sBAAsB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;YACD,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACtC,CAAC;QAED,OAAO;YACH,aAAa;YACb,UAAU;YACV,QAAQ;YACR,WAAW;YACX,8BAA8B;YAC9B,eAAe;YACf,wBAAwB;YACxB,mBAAmB;YACnB,WAAW;YACX,aAAa;YACb,aAAa;YACb,sBAAsB;YACtB,mBAAmB;SACtB,CAAC;IACN,CAAC"}
|
package/esm/index.d.ts
CHANGED
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
|
package/esm/index.js
CHANGED
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
|
package/esm/vp8.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse VP8 frame tag.
|
|
3
|
+
*
|
|
4
|
+
* https://datatracker.ietf.org/doc/html/rfc6386#section-19.1
|
|
5
|
+
*
|
|
6
|
+
* @param data Frame data
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseFrameTag(data: Uint8Array): {
|
|
10
|
+
version: number;
|
|
11
|
+
show_frame: boolean;
|
|
12
|
+
first_part_size: number;
|
|
13
|
+
} & ({
|
|
14
|
+
key_frame: true;
|
|
15
|
+
width: number;
|
|
16
|
+
horizontal_scale: number;
|
|
17
|
+
height: number;
|
|
18
|
+
vertical_scale: number;
|
|
19
|
+
} | {
|
|
20
|
+
key_frame: false;
|
|
21
|
+
width?: undefined;
|
|
22
|
+
horizontal_scale?: undefined;
|
|
23
|
+
height?: undefined;
|
|
24
|
+
vertical_scale?: undefined;
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=vp8.d.ts.map
|
package/esm/vp8.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vp8.d.ts","sourceRoot":"","sources":["../src/vp8.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CAC3B,GAAG,CACE;IACI,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CAC1B,GACD;IACI,SAAS,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,cAAc,CAAC,EAAE,SAAS,CAAC;CAC9B,CACN,CAoCA"}
|
package/esm/vp8.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse VP8 frame tag.
|
|
3
|
+
*
|
|
4
|
+
* https://datatracker.ietf.org/doc/html/rfc6386#section-19.1
|
|
5
|
+
*
|
|
6
|
+
* @param data Frame data
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export function parseFrameTag(data) {
|
|
10
|
+
const frame_tag = data[0] | (data[1] << 8) | (data[2] << 16);
|
|
11
|
+
const key_frame = (frame_tag & 0x01) === 0;
|
|
12
|
+
const version = (frame_tag >> 1) & 0x07;
|
|
13
|
+
const show_frame = ((frame_tag >> 4) & 0x01) === 1;
|
|
14
|
+
const first_part_size = frame_tag >> 5;
|
|
15
|
+
if (key_frame) {
|
|
16
|
+
if (data[3] !== 0x9d || data[4] !== 0x01 || data[5] !== 0x2a) {
|
|
17
|
+
throw new Error("Invalid VP8 frame");
|
|
18
|
+
}
|
|
19
|
+
const width = data[6] | ((data[7] & 0x3f) << 8);
|
|
20
|
+
const horizontal_scale = (data[7] & 0xc0) >> 6;
|
|
21
|
+
const height = data[8] | ((data[9] & 0x3f) << 8);
|
|
22
|
+
const vertical_scale = (data[9] & 0xc0) >> 6;
|
|
23
|
+
return {
|
|
24
|
+
key_frame,
|
|
25
|
+
version,
|
|
26
|
+
show_frame,
|
|
27
|
+
first_part_size,
|
|
28
|
+
width,
|
|
29
|
+
horizontal_scale,
|
|
30
|
+
height,
|
|
31
|
+
vertical_scale,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
key_frame,
|
|
36
|
+
version,
|
|
37
|
+
show_frame,
|
|
38
|
+
first_part_size,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=vp8.js.map
|
package/esm/vp8.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vp8.js","sourceRoot":"","sources":["../src/vp8.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAgB;IAoB1C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,SAAS,IAAI,CAAC,CAAC;IAEvC,IAAI,SAAS,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,OAAO;YACH,SAAS;YACT,OAAO;YACP,UAAU;YACV,eAAe;YACf,KAAK;YACL,gBAAgB;YAChB,MAAM;YACN,cAAc;SACjB,CAAC;IACN,CAAC;IAED,OAAO;QACH,SAAS;QACT,OAAO;QACP,UAAU;QACV,eAAe;KAClB,CAAC;AACN,CAAC"}
|
package/esm/vp9.d.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
declare class BitReader {
|
|
2
|
+
#private;
|
|
3
|
+
constructor(data: Uint8Array);
|
|
4
|
+
readBit(): number;
|
|
5
|
+
read(n: number): number;
|
|
6
|
+
}
|
|
7
|
+
export declare const FrameTypeKeyFrame = 0;
|
|
8
|
+
export declare const FrameTypeNonKeyFrame = 1;
|
|
9
|
+
export declare function parseFrameHeader(data: Uint8Array): {
|
|
10
|
+
Profile: number;
|
|
11
|
+
} & ({
|
|
12
|
+
show_existing_frame: true;
|
|
13
|
+
frame_to_show_map_idx: number;
|
|
14
|
+
frame_type?: undefined;
|
|
15
|
+
intra_only?: undefined;
|
|
16
|
+
color_config?: undefined;
|
|
17
|
+
frame_size?: undefined;
|
|
18
|
+
render_size?: undefined;
|
|
19
|
+
} | ({
|
|
20
|
+
show_existing_frame: false;
|
|
21
|
+
show_frame: boolean;
|
|
22
|
+
error_resilient_mode: number;
|
|
23
|
+
} & ({
|
|
24
|
+
frame_type: typeof FrameTypeKeyFrame;
|
|
25
|
+
color_config: ReturnType<typeof parseColorConfig>;
|
|
26
|
+
frame_size: ReturnType<typeof parseFrameSize>;
|
|
27
|
+
render_size: ReturnType<typeof parseRenderSize>;
|
|
28
|
+
intra_only?: undefined;
|
|
29
|
+
} | ({
|
|
30
|
+
frame_type: typeof FrameTypeNonKeyFrame;
|
|
31
|
+
reset_frame_context: number;
|
|
32
|
+
} & ({
|
|
33
|
+
intra_only: true;
|
|
34
|
+
color_config: ReturnType<typeof parseColorConfig>;
|
|
35
|
+
refresh_frame_flags: number;
|
|
36
|
+
frame_size: ReturnType<typeof parseFrameSize>;
|
|
37
|
+
render_size: ReturnType<typeof parseRenderSize>;
|
|
38
|
+
} | {
|
|
39
|
+
intra_only: false;
|
|
40
|
+
color_config?: undefined;
|
|
41
|
+
frame_size?: undefined;
|
|
42
|
+
render_size?: undefined;
|
|
43
|
+
})))));
|
|
44
|
+
/**
|
|
45
|
+
* 6.2.2 Color config syntax
|
|
46
|
+
*/
|
|
47
|
+
declare function parseColorConfig(reader: BitReader, Profile: number): {
|
|
48
|
+
BitDepth: number;
|
|
49
|
+
color_space: number;
|
|
50
|
+
color_range: number;
|
|
51
|
+
subsampling_x: number | undefined;
|
|
52
|
+
subsampling_y: number | undefined;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* 6.2.3 Frame size syntax
|
|
56
|
+
*/
|
|
57
|
+
declare function parseFrameSize(reader: BitReader): {
|
|
58
|
+
FrameWidth: number;
|
|
59
|
+
FrameHeight: number;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* 6.2.4 Render size syntax
|
|
63
|
+
*/
|
|
64
|
+
declare function parseRenderSize(reader: BitReader, FrameWidth: number, FrameHeight: number): {
|
|
65
|
+
render_and_frame_size_different: true;
|
|
66
|
+
RenderWidth: number;
|
|
67
|
+
RenderHeight: number;
|
|
68
|
+
} | {
|
|
69
|
+
render_and_frame_size_different: false;
|
|
70
|
+
RenderWidth: number;
|
|
71
|
+
RenderHeight: number;
|
|
72
|
+
};
|
|
73
|
+
export {};
|
|
74
|
+
//# sourceMappingURL=vp9.d.ts.map
|
package/esm/vp9.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vp9.d.ts","sourceRoot":"","sources":["../src/vp9.ts"],"names":[],"mappings":"AAAA,cAAM,SAAS;;gBAQC,IAAI,EAAE,UAAU;IAkB5B,OAAO,IAAI,MAAM;IAOjB,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAY1B;AAED,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,CACpE;IACI,mBAAmB,EAAE,IAAI,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B,GACD,CAAC;IACG,mBAAmB,EAAE,KAAK,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;CAChC,GAAG,CACE;IACI,UAAU,EAAE,OAAO,iBAAiB,CAAC;IACrC,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC9C,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,SAAS,CAAC;CAC1B,GACD,CAAC;IACG,UAAU,EAAE,OAAO,oBAAoB,CAAC;IACxC,mBAAmB,EAAE,MAAM,CAAC;CAC/B,GAAG,CACE;IACI,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAClD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC9C,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;CACnD,GACD;IACI,UAAU,EAAE,KAAK,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;CAC3B,CACN,CAAC,CACP,CAAC,CACP,CA6HA;AAkBD;;GAEG;AACH,iBAAS,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM;;;;;;EAwC3D;AAED;;GAEG;AACH,iBAAS,cAAc,CAAC,MAAM,EAAE,SAAS;;;EAUxC;AAED;;GAEG;AACH,iBAAS,eAAe,CACpB,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM;;;;;;;;EAqBtB"}
|
package/esm/vp9.js
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
class BitReader {
|
|
2
|
+
#data;
|
|
3
|
+
#byteOffset = 0;
|
|
4
|
+
// Trigger load on first read
|
|
5
|
+
#bitOffset = 8;
|
|
6
|
+
#cache;
|
|
7
|
+
constructor(data) {
|
|
8
|
+
this.#data = data;
|
|
9
|
+
}
|
|
10
|
+
#load() {
|
|
11
|
+
if (this.#bitOffset !== 8) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
if (this.#byteOffset >= this.#data.length) {
|
|
15
|
+
throw new Error("Out of data");
|
|
16
|
+
}
|
|
17
|
+
this.#cache = this.#data[this.#byteOffset];
|
|
18
|
+
this.#byteOffset += 1;
|
|
19
|
+
this.#bitOffset = 0;
|
|
20
|
+
}
|
|
21
|
+
readBit() {
|
|
22
|
+
this.#load();
|
|
23
|
+
const value = (this.#cache >> (7 - this.#bitOffset)) & 0x01;
|
|
24
|
+
this.#bitOffset += 1;
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
read(n) {
|
|
28
|
+
if (n <= 0 || n > 32) {
|
|
29
|
+
throw new Error("Invalid length");
|
|
30
|
+
}
|
|
31
|
+
let value = 0;
|
|
32
|
+
for (let i = 0; i < n; i += 1) {
|
|
33
|
+
value = (value << 1) | this.readBit();
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export const FrameTypeKeyFrame = 0;
|
|
39
|
+
export const FrameTypeNonKeyFrame = 1;
|
|
40
|
+
export function parseFrameHeader(data) {
|
|
41
|
+
const reader = new BitReader(data);
|
|
42
|
+
const frame_marker = reader.read(2);
|
|
43
|
+
if (frame_marker !== 2) {
|
|
44
|
+
throw new Error("Invalid VP9 frame");
|
|
45
|
+
}
|
|
46
|
+
const profile_low_bit = reader.readBit();
|
|
47
|
+
const profile_high_bit = reader.readBit();
|
|
48
|
+
const Profile = (profile_high_bit << 1) | profile_low_bit;
|
|
49
|
+
if (Profile === 3) {
|
|
50
|
+
reader.readBit();
|
|
51
|
+
}
|
|
52
|
+
const show_existing_frame = !!reader.readBit();
|
|
53
|
+
if (show_existing_frame) {
|
|
54
|
+
const frame_to_show_map_idx = reader.read(3);
|
|
55
|
+
return {
|
|
56
|
+
Profile,
|
|
57
|
+
show_existing_frame,
|
|
58
|
+
frame_to_show_map_idx,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
const frame_type = reader.readBit();
|
|
62
|
+
const show_frame = !!reader.readBit();
|
|
63
|
+
const error_resilient_mode = reader.readBit();
|
|
64
|
+
if (frame_type === FrameTypeKeyFrame) {
|
|
65
|
+
parseFrameSyncCode(reader);
|
|
66
|
+
const color_config = parseColorConfig(reader, Profile);
|
|
67
|
+
const frame_size = parseFrameSize(reader);
|
|
68
|
+
const render_size = parseRenderSize(reader, frame_size.FrameWidth, frame_size.FrameHeight);
|
|
69
|
+
return {
|
|
70
|
+
Profile,
|
|
71
|
+
show_existing_frame,
|
|
72
|
+
frame_type: frame_type,
|
|
73
|
+
show_frame,
|
|
74
|
+
error_resilient_mode,
|
|
75
|
+
color_config,
|
|
76
|
+
frame_size,
|
|
77
|
+
render_size,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
let intra_only;
|
|
82
|
+
if (!show_frame) {
|
|
83
|
+
intra_only = !!reader.readBit();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
intra_only = false;
|
|
87
|
+
}
|
|
88
|
+
let reset_frame_context;
|
|
89
|
+
if (!error_resilient_mode) {
|
|
90
|
+
reset_frame_context = reader.read(2);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
reset_frame_context = 0;
|
|
94
|
+
}
|
|
95
|
+
if (intra_only) {
|
|
96
|
+
parseFrameSyncCode(reader);
|
|
97
|
+
let color_config;
|
|
98
|
+
if (Profile > 0) {
|
|
99
|
+
color_config = parseColorConfig(reader, Profile);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
color_config = {
|
|
103
|
+
BitDepth: 8,
|
|
104
|
+
color_space: ColorSpaceCsBt601,
|
|
105
|
+
subsampling_x: 1,
|
|
106
|
+
subsampling_y: 1,
|
|
107
|
+
color_range: 0, // ????
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const refresh_frame_flags = reader.read(8);
|
|
111
|
+
const frame_size = parseFrameSize(reader);
|
|
112
|
+
const render_size = parseRenderSize(reader, frame_size.FrameWidth, frame_size.FrameHeight);
|
|
113
|
+
return {
|
|
114
|
+
Profile,
|
|
115
|
+
show_existing_frame,
|
|
116
|
+
frame_type,
|
|
117
|
+
show_frame,
|
|
118
|
+
error_resilient_mode,
|
|
119
|
+
intra_only,
|
|
120
|
+
reset_frame_context,
|
|
121
|
+
color_config,
|
|
122
|
+
refresh_frame_flags,
|
|
123
|
+
frame_size,
|
|
124
|
+
render_size,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return {
|
|
129
|
+
Profile,
|
|
130
|
+
show_existing_frame,
|
|
131
|
+
frame_type,
|
|
132
|
+
show_frame,
|
|
133
|
+
error_resilient_mode,
|
|
134
|
+
intra_only,
|
|
135
|
+
reset_frame_context,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const ColorSpaceCsBt601 = 1;
|
|
141
|
+
const ColorSpaceCsRgb = 7;
|
|
142
|
+
/**
|
|
143
|
+
* 6.2.1 Frame sync syntax
|
|
144
|
+
*/
|
|
145
|
+
function parseFrameSyncCode(reader) {
|
|
146
|
+
if (reader.read(8) !== 0x49 ||
|
|
147
|
+
reader.read(8) !== 0x83 ||
|
|
148
|
+
reader.read(8) !== 0x42) {
|
|
149
|
+
throw new Error("Invalid VP9 frame");
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* 6.2.2 Color config syntax
|
|
154
|
+
*/
|
|
155
|
+
function parseColorConfig(reader, Profile) {
|
|
156
|
+
let BitDepth;
|
|
157
|
+
if (Profile >= 2) {
|
|
158
|
+
const ten_or_twelve_bit = reader.readBit();
|
|
159
|
+
BitDepth = ten_or_twelve_bit ? 12 : 10;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
BitDepth = 8;
|
|
163
|
+
}
|
|
164
|
+
const color_space = reader.read(3);
|
|
165
|
+
let color_range;
|
|
166
|
+
let subsampling_x;
|
|
167
|
+
let subsampling_y;
|
|
168
|
+
if (color_space !== ColorSpaceCsRgb) {
|
|
169
|
+
color_range = reader.readBit();
|
|
170
|
+
if (Profile === 1 || Profile === 3) {
|
|
171
|
+
subsampling_x = reader.readBit();
|
|
172
|
+
subsampling_y = reader.readBit();
|
|
173
|
+
reader.readBit();
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
subsampling_x = 1;
|
|
177
|
+
subsampling_y = 1;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
color_range = 1;
|
|
182
|
+
if (Profile === 1 || Profile === 3) {
|
|
183
|
+
subsampling_x = 0;
|
|
184
|
+
subsampling_y = 0;
|
|
185
|
+
reader.readBit();
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
BitDepth,
|
|
190
|
+
color_space,
|
|
191
|
+
color_range,
|
|
192
|
+
subsampling_x,
|
|
193
|
+
subsampling_y,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* 6.2.3 Frame size syntax
|
|
198
|
+
*/
|
|
199
|
+
function parseFrameSize(reader) {
|
|
200
|
+
const frame_width_minus_1 = reader.read(16);
|
|
201
|
+
const frame_height_minus_1 = reader.read(16);
|
|
202
|
+
const FrameWidth = frame_width_minus_1 + 1;
|
|
203
|
+
const FrameHeight = frame_height_minus_1 + 1;
|
|
204
|
+
return {
|
|
205
|
+
FrameWidth,
|
|
206
|
+
FrameHeight,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* 6.2.4 Render size syntax
|
|
211
|
+
*/
|
|
212
|
+
function parseRenderSize(reader, FrameWidth, FrameHeight) {
|
|
213
|
+
const render_and_frame_size_different = !!reader.readBit();
|
|
214
|
+
if (render_and_frame_size_different) {
|
|
215
|
+
const render_width_minus_1 = reader.read(16);
|
|
216
|
+
const render_height_minus_1 = reader.read(16);
|
|
217
|
+
const RenderWidth = render_width_minus_1 + 1;
|
|
218
|
+
const RenderHeight = render_height_minus_1 + 1;
|
|
219
|
+
return {
|
|
220
|
+
render_and_frame_size_different,
|
|
221
|
+
RenderWidth,
|
|
222
|
+
RenderHeight,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
return {
|
|
227
|
+
render_and_frame_size_different,
|
|
228
|
+
RenderWidth: FrameWidth,
|
|
229
|
+
RenderHeight: FrameHeight,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=vp9.js.map
|
package/esm/vp9.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vp9.js","sourceRoot":"","sources":["../src/vp9.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yume-chan/media-codec",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.1",
|
|
4
4
|
"description": "H.264, H.265 and AV1 configuration packet parser",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript"
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"types": "esm/index.d.ts",
|
|
26
26
|
"sideEffects": false,
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@yume-chan/no-data-view": "3.0.0-beta.
|
|
28
|
+
"@yume-chan/no-data-view": "3.0.0-beta.1"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@types/node": "^26.
|
|
32
|
-
"prettier": "^3.
|
|
31
|
+
"@types/node": "^26.1.1",
|
|
32
|
+
"prettier": "^3.9.6",
|
|
33
33
|
"typescript": "^6.0.3",
|
|
34
|
-
"@yume-chan/eslint-config": "^1.0.0",
|
|
35
34
|
"@yume-chan/test-runner": "^1.0.0",
|
|
35
|
+
"@yume-chan/eslint-config": "^1.0.0",
|
|
36
36
|
"@yume-chan/tsconfig": "^1.0.0"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
package/src/av1.ts
CHANGED
|
@@ -352,8 +352,7 @@ export class Av1 extends BitReader {
|
|
|
352
352
|
}
|
|
353
353
|
|
|
354
354
|
let sequence_header_obu:
|
|
355
|
-
|
|
356
|
-
| undefined;
|
|
355
|
+
ReturnType<Av1["sequenceHeaderObu"]> | undefined;
|
|
357
356
|
switch (obu_header.obu_type) {
|
|
358
357
|
case Av1.ObuType.SequenceHeader:
|
|
359
358
|
sequence_header_obu = this.sequenceHeaderObu();
|
|
@@ -392,8 +391,7 @@ export class Av1 extends BitReader {
|
|
|
392
391
|
this.f1();
|
|
393
392
|
|
|
394
393
|
let obu_extension_header:
|
|
395
|
-
|
|
396
|
-
| undefined;
|
|
394
|
+
ReturnType<Av1["obuExtensionHeader"]> | undefined;
|
|
397
395
|
if (obu_extension_flag) {
|
|
398
396
|
obu_extension_header = this.obuExtensionHeader();
|
|
399
397
|
}
|
|
@@ -433,8 +431,7 @@ export class Av1 extends BitReader {
|
|
|
433
431
|
const decoder_model_present_for_this_op: boolean[] = [];
|
|
434
432
|
const initial_display_delay_present_for_this_op: boolean[] = [];
|
|
435
433
|
let operating_parameters_info:
|
|
436
|
-
|
|
437
|
-
| undefined;
|
|
434
|
+
ReturnType<Av1["operatingParametersInfo"]>[] | undefined;
|
|
438
435
|
let initial_display_delay_minus_1: number[] | undefined;
|
|
439
436
|
if (reduced_still_picture_header) {
|
|
440
437
|
operating_point_idc[0] = 0;
|
package/src/index.ts
CHANGED
package/src/vp8.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse VP8 frame tag.
|
|
3
|
+
*
|
|
4
|
+
* https://datatracker.ietf.org/doc/html/rfc6386#section-19.1
|
|
5
|
+
*
|
|
6
|
+
* @param data Frame data
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
export function parseFrameTag(data: Uint8Array): {
|
|
10
|
+
version: number;
|
|
11
|
+
show_frame: boolean;
|
|
12
|
+
first_part_size: number;
|
|
13
|
+
} & (
|
|
14
|
+
| {
|
|
15
|
+
key_frame: true;
|
|
16
|
+
width: number;
|
|
17
|
+
horizontal_scale: number;
|
|
18
|
+
height: number;
|
|
19
|
+
vertical_scale: number;
|
|
20
|
+
}
|
|
21
|
+
| {
|
|
22
|
+
key_frame: false;
|
|
23
|
+
width?: undefined;
|
|
24
|
+
horizontal_scale?: undefined;
|
|
25
|
+
height?: undefined;
|
|
26
|
+
vertical_scale?: undefined;
|
|
27
|
+
}
|
|
28
|
+
) {
|
|
29
|
+
const frame_tag = data[0]! | (data[1]! << 8) | (data[2]! << 16);
|
|
30
|
+
|
|
31
|
+
const key_frame = (frame_tag & 0x01) === 0;
|
|
32
|
+
const version = (frame_tag >> 1) & 0x07;
|
|
33
|
+
const show_frame = ((frame_tag >> 4) & 0x01) === 1;
|
|
34
|
+
const first_part_size = frame_tag >> 5;
|
|
35
|
+
|
|
36
|
+
if (key_frame) {
|
|
37
|
+
if (data[3] !== 0x9d || data[4] !== 0x01 || data[5] !== 0x2a) {
|
|
38
|
+
throw new Error("Invalid VP8 frame");
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const width = data[6]! | ((data[7]! & 0x3f) << 8);
|
|
42
|
+
const horizontal_scale = (data[7]! & 0xc0) >> 6;
|
|
43
|
+
const height = data[8]! | ((data[9]! & 0x3f) << 8);
|
|
44
|
+
const vertical_scale = (data[9]! & 0xc0) >> 6;
|
|
45
|
+
|
|
46
|
+
return {
|
|
47
|
+
key_frame,
|
|
48
|
+
version,
|
|
49
|
+
show_frame,
|
|
50
|
+
first_part_size,
|
|
51
|
+
width,
|
|
52
|
+
horizontal_scale,
|
|
53
|
+
height,
|
|
54
|
+
vertical_scale,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
key_frame,
|
|
60
|
+
version,
|
|
61
|
+
show_frame,
|
|
62
|
+
first_part_size,
|
|
63
|
+
};
|
|
64
|
+
}
|
package/src/vp9.ts
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
class BitReader {
|
|
2
|
+
#data: Uint8Array;
|
|
3
|
+
|
|
4
|
+
#byteOffset = 0;
|
|
5
|
+
// Trigger load on first read
|
|
6
|
+
#bitOffset = 8;
|
|
7
|
+
#cache!: number;
|
|
8
|
+
|
|
9
|
+
constructor(data: Uint8Array) {
|
|
10
|
+
this.#data = data;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
#load() {
|
|
14
|
+
if (this.#bitOffset !== 8) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
if (this.#byteOffset >= this.#data.length) {
|
|
19
|
+
throw new Error("Out of data");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
this.#cache = this.#data[this.#byteOffset]!;
|
|
23
|
+
this.#byteOffset += 1;
|
|
24
|
+
this.#bitOffset = 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
readBit(): number {
|
|
28
|
+
this.#load();
|
|
29
|
+
const value = (this.#cache >> (7 - this.#bitOffset)) & 0x01;
|
|
30
|
+
this.#bitOffset += 1;
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
read(n: number): number {
|
|
35
|
+
if (n <= 0 || n > 32) {
|
|
36
|
+
throw new Error("Invalid length");
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
let value = 0;
|
|
40
|
+
for (let i = 0; i < n; i += 1) {
|
|
41
|
+
value = (value << 1) | this.readBit();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export const FrameTypeKeyFrame = 0;
|
|
49
|
+
export const FrameTypeNonKeyFrame = 1;
|
|
50
|
+
|
|
51
|
+
export function parseFrameHeader(data: Uint8Array): { Profile: number } & (
|
|
52
|
+
| {
|
|
53
|
+
show_existing_frame: true;
|
|
54
|
+
frame_to_show_map_idx: number;
|
|
55
|
+
frame_type?: undefined;
|
|
56
|
+
intra_only?: undefined;
|
|
57
|
+
color_config?: undefined;
|
|
58
|
+
frame_size?: undefined;
|
|
59
|
+
render_size?: undefined;
|
|
60
|
+
}
|
|
61
|
+
| ({
|
|
62
|
+
show_existing_frame: false;
|
|
63
|
+
show_frame: boolean;
|
|
64
|
+
error_resilient_mode: number;
|
|
65
|
+
} & (
|
|
66
|
+
| {
|
|
67
|
+
frame_type: typeof FrameTypeKeyFrame;
|
|
68
|
+
color_config: ReturnType<typeof parseColorConfig>;
|
|
69
|
+
frame_size: ReturnType<typeof parseFrameSize>;
|
|
70
|
+
render_size: ReturnType<typeof parseRenderSize>;
|
|
71
|
+
intra_only?: undefined;
|
|
72
|
+
}
|
|
73
|
+
| ({
|
|
74
|
+
frame_type: typeof FrameTypeNonKeyFrame;
|
|
75
|
+
reset_frame_context: number;
|
|
76
|
+
} & (
|
|
77
|
+
| {
|
|
78
|
+
intra_only: true;
|
|
79
|
+
color_config: ReturnType<typeof parseColorConfig>;
|
|
80
|
+
refresh_frame_flags: number;
|
|
81
|
+
frame_size: ReturnType<typeof parseFrameSize>;
|
|
82
|
+
render_size: ReturnType<typeof parseRenderSize>;
|
|
83
|
+
}
|
|
84
|
+
| {
|
|
85
|
+
intra_only: false;
|
|
86
|
+
color_config?: undefined;
|
|
87
|
+
frame_size?: undefined;
|
|
88
|
+
render_size?: undefined;
|
|
89
|
+
}
|
|
90
|
+
))
|
|
91
|
+
))
|
|
92
|
+
) {
|
|
93
|
+
const reader = new BitReader(data);
|
|
94
|
+
|
|
95
|
+
const frame_marker = reader.read(2);
|
|
96
|
+
if (frame_marker !== 2) {
|
|
97
|
+
throw new Error("Invalid VP9 frame");
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const profile_low_bit = reader.readBit();
|
|
101
|
+
const profile_high_bit = reader.readBit();
|
|
102
|
+
const Profile = (profile_high_bit << 1) | profile_low_bit;
|
|
103
|
+
if (Profile === 3) {
|
|
104
|
+
reader.readBit();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const show_existing_frame = !!reader.readBit();
|
|
108
|
+
if (show_existing_frame) {
|
|
109
|
+
const frame_to_show_map_idx = reader.read(3);
|
|
110
|
+
return {
|
|
111
|
+
Profile,
|
|
112
|
+
|
|
113
|
+
show_existing_frame,
|
|
114
|
+
frame_to_show_map_idx,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const frame_type = reader.readBit() as
|
|
119
|
+
typeof FrameTypeKeyFrame | typeof FrameTypeNonKeyFrame;
|
|
120
|
+
const show_frame = !!reader.readBit();
|
|
121
|
+
const error_resilient_mode = reader.readBit();
|
|
122
|
+
|
|
123
|
+
if (frame_type === FrameTypeKeyFrame) {
|
|
124
|
+
parseFrameSyncCode(reader);
|
|
125
|
+
|
|
126
|
+
const color_config = parseColorConfig(reader, Profile);
|
|
127
|
+
const frame_size = parseFrameSize(reader);
|
|
128
|
+
const render_size = parseRenderSize(
|
|
129
|
+
reader,
|
|
130
|
+
frame_size.FrameWidth,
|
|
131
|
+
frame_size.FrameHeight,
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
return {
|
|
135
|
+
Profile,
|
|
136
|
+
|
|
137
|
+
show_existing_frame,
|
|
138
|
+
|
|
139
|
+
frame_type: frame_type,
|
|
140
|
+
show_frame,
|
|
141
|
+
error_resilient_mode,
|
|
142
|
+
|
|
143
|
+
color_config,
|
|
144
|
+
frame_size,
|
|
145
|
+
render_size,
|
|
146
|
+
};
|
|
147
|
+
} else {
|
|
148
|
+
let intra_only: boolean;
|
|
149
|
+
if (!show_frame) {
|
|
150
|
+
intra_only = !!reader.readBit();
|
|
151
|
+
} else {
|
|
152
|
+
intra_only = false;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
let reset_frame_context: number;
|
|
156
|
+
if (!error_resilient_mode) {
|
|
157
|
+
reset_frame_context = reader.read(2);
|
|
158
|
+
} else {
|
|
159
|
+
reset_frame_context = 0;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (intra_only) {
|
|
163
|
+
parseFrameSyncCode(reader);
|
|
164
|
+
|
|
165
|
+
let color_config: ReturnType<typeof parseColorConfig>;
|
|
166
|
+
if (Profile > 0) {
|
|
167
|
+
color_config = parseColorConfig(reader, Profile);
|
|
168
|
+
} else {
|
|
169
|
+
color_config = {
|
|
170
|
+
BitDepth: 8,
|
|
171
|
+
color_space: ColorSpaceCsBt601,
|
|
172
|
+
subsampling_x: 1,
|
|
173
|
+
subsampling_y: 1,
|
|
174
|
+
color_range: 0, // ????
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const refresh_frame_flags = reader.read(8);
|
|
179
|
+
|
|
180
|
+
const frame_size = parseFrameSize(reader);
|
|
181
|
+
const render_size = parseRenderSize(
|
|
182
|
+
reader,
|
|
183
|
+
frame_size.FrameWidth,
|
|
184
|
+
frame_size.FrameHeight,
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
return {
|
|
188
|
+
Profile,
|
|
189
|
+
show_existing_frame,
|
|
190
|
+
|
|
191
|
+
frame_type,
|
|
192
|
+
show_frame,
|
|
193
|
+
error_resilient_mode,
|
|
194
|
+
|
|
195
|
+
intra_only,
|
|
196
|
+
reset_frame_context,
|
|
197
|
+
|
|
198
|
+
color_config,
|
|
199
|
+
refresh_frame_flags,
|
|
200
|
+
frame_size,
|
|
201
|
+
render_size,
|
|
202
|
+
};
|
|
203
|
+
} else {
|
|
204
|
+
return {
|
|
205
|
+
Profile,
|
|
206
|
+
show_existing_frame,
|
|
207
|
+
|
|
208
|
+
frame_type,
|
|
209
|
+
show_frame,
|
|
210
|
+
error_resilient_mode,
|
|
211
|
+
|
|
212
|
+
intra_only,
|
|
213
|
+
reset_frame_context,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
const ColorSpaceCsBt601 = 1;
|
|
220
|
+
const ColorSpaceCsRgb = 7;
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* 6.2.1 Frame sync syntax
|
|
224
|
+
*/
|
|
225
|
+
function parseFrameSyncCode(reader: BitReader) {
|
|
226
|
+
if (
|
|
227
|
+
reader.read(8) !== 0x49 ||
|
|
228
|
+
reader.read(8) !== 0x83 ||
|
|
229
|
+
reader.read(8) !== 0x42
|
|
230
|
+
) {
|
|
231
|
+
throw new Error("Invalid VP9 frame");
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* 6.2.2 Color config syntax
|
|
237
|
+
*/
|
|
238
|
+
function parseColorConfig(reader: BitReader, Profile: number) {
|
|
239
|
+
let BitDepth: number;
|
|
240
|
+
if (Profile >= 2) {
|
|
241
|
+
const ten_or_twelve_bit = reader.readBit();
|
|
242
|
+
BitDepth = ten_or_twelve_bit ? 12 : 10;
|
|
243
|
+
} else {
|
|
244
|
+
BitDepth = 8;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
const color_space = reader.read(3);
|
|
248
|
+
|
|
249
|
+
let color_range: number;
|
|
250
|
+
let subsampling_x: number | undefined;
|
|
251
|
+
let subsampling_y: number | undefined;
|
|
252
|
+
if (color_space !== ColorSpaceCsRgb) {
|
|
253
|
+
color_range = reader.readBit();
|
|
254
|
+
if (Profile === 1 || Profile === 3) {
|
|
255
|
+
subsampling_x = reader.readBit();
|
|
256
|
+
subsampling_y = reader.readBit();
|
|
257
|
+
reader.readBit();
|
|
258
|
+
} else {
|
|
259
|
+
subsampling_x = 1;
|
|
260
|
+
subsampling_y = 1;
|
|
261
|
+
}
|
|
262
|
+
} else {
|
|
263
|
+
color_range = 1;
|
|
264
|
+
if (Profile === 1 || Profile === 3) {
|
|
265
|
+
subsampling_x = 0;
|
|
266
|
+
subsampling_y = 0;
|
|
267
|
+
reader.readBit();
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return {
|
|
272
|
+
BitDepth,
|
|
273
|
+
color_space,
|
|
274
|
+
color_range,
|
|
275
|
+
subsampling_x,
|
|
276
|
+
subsampling_y,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* 6.2.3 Frame size syntax
|
|
282
|
+
*/
|
|
283
|
+
function parseFrameSize(reader: BitReader) {
|
|
284
|
+
const frame_width_minus_1 = reader.read(16);
|
|
285
|
+
const frame_height_minus_1 = reader.read(16);
|
|
286
|
+
const FrameWidth = frame_width_minus_1 + 1;
|
|
287
|
+
const FrameHeight = frame_height_minus_1 + 1;
|
|
288
|
+
|
|
289
|
+
return {
|
|
290
|
+
FrameWidth,
|
|
291
|
+
FrameHeight,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* 6.2.4 Render size syntax
|
|
297
|
+
*/
|
|
298
|
+
function parseRenderSize(
|
|
299
|
+
reader: BitReader,
|
|
300
|
+
FrameWidth: number,
|
|
301
|
+
FrameHeight: number,
|
|
302
|
+
) {
|
|
303
|
+
const render_and_frame_size_different = !!reader.readBit();
|
|
304
|
+
if (render_and_frame_size_different) {
|
|
305
|
+
const render_width_minus_1 = reader.read(16);
|
|
306
|
+
const render_height_minus_1 = reader.read(16);
|
|
307
|
+
const RenderWidth = render_width_minus_1 + 1;
|
|
308
|
+
const RenderHeight = render_height_minus_1 + 1;
|
|
309
|
+
|
|
310
|
+
return {
|
|
311
|
+
render_and_frame_size_different,
|
|
312
|
+
RenderWidth,
|
|
313
|
+
RenderHeight,
|
|
314
|
+
};
|
|
315
|
+
} else {
|
|
316
|
+
return {
|
|
317
|
+
render_and_frame_size_different,
|
|
318
|
+
RenderWidth: FrameWidth,
|
|
319
|
+
RenderHeight: FrameHeight,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
}
|