@remotion/gif 3.3.25 → 3.3.27

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/dist/Gif.d.ts CHANGED
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import type { RemotionGifProps } from './props';
2
3
  export declare const Gif: (props: RemotionGifProps) => JSX.Element;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Deinterlace function from https://github.com/shachaf/jsgif
3
+ */
4
+ export declare const deinterlace: (pixels: any, width: any) => any[];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Deinterlace function from https://github.com/shachaf/jsgif
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.deinterlace = void 0;
7
+ const deinterlace = (pixels, width) => {
8
+ const newPixels = new Array(pixels.length);
9
+ const rows = pixels.length / width;
10
+ const cpRow = function (toRow, fromRow) {
11
+ const fromPixels = pixels.slice(fromRow * width, (fromRow + 1) * width);
12
+ newPixels.splice.apply(newPixels, [toRow * width, width].concat(fromPixels));
13
+ };
14
+ // See appendix E.
15
+ const offsets = [0, 4, 2, 1];
16
+ const steps = [8, 8, 4, 2];
17
+ let fromRow = 0;
18
+ for (let pass = 0; pass < 4; pass++) {
19
+ for (let toRow = offsets[pass]; toRow < rows; toRow += steps[pass]) {
20
+ cpRow(toRow, fromRow);
21
+ fromRow++;
22
+ }
23
+ }
24
+ return newPixels;
25
+ };
26
+ exports.deinterlace = deinterlace;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * javascript port of java LZW decompression
3
+ * Original java author url: https://gist.github.com/devunwired/4479231
4
+ */
5
+ export declare const lzw: (minCodeSize: number, data: number[], pixelCount: number) => number[];
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ /**
3
+ * javascript port of java LZW decompression
4
+ * Original java author url: https://gist.github.com/devunwired/4479231
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.lzw = void 0;
8
+ const lzw = (minCodeSize, data, pixelCount) => {
9
+ const MAX_STACK_SIZE = 4096;
10
+ const nullCode = -1;
11
+ const npix = pixelCount;
12
+ let available;
13
+ let clear;
14
+ let code_mask;
15
+ let code_size;
16
+ let end_of_information;
17
+ let in_code;
18
+ let old_code;
19
+ var bits;
20
+ let code;
21
+ let i;
22
+ var datum;
23
+ let data_size;
24
+ var first;
25
+ var top;
26
+ var bi;
27
+ var pi;
28
+ const dstPixels = new Array(pixelCount);
29
+ const prefix = new Array(MAX_STACK_SIZE);
30
+ const suffix = new Array(MAX_STACK_SIZE);
31
+ const pixelStack = new Array(MAX_STACK_SIZE + 1);
32
+ // Initialize GIF data stream decoder.
33
+ data_size = minCodeSize;
34
+ clear = 1 << data_size;
35
+ end_of_information = clear + 1;
36
+ available = clear + 2;
37
+ old_code = nullCode;
38
+ code_size = data_size + 1;
39
+ code_mask = (1 << code_size) - 1;
40
+ for (code = 0; code < clear; code++) {
41
+ prefix[code] = 0;
42
+ suffix[code] = code;
43
+ }
44
+ // Decode GIF pixel stream.
45
+ var datum;
46
+ var bits;
47
+ let count;
48
+ var first;
49
+ var top;
50
+ var pi;
51
+ var bi;
52
+ datum = bits = count = first = top = pi = bi = 0;
53
+ for (i = 0; i < npix;) {
54
+ if (top === 0) {
55
+ if (bits < code_size) {
56
+ // get the next byte
57
+ datum += data[bi] << bits;
58
+ bits += 8;
59
+ bi++;
60
+ continue;
61
+ }
62
+ // Get the next code.
63
+ code = datum & code_mask;
64
+ datum >>= code_size;
65
+ bits -= code_size;
66
+ // Interpret the code
67
+ if (code > available || code == end_of_information) {
68
+ break;
69
+ }
70
+ if (code == clear) {
71
+ // Reset decoder.
72
+ code_size = data_size + 1;
73
+ code_mask = (1 << code_size) - 1;
74
+ available = clear + 2;
75
+ old_code = nullCode;
76
+ continue;
77
+ }
78
+ if (old_code == nullCode) {
79
+ pixelStack[top++] = suffix[code];
80
+ old_code = code;
81
+ first = code;
82
+ continue;
83
+ }
84
+ in_code = code;
85
+ if (code == available) {
86
+ pixelStack[top++] = first;
87
+ code = old_code;
88
+ }
89
+ while (code > clear) {
90
+ pixelStack[top++] = suffix[code];
91
+ code = prefix[code];
92
+ }
93
+ first = suffix[code] & 0xff;
94
+ pixelStack[top++] = first;
95
+ // add a new string to the table, but only if space is available
96
+ // if not, just continue with current table until a clear code is found
97
+ // (deferred clear code implementation as per GIF spec)
98
+ if (available < MAX_STACK_SIZE) {
99
+ prefix[available] = old_code;
100
+ suffix[available] = first;
101
+ available++;
102
+ if ((available & code_mask) === 0 && available < MAX_STACK_SIZE) {
103
+ code_size++;
104
+ code_mask += available;
105
+ }
106
+ }
107
+ old_code = in_code;
108
+ }
109
+ // Pop a pixel off the pixel stack.
110
+ top--;
111
+ dstPixels[pi++] = pixelStack[top];
112
+ i++;
113
+ }
114
+ for (i = pi; i < npix; i++) {
115
+ dstPixels[i] = 0; // clear missing pixels
116
+ }
117
+ return dstPixels;
118
+ };
119
+ exports.lzw = lzw;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/gif",
3
- "version": "3.3.25",
3
+ "version": "3.3.27",
4
4
  "description": "Gif component for remotion",
5
5
  "sideEffects": false,
6
6
  "repository": {
@@ -23,13 +23,13 @@
23
23
  "dependencies": {
24
24
  "gifuct-js": "2.1.2",
25
25
  "lru_map": "0.4.1",
26
- "remotion": "3.3.25"
26
+ "remotion": "3.3.27"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@jonny/eslint-config": "3.0.266",
30
30
  "@types/node": "^16.7.5",
31
- "@types/react": "18.0.23",
32
- "@types/react-dom": "18.0.0",
31
+ "@types/react": "18.0.26",
32
+ "@types/react-dom": "18.0.10",
33
33
  "esbuild": "0.16.12",
34
34
  "eslint": "8.25.0",
35
35
  "prettier": "2.6.2",
@@ -53,5 +53,5 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  },
56
- "gitHead": "48e46dd2ede8fe903bf0139cebd6f546d7f2b5e0"
56
+ "gitHead": "5dfc0dfa0df9592a358127a9aea9219244e6807a"
57
57
  }