ogg-helpers.js 837 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.getPages = void 0;
  6. var _byteHelpers = require("./byte-helpers");
  7. var SYNC_WORD = (0, _byteHelpers.toUint8)([0x4f, 0x67, 0x67, 0x53]);
  8. var getPages = function getPages(bytes, start, end) {
  9. if (end === void 0) {
  10. end = Infinity;
  11. }
  12. bytes = (0, _byteHelpers.toUint8)(bytes);
  13. var pages = [];
  14. var i = 0;
  15. while (i < bytes.length && pages.length < end) {
  16. // we are unsynced,
  17. // find the next syncword
  18. if (!(0, _byteHelpers.bytesMatch)(bytes, SYNC_WORD, {
  19. offset: i
  20. })) {
  21. i++;
  22. continue;
  23. }
  24. var segmentLength = bytes[i + 27];
  25. pages.push(bytes.subarray(i, i + 28 + segmentLength));
  26. i += pages[pages.length - 1].length;
  27. }
  28. return pages.slice(start, end);
  29. };
  30. exports.getPages = getPages;