From d04a7a95a371b8f9ddfa0556106414a97b0df1ab Mon Sep 17 00:00:00 2001 From: seminelee <747191197@qq.com> Date: Wed, 28 Jul 2021 20:44:04 +0800 Subject: [PATCH 01/18] U createFFmpeg.js --- src/createFFmpeg.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/createFFmpeg.js b/src/createFFmpeg.js index c5425ce..84d476c 100644 --- a/src/createFFmpeg.js +++ b/src/createFFmpeg.js @@ -88,7 +88,8 @@ module.exports = (_options = {}) => { return prefix + path; }, }); - ffmpeg = Core.cwrap('proxy_main', 'number', ['number', 'number']); + const mainName = options.pthread === 0 ? '_main' : 'proxy_main'; + ffmpeg = Core.cwrap(mainName, 'number', ['number', 'number']); log('info', 'ffmpeg-core loaded'); } else { throw Error('ffmpeg.wasm was loaded, you should not load it again, use ffmpeg.isLoaded() to check next time.'); From 0ab43d01d7e91acb44db3c7cb4939aa5dbfb5f84 Mon Sep 17 00:00:00 2001 From: seminelee <747191197@qq.com> Date: Thu, 29 Jul 2021 18:11:28 +0800 Subject: [PATCH 02/18] A mainName --- src/createFFmpeg.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/createFFmpeg.js b/src/createFFmpeg.js index 84d476c..a1f1f8c 100644 --- a/src/createFFmpeg.js +++ b/src/createFFmpeg.js @@ -88,8 +88,7 @@ module.exports = (_options = {}) => { return prefix + path; }, }); - const mainName = options.pthread === 0 ? '_main' : 'proxy_main'; - ffmpeg = Core.cwrap(mainName, 'number', ['number', 'number']); + ffmpeg = Core.cwrap(options.mainName || 'proxy_main', 'number', ['number', 'number']); log('info', 'ffmpeg-core loaded'); } else { throw Error('ffmpeg.wasm was loaded, you should not load it again, use ffmpeg.isLoaded() to check next time.'); From 8fc711d73928ccca78518702cfdd3736030e86d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Aug 2021 14:50:02 +0000 Subject: [PATCH 03/18] Bump path-parse from 1.0.6 to 1.0.7 Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7. - [Release notes](https://github.com/jbgutierrez/path-parse/releases) - [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7) --- updated-dependencies: - dependency-name: path-parse dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66855fd..a9a7809 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5646,9 +5646,9 @@ "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-to-regexp": { From 846285c136b57fe857c1e3bc430ca10aa89c916c Mon Sep 17 00:00:00 2001 From: seminelee <747191197@qq.com> Date: Tue, 17 Aug 2021 20:12:45 +0800 Subject: [PATCH 04/18] catch exit error --- src/createFFmpeg.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/createFFmpeg.js b/src/createFFmpeg.js index a1f1f8c..cbf5d9f 100644 --- a/src/createFFmpeg.js +++ b/src/createFFmpeg.js @@ -178,7 +178,11 @@ module.exports = (_options = {}) => { throw NO_LOAD; } else { running = false; - Core.exit(1); + try { + Core.exit(1); + } catch(e) { + console.log('catch core exit error', e); + } Core = null; ffmpeg = null; runResolve = null; From 256945282b451fe77e145b7c9295540541fa892c Mon Sep 17 00:00:00 2001 From: Sway Date: Fri, 29 Oct 2021 18:21:52 +0800 Subject: [PATCH 05/18] Fix ``exit`` method bug --- src/createFFmpeg.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/createFFmpeg.js b/src/createFFmpeg.js index c5425ce..3a80a8e 100644 --- a/src/createFFmpeg.js +++ b/src/createFFmpeg.js @@ -178,10 +178,15 @@ module.exports = (_options = {}) => { throw NO_LOAD; } else { running = false; - Core.exit(1); - Core = null; - ffmpeg = null; - runResolve = null; + try { + Core.exit(1); + } catch (e) { + log(e.message); + } finally { + Core = null; + ffmpeg = null; + runResolve = null; + } } }; From 84b0687dc845fba30202bb2933a61b5895bfba8b Mon Sep 17 00:00:00 2001 From: Zhang Zhi Date: Tue, 2 Nov 2021 12:30:27 +0800 Subject: [PATCH 06/18] Update typings --- src/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.d.ts b/src/index.d.ts index 5d0b749..8454042 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -1,5 +1,5 @@ export const FS: { - writeFile: (fileName: string, binaryData: Uint8Array) => void, + writeFile: (fileName: string, binaryData: Uint8Array | string) => void, readFile: (fileName: string) => Uint8Array, unlink: (fileName: string) => void, } From b529543042bb88d987f294538a5ed8b0b20be717 Mon Sep 17 00:00:00 2001 From: Guofeng Lin Date: Thu, 25 Nov 2021 11:40:44 +0800 Subject: [PATCH 07/18] Add FS readdir types --- src/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.d.ts b/src/index.d.ts index 5d0b749..e2471d3 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -1,6 +1,7 @@ export const FS: { writeFile: (fileName: string, binaryData: Uint8Array) => void, readFile: (fileName: string) => Uint8Array, + readdir: (pathName: string) => string[], unlink: (fileName: string) => void, } From 6f17936d95dc1a6c50634ca4e3c16029ba7a00d7 Mon Sep 17 00:00:00 2001 From: Carlos Rodrigues Date: Thu, 6 Jan 2022 12:15:15 +0000 Subject: [PATCH 08/18] fix: Cancel run promise if the exit() is called --- src/createFFmpeg.js | 9 ++++++++- tests/ffmpeg.test.js | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/createFFmpeg.js b/src/createFFmpeg.js index c5425ce..836cc85 100644 --- a/src/createFFmpeg.js +++ b/src/createFFmpeg.js @@ -21,12 +21,14 @@ module.exports = (_options = {}) => { let Core = null; let ffmpeg = null; let runResolve = null; + let runReject = null; let running = false; let progress = optProgress; const detectCompletion = (message) => { if (message === 'FFMPEG_END' && runResolve !== null) { runResolve(); runResolve = null; + runReject = null; running = false; } }; @@ -126,9 +128,10 @@ module.exports = (_options = {}) => { throw Error('ffmpeg.wasm can only run one command at a time'); } else { running = true; - return new Promise((resolve) => { + return new Promise((resolve, reject) => { const args = [...defaultArgs, ..._args].filter((s) => s.length !== 0); runResolve = resolve; + runReject = reject ffmpeg(...parseArgs(Core, args)); }); } @@ -177,6 +180,10 @@ module.exports = (_options = {}) => { if (Core === null) { throw NO_LOAD; } else { + // if there's any pending runs, reject them + if(runReject) { + runReject('ffmpeg has exited') + } running = false; Core.exit(1); Core = null; diff --git a/tests/ffmpeg.test.js b/tests/ffmpeg.test.js index 2a434cd..270ad3d 100644 --- a/tests/ffmpeg.test.js +++ b/tests/ffmpeg.test.js @@ -48,6 +48,16 @@ describe('run()', () => { } }, 500); }).timeout(TIMEOUT); + + it('should terminate the run if exit is called', async () => { + const ffmpeg = createFFmpeg(OPTIONS); + await ffmpeg.load(); + + ffmpeg.run('-h').catch(e=> { + expect(e).to.be.equal('ffmpeg has exited') + }); + expect(ffmpeg.exit()).to.throw(); + }).timeout(TIMEOUT); }); describe('FS()', () => { From 8229d3efd0f1fbf1b1853fae239b651f027bd792 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 02:04:44 +0000 Subject: [PATCH 09/18] Bump pathval from 1.1.0 to 1.1.1 Bumps [pathval](https://github.com/chaijs/pathval) from 1.1.0 to 1.1.1. - [Release notes](https://github.com/chaijs/pathval/releases) - [Changelog](https://github.com/chaijs/pathval/blob/master/CHANGELOG.md) - [Commits](https://github.com/chaijs/pathval/compare/v1.1.0...v1.1.1) --- updated-dependencies: - dependency-name: pathval dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66855fd..85460f0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5675,9 +5675,9 @@ } }, "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", "dev": true }, "pend": { From 53f7a98a049488a462b38d6cbae240939bf23e70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Feb 2022 16:17:00 +0000 Subject: [PATCH 10/18] Bump ajv from 6.10.2 to 6.12.6 Bumps [ajv](https://github.com/ajv-validator/ajv) from 6.10.2 to 6.12.6. - [Release notes](https://github.com/ajv-validator/ajv/releases) - [Commits](https://github.com/ajv-validator/ajv/compare/v6.10.2...v6.12.6) --- updated-dependencies: - dependency-name: ajv dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 97 +++++++++-------------------------------------- 1 file changed, 17 insertions(+), 80 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66855fd..4c1ee5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2035,23 +2035,10 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "globals": { "version": "12.4.0", @@ -2396,15 +2383,23 @@ } }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "dependencies": { + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + } } }, "ajv-keywords": { @@ -3863,12 +3858,6 @@ } } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -6114,23 +6103,10 @@ "ajv-keywords": "^3.4.1" }, "dependencies": { - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "fast-deep-equal": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", - "dev": true + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" } } }, @@ -6670,18 +6646,6 @@ "terser": "^5.3.8" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -6691,8 +6655,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "p-limit": { "version": "3.0.2", @@ -6956,18 +6919,6 @@ "integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==", "dev": true }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -6977,8 +6928,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "find-up": { "version": "4.1.0", @@ -7105,18 +7055,6 @@ "schema-utils": "^3.0.0" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", @@ -7126,8 +7064,7 @@ "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "mime-db": { "version": "1.44.0", From 2d0580464fd425919e24deb6947e779eff3f6839 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 13 Feb 2022 20:51:28 +0000 Subject: [PATCH 11/18] Bump follow-redirects from 1.14.0 to 1.14.8 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.0 to 1.14.8. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.0...v1.14.8) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66855fd..ee6daf8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4038,9 +4038,9 @@ "dev": true }, "follow-redirects": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", - "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==", + "version": "1.14.8", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", + "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", "dev": true }, "forwarded": { From 9811adb5e40b7c17de280ddd3d3cdba40069ffec Mon Sep 17 00:00:00 2001 From: Duncan Beevers Date: Wed, 23 Feb 2022 12:51:22 -0800 Subject: [PATCH 12/18] refactor: Remove unused webpack import --- scripts/webpack.config.dev.js | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/webpack.config.dev.js b/scripts/webpack.config.dev.js index b630863..2bfd2d0 100644 --- a/scripts/webpack.config.dev.js +++ b/scripts/webpack.config.dev.js @@ -1,5 +1,4 @@ const path = require('path'); -const webpack = require('webpack'); const common = require('./webpack.config.common'); const genConfig = ({ From fbedfb064c5598a0c6aa3ccd27b9c3c2d2044f76 Mon Sep 17 00:00:00 2001 From: Duncan Beevers Date: Wed, 23 Feb 2022 14:13:34 -0800 Subject: [PATCH 13/18] build: Remove --experimental-wasm-bulk-memory flag The --experimental-wasm-bulk-memory is no longer supported by Chrome --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b4f31b2..365f995 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "wait": "rimraf dist && wait-on http://localhost:3000/dist/ffmpeg.dev.js", "test": "npm-run-all -p -r start test:all", "test:all": "npm-run-all wait test:browser:ffmpeg test:node:all", - "test:node": "node --experimental-wasm-threads --experimental-wasm-bulk-memory node_modules/.bin/_mocha --exit --bail --require ./scripts/test-helper.js", + "test:node": "node --experimental-wasm-threads node_modules/.bin/_mocha --exit --bail --require ./scripts/test-helper.js", "test:node:all": "npm run test:node -- ./tests/*.test.js", "test:browser": "mocha-headless-chrome -a allow-file-access-from-files -a incognito -a no-sandbox -a disable-setuid-sandbox -a disable-logging -t 300000", "test:browser:ffmpeg": "npm run test:browser -- -f ./tests/ffmpeg.test.html" From 61fcd255e0568b8101eb535b5b4b56800bc2c9b8 Mon Sep 17 00:00:00 2001 From: Duncan Beevers Date: Wed, 23 Feb 2022 15:23:26 -0800 Subject: [PATCH 14/18] fixup! build: Remove --experimental-wasm-bulk-memory flag --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 27e05f8..ad0d4db 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ $ npm install @ffmpeg/ffmpeg @ffmpeg/core > As we are using the latest experimental features, you need to add few flags to run in Node.js ``` -$ node --experimental-wasm-threads --experimental-wasm-bulk-memory transcode.js +$ node --experimental-wasm-threads transcode.js ``` **Browser** From fd584309b96646d3096557f9278849b793d6c5c2 Mon Sep 17 00:00:00 2001 From: Duncan Beevers Date: Wed, 23 Feb 2022 15:24:34 -0800 Subject: [PATCH 15/18] fixup! build: Remove --experimental-wasm-bulk-memory flag --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ad0d4db..f9844c4 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Try it: [https://ffmpegwasm.netlify.app](https://ffmpegwasm.netlify.app#demo) $ npm install @ffmpeg/ffmpeg @ffmpeg/core ``` -> As we are using the latest experimental features, you need to add few flags to run in Node.js +> As we are using experimental features, you need to add flags to run in Node.js ``` $ node --experimental-wasm-threads transcode.js From 5204a89a0fbbb38b993c4a15bcad48aa57adebb0 Mon Sep 17 00:00:00 2001 From: rosenrose Date: Thu, 24 Feb 2022 16:29:37 +0900 Subject: [PATCH 16/18] Fix overwriting variables when running multiple instances. --- src/createFFmpeg.js | 43 +++++++++++++++++++++++++++++++++----- src/utils/log.js | 24 --------------------- src/utils/parseProgress.js | 28 ------------------------- 3 files changed, 38 insertions(+), 57 deletions(-) delete mode 100644 src/utils/log.js delete mode 100644 src/utils/parseProgress.js diff --git a/src/createFFmpeg.js b/src/createFFmpeg.js index c5425ce..f53d090 100644 --- a/src/createFFmpeg.js +++ b/src/createFFmpeg.js @@ -1,6 +1,4 @@ const { defaultArgs, baseOptions } = require('./config'); -const { setLogging, setCustomLogger, log } = require('./utils/log'); -const parseProgress = require('./utils/parseProgress'); const parseArgs = require('./utils/parseArgs'); const { defaultOptions, getCreateFFmpegCore } = require('./node'); const { version } = require('../package.json'); @@ -22,7 +20,11 @@ module.exports = (_options = {}) => { let ffmpeg = null; let runResolve = null; let running = false; + let customLogger = () => {}; let progress = optProgress; + let duration = 0; + let ratio = 0; + const detectCompletion = (message) => { if (message === 'FFMPEG_END' && runResolve !== null) { runResolve(); @@ -30,6 +32,36 @@ module.exports = (_options = {}) => { running = false; } }; + const log = (type, message) => { + customLogger({ type, message }); + if (logging) { + console.log(`[${type}] ${message}`); + } + }; + const ts2sec = (ts) => { + const [h, m, s] = ts.split(':'); + return (parseFloat(h) * 60 * 60) + (parseFloat(m) * 60) + parseFloat(s); + }; + const parseProgress = (message, progress) => { + if (typeof message === 'string') { + if (message.startsWith(' Duration')) { + const ts = message.split(', ')[0].split(': ')[1]; + const d = ts2sec(ts); + progress({ duration: d, ratio }); + if (duration === 0 || duration > d) { + duration = d; + } + } else if (message.startsWith('frame') || message.startsWith('size')) { + const ts = message.split('time=')[1].split(' ')[0]; + const t = ts2sec(ts); + ratio = t / duration; + progress({ ratio, time: t }); + } else if (message.startsWith('video:')) { + progress({ ratio: 1 }); + duration = 0; + } + } + }; const parseMessage = ({ type, message }) => { log(type, message); parseProgress(message, progress); @@ -190,11 +222,12 @@ module.exports = (_options = {}) => { }; const setLogger = (_logger) => { - setCustomLogger(_logger); + customLogger = _logger; }; - setLogging(logging); - setCustomLogger(logger); + const setLogging = (_logging) => { + logging = _logging; + }; log('info', `use ffmpeg.wasm v${version}`); diff --git a/src/utils/log.js b/src/utils/log.js deleted file mode 100644 index bb2f0fb..0000000 --- a/src/utils/log.js +++ /dev/null @@ -1,24 +0,0 @@ -let logging = false; -let customLogger = () => {}; - -const setLogging = (_logging) => { - logging = _logging; -}; - -const setCustomLogger = (logger) => { - customLogger = logger; -}; - -const log = (type, message) => { - customLogger({ type, message }); - if (logging) { - console.log(`[${type}] ${message}`); - } -}; - -module.exports = { - logging, - setLogging, - setCustomLogger, - log, -}; diff --git a/src/utils/parseProgress.js b/src/utils/parseProgress.js deleted file mode 100644 index dc1658a..0000000 --- a/src/utils/parseProgress.js +++ /dev/null @@ -1,28 +0,0 @@ -let duration = 0; -let ratio = 0; - -const ts2sec = (ts) => { - const [h, m, s] = ts.split(':'); - return (parseFloat(h) * 60 * 60) + (parseFloat(m) * 60) + parseFloat(s); -}; - -module.exports = (message, progress) => { - if (typeof message === 'string') { - if (message.startsWith(' Duration')) { - const ts = message.split(', ')[0].split(': ')[1]; - const d = ts2sec(ts); - progress({ duration: d, ratio }); - if (duration === 0 || duration > d) { - duration = d; - } - } else if (message.startsWith('frame') || message.startsWith('size')) { - const ts = message.split('time=')[1].split(' ')[0]; - const t = ts2sec(ts); - ratio = t / duration; - progress({ ratio, time: t }); - } else if (message.startsWith('video:')) { - progress({ ratio: 1 }); - duration = 0; - } - } -}; From c395570cb08cda0dfd5d034abb25de2c6051abd3 Mon Sep 17 00:00:00 2001 From: rosenrose Date: Thu, 24 Feb 2022 17:00:28 +0900 Subject: [PATCH 17/18] dont' delete files --- src/utils/log.js | 24 ++++++++++++++++++++++++ src/utils/parseProgress.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/utils/log.js create mode 100644 src/utils/parseProgress.js diff --git a/src/utils/log.js b/src/utils/log.js new file mode 100644 index 0000000..bb2f0fb --- /dev/null +++ b/src/utils/log.js @@ -0,0 +1,24 @@ +let logging = false; +let customLogger = () => {}; + +const setLogging = (_logging) => { + logging = _logging; +}; + +const setCustomLogger = (logger) => { + customLogger = logger; +}; + +const log = (type, message) => { + customLogger({ type, message }); + if (logging) { + console.log(`[${type}] ${message}`); + } +}; + +module.exports = { + logging, + setLogging, + setCustomLogger, + log, +}; diff --git a/src/utils/parseProgress.js b/src/utils/parseProgress.js new file mode 100644 index 0000000..dc1658a --- /dev/null +++ b/src/utils/parseProgress.js @@ -0,0 +1,28 @@ +let duration = 0; +let ratio = 0; + +const ts2sec = (ts) => { + const [h, m, s] = ts.split(':'); + return (parseFloat(h) * 60 * 60) + (parseFloat(m) * 60) + parseFloat(s); +}; + +module.exports = (message, progress) => { + if (typeof message === 'string') { + if (message.startsWith(' Duration')) { + const ts = message.split(', ')[0].split(': ')[1]; + const d = ts2sec(ts); + progress({ duration: d, ratio }); + if (duration === 0 || duration > d) { + duration = d; + } + } else if (message.startsWith('frame') || message.startsWith('size')) { + const ts = message.split('time=')[1].split(' ')[0]; + const t = ts2sec(ts); + ratio = t / duration; + progress({ ratio, time: t }); + } else if (message.startsWith('video:')) { + progress({ ratio: 1 }); + duration = 0; + } + } +}; From 50a8efbdae3b370e9d384993a5073c6d8d984186 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Apr 2022 18:37:02 +0000 Subject: [PATCH 18/18] Bump minimist from 1.2.5 to 1.2.6 Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 32 +++----------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index 66855fd..c8629e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2689,12 +2689,6 @@ "schema-utils": "^2.6.5" }, "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, "mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", @@ -4528,14 +4522,6 @@ "dev": true, "requires": { "minimist": "^1.2.5" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - } } }, "leven": { @@ -4599,12 +4585,6 @@ "requires": { "minimist": "^1.2.0" } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true } } }, @@ -4810,9 +4790,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, "mkdirp": { @@ -6760,12 +6740,6 @@ "requires": { "minimist": "^1.2.0" } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true } } },