diff --git a/src/main/java/org/olat/modules/video/manager/VideoTranscodingJob.java b/src/main/java/org/olat/modules/video/manager/VideoTranscodingJob.java index 59156408225231943a96c0421a52953aaa06e3b3..bb642daa53c1503c3f331a654951188266b15675 100644 --- a/src/main/java/org/olat/modules/video/manager/VideoTranscodingJob.java +++ b/src/main/java/org/olat/modules/video/manager/VideoTranscodingJob.java @@ -54,10 +54,6 @@ import org.quartz.JobExecutionException; public class VideoTranscodingJob extends JobWithDB { private ArrayList<String> resolutionsWithProfile = new ArrayList<>(Arrays.asList("1080", "720", "480")); - /** - * - * @see org.olat.core.commons.services.scheduler.JobWithDB#executeWithDB(org.quartz.JobExecutionContext) - */ @Override public void executeWithDB(JobExecutionContext context) throws JobExecutionException { // uses StatefulJob interface to prevent concurrent job execution @@ -80,11 +76,24 @@ public class VideoTranscodingJob extends JobWithDB { // Find first one to work with boolean allOk = true; for(VideoTranscoding videoTranscoding = getNextVideo(); videoTranscoding != null; videoTranscoding = getNextVideo()) { + if(cancelTranscoding()) { + break; + } allOk &= forkTranscodingProcess(videoTranscoding); } return allOk; } + private boolean cancelTranscoding() { + try { + VideoModule videoModule = CoreSpringFactory.getImpl(VideoModule.class); + return (!videoModule.isTranscodingLocal() || !videoModule.isTranscodingEnabled()); + } catch (Exception e) { + log.error("", e); + return true; + } + } + private VideoTranscoding getNextVideo() { VideoManager videoManager = CoreSpringFactory.getImpl(VideoManager.class); List<VideoTranscoding> videoTranscodings = videoManager.getVideoTranscodingsPendingAndInProgress(); @@ -170,7 +179,7 @@ public class VideoTranscodingJob extends JobWithDB { ProcessBuilder builder = new ProcessBuilder(cmd); process = builder.start(); return updateVideoTranscodingFromProcessOutput(process, videoTranscoding, transcodedFile); - } catch (IOException e) { + } catch (Exception e) { log.error ("Could not spawn convert sub process", e); return false; } finally {