@remotion/media-parser 4.0.243 → 4.0.245

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.
Files changed (89) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/boxes/iso-base-media/ftyp.js +2 -2
  3. package/dist/boxes/iso-base-media/mdat/mdat.js +17 -5
  4. package/dist/boxes/iso-base-media/meta/hdlr.js +1 -1
  5. package/dist/boxes/iso-base-media/meta/ilst.js +1 -1
  6. package/dist/boxes/iso-base-media/parse-icc-profile.js +12 -12
  7. package/dist/boxes/iso-base-media/process-box.js +1 -4
  8. package/dist/boxes/iso-base-media/stsd/colr.js +1 -1
  9. package/dist/boxes/iso-base-media/stsd/keys.js +1 -1
  10. package/dist/boxes/riff/expect-riff-box.js +1 -1
  11. package/dist/boxes/riff/is-movi.js +1 -1
  12. package/dist/boxes/riff/parse-box.js +2 -2
  13. package/dist/boxes/riff/parse-isft.js +1 -1
  14. package/dist/boxes/riff/parse-list-box.js +1 -1
  15. package/dist/boxes/riff/parse-movi.js +1 -1
  16. package/dist/boxes/riff/parse-strf.js +1 -1
  17. package/dist/boxes/riff/parse-strh.js +4 -2
  18. package/dist/boxes/transport-stream/adts-header.d.ts +1 -1
  19. package/dist/boxes/transport-stream/discard-rest-of-packet.d.ts +1 -1
  20. package/dist/boxes/webm/description.js +1 -1
  21. package/dist/boxes/webm/ebml.d.ts +1 -1
  22. package/dist/boxes/webm/make-header.d.ts +3 -3
  23. package/dist/boxes/webm/parse-ebml.js +1 -1
  24. package/dist/boxes/webm/segments/all-segments.d.ts +32 -0
  25. package/dist/boxes/webm/segments/all-segments.js +22 -2
  26. package/dist/buffer-iterator.d.ts +2 -2
  27. package/dist/buffer-iterator.js +8 -2
  28. package/dist/create/iso-base-media/codec-specific/avc1.d.ts +1 -1
  29. package/dist/create/iso-base-media/codec-specific/create-codec-specific-data.d.ts +1 -1
  30. package/dist/create/iso-base-media/codec-specific/mp4a.d.ts +1 -1
  31. package/dist/create/iso-base-media/create-colr.d.ts +1 -1
  32. package/dist/create/iso-base-media/create-ftyp.d.ts +2 -2
  33. package/dist/create/iso-base-media/create-ilst.d.ts +1 -1
  34. package/dist/create/iso-base-media/create-mdia.d.ts +1 -1
  35. package/dist/create/iso-base-media/create-moov.d.ts +1 -1
  36. package/dist/create/iso-base-media/create-mvhd.d.ts +1 -1
  37. package/dist/create/iso-base-media/create-trak.d.ts +1 -1
  38. package/dist/create/iso-base-media/create-udta.d.ts +1 -1
  39. package/dist/create/iso-base-media/create-url.d.ts +1 -1
  40. package/dist/create/iso-base-media/ilst/create-cmt.d.ts +1 -1
  41. package/dist/create/iso-base-media/ilst/create-too.d.ts +1 -1
  42. package/dist/create/iso-base-media/mdia/create-mdhd.d.ts +1 -1
  43. package/dist/create/iso-base-media/mp4-header.d.ts +1 -1
  44. package/dist/create/iso-base-media/primitives.d.ts +13 -13
  45. package/dist/create/iso-base-media/serialize-track.d.ts +1 -1
  46. package/dist/create/iso-base-media/trak/create-tkhd.d.ts +2 -2
  47. package/dist/create/iso-base-media/trak/mdia/create-minf.d.ts +1 -1
  48. package/dist/create/iso-base-media/trak/mdia/minf/create-dinf.d.ts +1 -1
  49. package/dist/create/iso-base-media/trak/mdia/minf/create-smhd.d.ts +1 -1
  50. package/dist/create/iso-base-media/trak/mdia/minf/create-stbl.d.ts +1 -1
  51. package/dist/create/iso-base-media/trak/mdia/minf/create-vmhd.d.ts +1 -1
  52. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-ctts.d.ts +1 -1
  53. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stco.d.ts +1 -1
  54. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsc.d.ts +1 -1
  55. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stss.d.ts +1 -1
  56. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stsz.d.ts +1 -1
  57. package/dist/create/iso-base-media/trak/mdia/minf/stbl/create-stts.d.ts +1 -1
  58. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avc1.d.ts +1 -1
  59. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-avcc.d.ts +1 -1
  60. package/dist/create/iso-base-media/trak/mdia/minf/stbl/stsd/create-pasp.d.ts +1 -1
  61. package/dist/create/iso-base-media/udta/create-meta.d.ts +1 -1
  62. package/dist/create/iso-base-media/udta/meta/create-hdlr.d.ts +1 -1
  63. package/dist/create/matroska/cluster-segment.d.ts +1 -1
  64. package/dist/emit-available-info.js +1 -11
  65. package/dist/esm/index.mjs +69 -53
  66. package/dist/esm/web-fs.mjs +9 -8
  67. package/dist/get-audio-codec.d.ts +1 -1
  68. package/dist/version.d.ts +1 -1
  69. package/dist/version.js +1 -1
  70. package/dist/writers/web-fs.js +9 -8
  71. package/package.json +3 -3
  72. package/dist/boxes/avc/codec-private.d.ts +0 -2
  73. package/dist/boxes/avc/codec-private.js +0 -28
  74. package/dist/errors/detect-file-type.d.ts +0 -1
  75. package/dist/errors/detect-file-type.js +0 -88
  76. package/dist/errors/file-types.d.ts +0 -1
  77. package/dist/errors/file-types.js +0 -88
  78. package/dist/file-types/get-jpeg-dimensions.d.ts +0 -4
  79. package/dist/file-types/get-jpeg-dimensions.js +0 -32
  80. package/dist/file-types.d.ts +0 -1
  81. package/dist/file-types.js +0 -88
  82. package/dist/parser-context.d.ts +0 -10
  83. package/dist/parser-context.js +0 -2
  84. package/dist/probing/detect-file-type.d.ts +0 -1
  85. package/dist/probing/detect-file-type.js +0 -88
  86. package/dist/probing/get-jpeg-dimensions.d.ts +0 -4
  87. package/dist/probing/get-jpeg-dimensions.js +0 -32
  88. package/dist/state/tracks-and-samples.d.ts +0 -0
  89. package/dist/state/tracks-and-samples.js +0 -1
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectFileType = void 0;
4
- const make_header_1 = require("../boxes/webm/make-header");
5
- const matchesPattern = (pattern) => {
6
- return (data) => {
7
- return pattern.every((value, index) => data[index] === value);
8
- };
9
- };
10
- const isRiff = (data) => {
11
- const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
12
- return matchesPattern(riffPattern)(data.subarray(0, 4));
13
- };
14
- const isWebm = (data) => {
15
- return matchesPattern(make_header_1.webmPattern)(data.subarray(0, 4));
16
- };
17
- const isIsoBaseMedia = (data) => {
18
- const isoBaseMediaMp4Pattern = new TextEncoder().encode('ftyp');
19
- return matchesPattern(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
20
- };
21
- const isTransportStream = (data) => {
22
- return data[0] === 0x47 && data[188] === 0x47;
23
- };
24
- const isMp3 = (data) => {
25
- const mpegPattern = new Uint8Array([0xff, 0xf3, 0xe4, 0x64]);
26
- return matchesPattern(mpegPattern)(data.subarray(0, 4));
27
- };
28
- const isGif = (data) => {
29
- const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
30
- return matchesPattern(gifPattern)(data.subarray(0, 4));
31
- };
32
- const isPng = (data) => {
33
- const pngPattern = new Uint8Array([0x89, 0x50, 0x4e, 0x47]);
34
- return matchesPattern(pngPattern)(data.subarray(0, 4));
35
- };
36
- const isBmp = (data) => {
37
- const bmpPattern = new Uint8Array([0x42, 0x4d]);
38
- return matchesPattern(bmpPattern)(data.subarray(0, 2));
39
- };
40
- const isJpeg = (data) => {
41
- const jpegPattern = new Uint8Array([0xff, 0xd8]);
42
- const jpeg = matchesPattern(jpegPattern)(data.subarray(0, 2));
43
- if (!jpeg) {
44
- return false;
45
- }
46
- const width = data[6] * 256 + data[7];
47
- const height = data[8] * 256 + data[9];
48
- console.log(width, height);
49
- return true;
50
- };
51
- const isWebp = (data) => {
52
- const webpPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
53
- return matchesPattern(webpPattern)(data.subarray(0, 4));
54
- };
55
- const detectFileType = (data) => {
56
- if (isWebp(data)) {
57
- return 'webp';
58
- }
59
- if (isRiff(data)) {
60
- return 'riff';
61
- }
62
- if (isWebm(data)) {
63
- return 'webm';
64
- }
65
- if (isIsoBaseMedia(data)) {
66
- return 'iso-base-media';
67
- }
68
- if (isTransportStream(data)) {
69
- return 'transport-stream';
70
- }
71
- if (isMp3(data)) {
72
- return 'mp3';
73
- }
74
- if (isGif(data)) {
75
- return 'gif';
76
- }
77
- if (isPng(data)) {
78
- return 'png';
79
- }
80
- if (isBmp(data)) {
81
- return 'bmp';
82
- }
83
- if (isJpeg(data)) {
84
- return 'jpeg';
85
- }
86
- return 'unknown';
87
- };
88
- exports.detectFileType = detectFileType;
@@ -1 +0,0 @@
1
- export declare const detectFileType: (data: Uint8Array) => "mp3" | "unknown" | "webm" | "transport-stream" | "iso-base-media" | "riff" | "gif" | "bmp" | "jpeg" | "png" | "webp";
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectFileType = void 0;
4
- const make_header_1 = require("./boxes/webm/make-header");
5
- const matchesPattern = (pattern) => {
6
- return (data) => {
7
- return pattern.every((value, index) => data[index] === value);
8
- };
9
- };
10
- const isRiff = (data) => {
11
- const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
12
- return matchesPattern(riffPattern)(data.subarray(0, 4));
13
- };
14
- const isWebm = (data) => {
15
- return matchesPattern(make_header_1.webmPattern)(data.subarray(0, 4));
16
- };
17
- const isIsoBaseMedia = (data) => {
18
- const isoBaseMediaMp4Pattern = new TextEncoder().encode('ftyp');
19
- return matchesPattern(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
20
- };
21
- const isTransportStream = (data) => {
22
- return data[0] === 0x47 && data[188] === 0x47;
23
- };
24
- const isMp3 = (data) => {
25
- const mpegPattern = new Uint8Array([0xff, 0xf3, 0xe4, 0x64]);
26
- return matchesPattern(mpegPattern)(data.subarray(0, 4));
27
- };
28
- const isGif = (data) => {
29
- const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
30
- return matchesPattern(gifPattern)(data.subarray(0, 4));
31
- };
32
- const isPng = (data) => {
33
- const pngPattern = new Uint8Array([0x89, 0x50, 0x4e, 0x47]);
34
- return matchesPattern(pngPattern)(data.subarray(0, 4));
35
- };
36
- const isBmp = (data) => {
37
- const bmpPattern = new Uint8Array([0x42, 0x4d]);
38
- return matchesPattern(bmpPattern)(data.subarray(0, 2));
39
- };
40
- const isJpeg = (data) => {
41
- const jpegPattern = new Uint8Array([0xff, 0xd8]);
42
- const jpeg = matchesPattern(jpegPattern)(data.subarray(0, 2));
43
- if (!jpeg) {
44
- return false;
45
- }
46
- const width = data[6] * 256 + data[7];
47
- const height = data[8] * 256 + data[9];
48
- console.log(width, height);
49
- return true;
50
- };
51
- const isWebp = (data) => {
52
- const webpPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
53
- return matchesPattern(webpPattern)(data.subarray(0, 4));
54
- };
55
- const detectFileType = (data) => {
56
- if (isWebp(data)) {
57
- return 'webp';
58
- }
59
- if (isRiff(data)) {
60
- return 'riff';
61
- }
62
- if (isWebm(data)) {
63
- return 'webm';
64
- }
65
- if (isIsoBaseMedia(data)) {
66
- return 'iso-base-media';
67
- }
68
- if (isTransportStream(data)) {
69
- return 'transport-stream';
70
- }
71
- if (isMp3(data)) {
72
- return 'mp3';
73
- }
74
- if (isGif(data)) {
75
- return 'gif';
76
- }
77
- if (isPng(data)) {
78
- return 'png';
79
- }
80
- if (isBmp(data)) {
81
- return 'bmp';
82
- }
83
- if (isJpeg(data)) {
84
- return 'jpeg';
85
- }
86
- return 'unknown';
87
- };
88
- exports.detectFileType = detectFileType;
@@ -1,4 +0,0 @@
1
- export declare function getJpegDimensions(data: Uint8Array): {
2
- width: number;
3
- height: number;
4
- } | null;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getJpegDimensions = getJpegDimensions;
4
- function getJpegDimensions(data) {
5
- let offset = 0;
6
- // Helper function to read a 16-bit big-endian integer
7
- function readUint16BE(o) {
8
- return (data[o] << 8) | data[o + 1];
9
- }
10
- // Skip the Start of Image (SOI) marker
11
- if (readUint16BE(offset) !== 0xffd8) {
12
- return null; // Not a valid JPEG file
13
- }
14
- offset += 2;
15
- while (offset < data.length) {
16
- if (data[offset] === 0xff) {
17
- const marker = data[offset + 1];
18
- if (marker === 0xc0 || marker === 0xc2) {
19
- // SOF0 or SOF2
20
- const height = readUint16BE(offset + 5);
21
- const width = readUint16BE(offset + 7);
22
- return { width, height };
23
- }
24
- const length = readUint16BE(offset + 2);
25
- offset += length + 2; // Move to the next marker
26
- }
27
- else {
28
- offset++;
29
- }
30
- }
31
- return null; // Return null if dimensions are not found
32
- }
@@ -1 +0,0 @@
1
- export declare const detectFileType: (data: Uint8Array) => "webp" | "riff" | "webm" | "iso-base-media" | "transport-stream" | "mp3" | "gif" | "png" | "bmp" | "jpeg" | "unknown";
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectFileType = void 0;
4
- const make_header_1 = require("./boxes/webm/make-header");
5
- const matchesPattern = (pattern) => {
6
- return (data) => {
7
- return pattern.every((value, index) => data[index] === value);
8
- };
9
- };
10
- const isRiff = (data) => {
11
- const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
12
- return matchesPattern(riffPattern)(data.subarray(0, 4));
13
- };
14
- const isWebm = (data) => {
15
- return matchesPattern(make_header_1.webmPattern)(data.subarray(0, 4));
16
- };
17
- const isIsoBaseMedia = (data) => {
18
- const isoBaseMediaMp4Pattern = new TextEncoder().encode('ftyp');
19
- return matchesPattern(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
20
- };
21
- const isTransportStream = (data) => {
22
- return data[0] === 0x47 && data[188] === 0x47;
23
- };
24
- const isMp3 = (data) => {
25
- const mpegPattern = new Uint8Array([0xff, 0xf3, 0xe4, 0x64]);
26
- return matchesPattern(mpegPattern)(data.subarray(0, 4));
27
- };
28
- const isGif = (data) => {
29
- const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
30
- return matchesPattern(gifPattern)(data.subarray(0, 4));
31
- };
32
- const isPng = (data) => {
33
- const pngPattern = new Uint8Array([0x89, 0x50, 0x4e, 0x47]);
34
- return matchesPattern(pngPattern)(data.subarray(0, 4));
35
- };
36
- const isBmp = (data) => {
37
- const bmpPattern = new Uint8Array([0x42, 0x4d]);
38
- return matchesPattern(bmpPattern)(data.subarray(0, 2));
39
- };
40
- const isJpeg = (data) => {
41
- const jpegPattern = new Uint8Array([0xff, 0xd8]);
42
- const jpeg = matchesPattern(jpegPattern)(data.subarray(0, 2));
43
- if (!jpeg) {
44
- return false;
45
- }
46
- const width = data[6] * 256 + data[7];
47
- const height = data[8] * 256 + data[9];
48
- console.log(width, height);
49
- return true;
50
- };
51
- const isWebp = (data) => {
52
- const webpPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
53
- return matchesPattern(webpPattern)(data.subarray(0, 4));
54
- };
55
- const detectFileType = (data) => {
56
- if (isWebp(data)) {
57
- return 'webp';
58
- }
59
- if (isRiff(data)) {
60
- return 'riff';
61
- }
62
- if (isWebm(data)) {
63
- return 'webm';
64
- }
65
- if (isIsoBaseMedia(data)) {
66
- return 'iso-base-media';
67
- }
68
- if (isTransportStream(data)) {
69
- return 'transport-stream';
70
- }
71
- if (isMp3(data)) {
72
- return 'mp3';
73
- }
74
- if (isGif(data)) {
75
- return 'gif';
76
- }
77
- if (isPng(data)) {
78
- return 'png';
79
- }
80
- if (isBmp(data)) {
81
- return 'bmp';
82
- }
83
- if (isJpeg(data)) {
84
- return 'jpeg';
85
- }
86
- return 'unknown';
87
- };
88
- exports.detectFileType = detectFileType;
@@ -1,10 +0,0 @@
1
- import type { ParserState } from './state/parser-state';
2
- import type { OnAudioTrack, OnVideoTrack } from './webcodec-sample-types';
3
- export type ParserContext = {
4
- onAudioTrack: OnAudioTrack | null;
5
- onVideoTrack: OnVideoTrack | null;
6
- parserState: ParserState;
7
- nullifySamples: boolean;
8
- supportsContentRange: boolean;
9
- nextTrackIndex: number;
10
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +0,0 @@
1
- export declare const detectFileType: (data: Uint8Array) => "webp" | "riff" | "webm" | "iso-base-media" | "transport-stream" | "mp3" | "gif" | "png" | "bmp" | "jpeg" | "unknown";
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectFileType = void 0;
4
- const make_header_1 = require("../boxes/webm/make-header");
5
- const get_jpeg_dimensions_1 = require("./get-jpeg-dimensions");
6
- const matchesPattern = (pattern) => {
7
- return (data) => {
8
- return pattern.every((value, index) => data[index] === value);
9
- };
10
- };
11
- const isRiff = (data) => {
12
- const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
13
- return matchesPattern(riffPattern)(data.subarray(0, 4));
14
- };
15
- const isWebm = (data) => {
16
- return matchesPattern(make_header_1.webmPattern)(data.subarray(0, 4));
17
- };
18
- const isIsoBaseMedia = (data) => {
19
- const isoBaseMediaMp4Pattern = new TextEncoder().encode('ftyp');
20
- return matchesPattern(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
21
- };
22
- const isTransportStream = (data) => {
23
- return data[0] === 0x47 && data[188] === 0x47;
24
- };
25
- const isMp3 = (data) => {
26
- const mpegPattern = new Uint8Array([0xff, 0xf3, 0xe4, 0x64]);
27
- return matchesPattern(mpegPattern)(data.subarray(0, 4));
28
- };
29
- const isGif = (data) => {
30
- const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
31
- return matchesPattern(gifPattern)(data.subarray(0, 4));
32
- };
33
- const isPng = (data) => {
34
- const pngPattern = new Uint8Array([0x89, 0x50, 0x4e, 0x47]);
35
- return matchesPattern(pngPattern)(data.subarray(0, 4));
36
- };
37
- const isBmp = (data) => {
38
- const bmpPattern = new Uint8Array([0x42, 0x4d]);
39
- return matchesPattern(bmpPattern)(data.subarray(0, 2));
40
- };
41
- const isJpeg = (data) => {
42
- const jpegPattern = new Uint8Array([0xff, 0xd8]);
43
- const jpeg = matchesPattern(jpegPattern)(data.subarray(0, 2));
44
- if (!jpeg) {
45
- return false;
46
- }
47
- const dim = (0, get_jpeg_dimensions_1.getJpegDimensions)(data);
48
- console.log(dim);
49
- return true;
50
- };
51
- const isWebp = (data) => {
52
- const webpPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
53
- return matchesPattern(webpPattern)(data.subarray(0, 4));
54
- };
55
- const detectFileType = (data) => {
56
- if (isWebp(data)) {
57
- return 'webp';
58
- }
59
- if (isRiff(data)) {
60
- return 'riff';
61
- }
62
- if (isWebm(data)) {
63
- return 'webm';
64
- }
65
- if (isIsoBaseMedia(data)) {
66
- return 'iso-base-media';
67
- }
68
- if (isTransportStream(data)) {
69
- return 'transport-stream';
70
- }
71
- if (isMp3(data)) {
72
- return 'mp3';
73
- }
74
- if (isGif(data)) {
75
- return 'gif';
76
- }
77
- if (isPng(data)) {
78
- return 'png';
79
- }
80
- if (isBmp(data)) {
81
- return 'bmp';
82
- }
83
- if (isJpeg(data)) {
84
- return 'jpeg';
85
- }
86
- return 'unknown';
87
- };
88
- exports.detectFileType = detectFileType;
@@ -1,4 +0,0 @@
1
- export declare function getJpegDimensions(data: Uint8Array): {
2
- width: number;
3
- height: number;
4
- } | null;
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getJpegDimensions = getJpegDimensions;
4
- function getJpegDimensions(data) {
5
- let offset = 0;
6
- // Helper function to read a 16-bit big-endian integer
7
- function readUint16BE(o) {
8
- return (data[o] << 8) | data[o + 1];
9
- }
10
- // Skip the Start of Image (SOI) marker
11
- if (readUint16BE(offset) !== 0xffd8) {
12
- return null; // Not a valid JPEG file
13
- }
14
- offset += 2;
15
- while (offset < data.length) {
16
- if (data[offset] === 0xff) {
17
- const marker = data[offset + 1];
18
- if (marker === 0xc0 || marker === 0xc2) {
19
- // SOF0 or SOF2
20
- const height = readUint16BE(offset + 5);
21
- const width = readUint16BE(offset + 7);
22
- return { width, height };
23
- }
24
- const length = readUint16BE(offset + 2);
25
- offset += length + 2; // Move to the next marker
26
- }
27
- else {
28
- offset++;
29
- }
30
- }
31
- return null; // Return null if dimensions are not found
32
- }
File without changes
@@ -1 +0,0 @@
1
- "use strict";