diff --git a/src/main/java/com/ddf/vodsystem/dto/JobStatus.java b/src/main/java/com/ddf/vodsystem/dto/JobStatus.java index f47df31..4930b4b 100644 --- a/src/main/java/com/ddf/vodsystem/dto/JobStatus.java +++ b/src/main/java/com/ddf/vodsystem/dto/JobStatus.java @@ -6,6 +6,7 @@ import lombok.Data; public class JobStatus { private ProgressTracker process = new ProgressTracker(); private ProgressTracker conversion = new ProgressTracker(); + private boolean failed = false; } diff --git a/src/main/java/com/ddf/vodsystem/services/ClipService.java b/src/main/java/com/ddf/vodsystem/services/ClipService.java index 3d546f3..104715b 100644 --- a/src/main/java/com/ddf/vodsystem/services/ClipService.java +++ b/src/main/java/com/ddf/vodsystem/services/ClipService.java @@ -77,7 +77,9 @@ public class ClipService { value, outputFile, inputFile.getName() - ))); + ))).exceptionally(ex -> { + throw new FFMPEGException("FFMPEG Compression failed: " + ex.getMessage()); + }); } /** diff --git a/src/main/java/com/ddf/vodsystem/services/JobService.java b/src/main/java/com/ddf/vodsystem/services/JobService.java index 1193285..e7c2358 100644 --- a/src/main/java/com/ddf/vodsystem/services/JobService.java +++ b/src/main/java/com/ddf/vodsystem/services/JobService.java @@ -7,6 +7,7 @@ import java.nio.file.Paths; import java.util.concurrent.ConcurrentHashMap; import com.ddf.vodsystem.dto.Job; +import com.ddf.vodsystem.exceptions.FFMPEGException; import com.ddf.vodsystem.services.media.RemuxService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -109,6 +110,8 @@ public class JobService { } catch (IOException | InterruptedException e) { logger.error("Error processing job {}: {}", job.getUuid(), e.getMessage()); Thread.currentThread().interrupt(); + } catch (FFMPEGException e) { + job.getStatus().setFailed(true); } } } \ No newline at end of file