diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2017-05-05 12:15:16 +0200 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2017-05-05 12:15:16 +0200 |
commit | 62326afb151a1062253ac8b08bb62ce3f01e1267 (patch) | |
tree | 0ab9950e84bdcc935e3c3531d061762eea2c0075 /server/lib | |
parent | fce897f326af14406ced2f71a00ae89ff297a550 (diff) | |
download | PeerTube-62326afb151a1062253ac8b08bb62ce3f01e1267.tar.gz PeerTube-62326afb151a1062253ac8b08bb62ce3f01e1267.tar.zst PeerTube-62326afb151a1062253ac8b08bb62ce3f01e1267.zip |
Server: Fix video propagation with transcoding enabled
Diffstat (limited to 'server/lib')
-rw-r--r-- | server/lib/jobs/handlers/video-transcoder.js | 19 | ||||
-rw-r--r-- | server/lib/jobs/job-scheduler.js | 12 |
2 files changed, 20 insertions, 11 deletions
diff --git a/server/lib/jobs/handlers/video-transcoder.js b/server/lib/jobs/handlers/video-transcoder.js index 8524df3aa..d2ad4f9c7 100644 --- a/server/lib/jobs/handlers/video-transcoder.js +++ b/server/lib/jobs/handlers/video-transcoder.js | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | const db = require('../../../initializers/database') | 3 | const db = require('../../../initializers/database') |
4 | const logger = require('../../../helpers/logger') | 4 | const logger = require('../../../helpers/logger') |
5 | const friends = require('../../../lib/friends') | ||
5 | 6 | ||
6 | const VideoTranscoderHandler = { | 7 | const VideoTranscoderHandler = { |
7 | process, | 8 | process, |
@@ -12,21 +13,29 @@ const VideoTranscoderHandler = { | |||
12 | // --------------------------------------------------------------------------- | 13 | // --------------------------------------------------------------------------- |
13 | 14 | ||
14 | function process (data, callback) { | 15 | function process (data, callback) { |
15 | db.Video.load(data.id, function (err, video) { | 16 | db.Video.loadAndPopulateAuthorAndPodAndTags(data.id, function (err, video) { |
16 | if (err) return callback(err) | 17 | if (err) return callback(err) |
17 | 18 | ||
18 | video.transcodeVideofile(callback) | 19 | video.transcodeVideofile(function (err) { |
20 | return callback(err, video) | ||
21 | }) | ||
19 | }) | 22 | }) |
20 | } | 23 | } |
21 | 24 | ||
22 | function onError (err, jobId, callback) { | 25 | function onError (err, jobId, video, callback) { |
23 | logger.error('Error when transcoding video file in job %d.', jobId, { error: err }) | 26 | logger.error('Error when transcoding video file in job %d.', jobId, { error: err }) |
24 | return callback() | 27 | return callback() |
25 | } | 28 | } |
26 | 29 | ||
27 | function onSuccess (data, jobId, callback) { | 30 | function onSuccess (data, jobId, video, callback) { |
28 | logger.info('Job %d is a success.', jobId) | 31 | logger.info('Job %d is a success.', jobId) |
29 | return callback() | 32 | |
33 | video.toAddRemoteJSON(function (err, remoteVideo) { | ||
34 | if (err) return callback(err) | ||
35 | |||
36 | // Now we'll add the video's meta data to our friends | ||
37 | friends.addVideoToFriends(remoteVideo, null, callback) | ||
38 | }) | ||
30 | } | 39 | } |
31 | 40 | ||
32 | // --------------------------------------------------------------------------- | 41 | // --------------------------------------------------------------------------- |
diff --git a/server/lib/jobs/job-scheduler.js b/server/lib/jobs/job-scheduler.js index 589a30630..c59bf9262 100644 --- a/server/lib/jobs/job-scheduler.js +++ b/server/lib/jobs/job-scheduler.js | |||
@@ -76,31 +76,31 @@ function processJob (job, callback) { | |||
76 | return jobHandler.process(job.handlerInputData, function (err, result) { | 76 | return jobHandler.process(job.handlerInputData, function (err, result) { |
77 | if (err) { | 77 | if (err) { |
78 | logger.error('Error in job handler %s.', job.handlerName, { error: err }) | 78 | logger.error('Error in job handler %s.', job.handlerName, { error: err }) |
79 | return onJobError(jobHandler, job, callback) | 79 | return onJobError(jobHandler, job, result, callback) |
80 | } | 80 | } |
81 | 81 | ||
82 | return onJobSuccess(jobHandler, job, callback) | 82 | return onJobSuccess(jobHandler, job, result, callback) |
83 | }) | 83 | }) |
84 | }) | 84 | }) |
85 | } | 85 | } |
86 | 86 | ||
87 | function onJobError (jobHandler, job, callback) { | 87 | function onJobError (jobHandler, job, jobResult, callback) { |
88 | job.state = constants.JOB_STATES.ERROR | 88 | job.state = constants.JOB_STATES.ERROR |
89 | 89 | ||
90 | job.save().asCallback(function (err) { | 90 | job.save().asCallback(function (err) { |
91 | if (err) return cannotSaveJobError(err, callback) | 91 | if (err) return cannotSaveJobError(err, callback) |
92 | 92 | ||
93 | return jobHandler.onError(err, job.id, callback) | 93 | return jobHandler.onError(err, job.id, jobResult, callback) |
94 | }) | 94 | }) |
95 | } | 95 | } |
96 | 96 | ||
97 | function onJobSuccess (jobHandler, job, callback) { | 97 | function onJobSuccess (jobHandler, job, jobResult, callback) { |
98 | job.state = constants.JOB_STATES.SUCCESS | 98 | job.state = constants.JOB_STATES.SUCCESS |
99 | 99 | ||
100 | job.save().asCallback(function (err) { | 100 | job.save().asCallback(function (err) { |
101 | if (err) return cannotSaveJobError(err, callback) | 101 | if (err) return cannotSaveJobError(err, callback) |
102 | 102 | ||
103 | return jobHandler.onSuccess(err, job.id, callback) | 103 | return jobHandler.onSuccess(err, job.id, jobResult, callback) |
104 | }) | 104 | }) |
105 | } | 105 | } |
106 | 106 | ||