From 20f7ec8db41648431a58c71aced28760daaf4254 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite <98231127+ThisBirchWood@users.noreply.github.com> Date: Thu, 31 Jul 2025 20:48:34 +0200 Subject: [PATCH] Backend MP4 conversion (#23) * ADD conversion queue * ADD RemuxService for MP4 conversion * REMOVE unused conversion queue * REORGANISE Job-related classes * ADD Job stages * REVERT to old commit, using Spring Async instead * ADD asynchronous processing for video tasks * PATCH and streamline progress tracking * ADD asynchronous video processing and job restructuring * REFACTOR job service method * ADD job remux functionality * ADD remuxing endpoint * PATCH complete flag not updating in API response * ADD progress type in frontend * ADD reset functionality for job status * PATCH missing progress bar for subsequent exports * REDESIGN settings box * ADD tracking video file conversion in frontend * PATCH extension bug * REMOVE autowired decorator --- frontend/src/components/video/ConfigBox.tsx | 10 +- frontend/src/components/video/MetadataBox.tsx | 35 ++---- frontend/src/pages/ClipEdit.tsx | 6 +- frontend/src/pages/ClipUpload.tsx | 64 ++++++++++- frontend/src/utils/endpoints.ts | 23 +++- frontend/src/utils/types.ts | 14 ++- .../ddf/vodsystem/VodSystemApplication.java | 2 + .../vodsystem/configuration/AsyncConfig.java | 22 ++++ .../configuration/SecurityConfig.java | 2 +- .../vodsystem/controllers/EditController.java | 23 ++-- .../ddf/vodsystem/{entities => dto}/Job.java | 7 +- .../java/com/ddf/vodsystem/dto/JobStatus.java | 11 ++ .../ddf/vodsystem/dto/ProgressTracker.java | 25 +++-- .../com/ddf/vodsystem/entities/JobStatus.java | 9 -- .../ddf/vodsystem/services/ClipService.java | 29 +++-- .../vodsystem/services/DownloadService.java | 7 +- .../ddf/vodsystem/services/EditService.java | 18 ++-- .../ddf/vodsystem/services/JobService.java | 102 +++++++----------- .../ddf/vodsystem/services/UploadService.java | 19 +++- .../services/media/CompressionService.java | 16 ++- .../services/media/MetadataService.java | 8 +- .../services/media/RemuxService.java | 46 ++++++++ .../services/media/ThumbnailService.java | 7 +- src/main/resources/db/schema.sql | 4 +- 24 files changed, 324 insertions(+), 185 deletions(-) create mode 100644 src/main/java/com/ddf/vodsystem/configuration/AsyncConfig.java rename src/main/java/com/ddf/vodsystem/{entities => dto}/Job.java (73%) create mode 100644 src/main/java/com/ddf/vodsystem/dto/JobStatus.java delete mode 100644 src/main/java/com/ddf/vodsystem/entities/JobStatus.java create mode 100644 src/main/java/com/ddf/vodsystem/services/media/RemuxService.java diff --git a/frontend/src/components/video/ConfigBox.tsx b/frontend/src/components/video/ConfigBox.tsx index 42e5052..5cebb9c 100644 --- a/frontend/src/components/video/ConfigBox.tsx +++ b/frontend/src/components/video/ConfigBox.tsx @@ -9,7 +9,7 @@ type prop = { export default function ConfigBox({setMetadata, className}: prop) { const updateRes = (e: React.ChangeEvent) => { - var vals = e.target.value.split(","); + const vals = e.target.value.split(","); setMetadata((prevState: VideoMetadata) => ({ ...prevState, width: parseInt(vals[0]), @@ -33,14 +33,14 @@ export default function ConfigBox({setMetadata, className}: prop) { return (
-

Export Settings

+

Export

setMetadata((prevState: VideoMetadata) => ({ - ...prevState, - title: e.target.value - }))} - className={"border-black bg-gray-200 rounded-md w-full p-2"} - /> - - - -