From 6dffb8146b1d43c1c2abccf73d2bf2ab9b0b3704 Mon Sep 17 00:00:00 2001 From: gsproston Date: Sun, 30 Jun 2024 15:04:41 +0100 Subject: [PATCH 1/2] Fix crash after setting ffmpeg path --- lib/capabilities.js | 4 ++++ test/processor.test.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/lib/capabilities.js b/lib/capabilities.js index 1c89c02f..26dd610a 100644 --- a/lib/capabilities.js +++ b/lib/capabilities.js @@ -31,6 +31,10 @@ module.exports = function(proto) { * @return FfmpegCommand */ proto.setFfmpegPath = function(ffmpegPath) { + delete cache.codecs; + delete cache.encoders; + delete cache.filters; + delete cache.formats; cache.ffmpegPath = ffmpegPath; return this; }; diff --git a/test/processor.test.js b/test/processor.test.js index 6b0f7a3a..b256fd34 100644 --- a/test/processor.test.js +++ b/test/processor.test.js @@ -1239,5 +1239,35 @@ describe('Processor', function() { }) .saveToFile('/will/not/be/created/anyway'); }); + + it('should report ffmpeg errors when converting after changing ffmpeg path after successful conversion', function(done) { + var testFile = path.join(__dirname, 'assets', 'testConvertToFile.avi'); + this.files.push(testFile); + + const myPromise = new Promise((resolve, reject) => { + this.getCommand({ source: this.testfile, logger: testhelper.logger }) + .usingPreset('divx') + .on('error', function(err, stdout, stderr) { + testhelper.logError(err, stdout, stderr); + assert.ok(!err); + reject(err); + }) + .on('end', function() { + resolve(); + }) + .saveToFile(testFile); + }); + + myPromise.then(() => { + this.getCommand({ source: this.testfile, logger: testhelper.logger }) + .usingPreset('divx') + .setFfmpegPath('wrong-path') + .on('error', function(err) { + setTimeout(done, 1000); + err.message.should.match(/spawn wrong-path ENOENT/); + }) + .saveToFile(testFile); + }) + }); }); }); From 0b85de2e79e19d16980e5648877cdbf2eab8b07e Mon Sep 17 00:00:00 2001 From: gsproston Date: Sun, 30 Jun 2024 15:06:43 +0100 Subject: [PATCH 2/2] Better promise name --- test/processor.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/processor.test.js b/test/processor.test.js index b256fd34..e97e5b9d 100644 --- a/test/processor.test.js +++ b/test/processor.test.js @@ -1244,7 +1244,7 @@ describe('Processor', function() { var testFile = path.join(__dirname, 'assets', 'testConvertToFile.avi'); this.files.push(testFile); - const myPromise = new Promise((resolve, reject) => { + const conversionPromise = new Promise((resolve, reject) => { this.getCommand({ source: this.testfile, logger: testhelper.logger }) .usingPreset('divx') .on('error', function(err, stdout, stderr) { @@ -1258,7 +1258,7 @@ describe('Processor', function() { .saveToFile(testFile); }); - myPromise.then(() => { + conversionPromise.then(() => { this.getCommand({ source: this.testfile, logger: testhelper.logger }) .usingPreset('divx') .setFfmpegPath('wrong-path')