2408263988
fix(media): propagate async FFmpeg results and failures
2026-07-12 18:49:20 +01:00
688ff541da
test(unit): StreamActionsService tests
2026-07-12 18:11:45 +01:00
07ee112d57
refactor(stream actions): move segment logic into StreamActionsService
2026-07-08 22:17:10 +02:00
fbb5c3ab52
fix(interrupts): metadata service not setting interrupt bit
2026-07-08 11:57:01 +02:00
e1e6fe0046
fix(file size): use Long instead of float
...
Float only stores up to 16 million, and file size is stored in bytes. A video can easily be over 16MB (16 million bytes), therefore Long is needed.
2026-07-07 20:48:37 +02:00
d7214ca1bc
test(unit): compression service test
2026-07-02 20:59:13 +01:00
5bebea3f95
refactor(command): inject CommandRunner instead of static
2026-07-02 20:04:04 +01:00
fe735faba8
feat(api): delete marker endpoint
2026-07-02 19:37:35 +01:00
41fda53817
docs(docstring): other stream save method
2026-07-02 19:13:55 +01:00
1a0778d1d6
docs(bruno): save with marker endpoint
2026-07-02 19:09:25 +01:00
ba378680c6
feat(markers): add save endpoint with markers
2026-07-02 19:09:07 +01:00
2cac1770f9
feat(markers): auto-delete after 8 hours
2026-07-02 18:53:23 +01:00
dc33d1df33
feat(markers): get by id
2026-07-02 18:35:22 +01:00
18626a5db8
feat(markers): implement marker entity & service
2026-07-02 17:43:13 +01:00
3c8df9b328
fix(clips): remove redundant auth checks
2026-07-01 23:19:51 +01:00
76869c8c90
fix(clips): remove redundant Optional returns
2026-07-01 23:12:23 +01:00
4ec5080edc
docs(docstrings): add clip & vod comments
2026-07-01 22:32:08 +01:00
998eebb032
feat(stream): implement description & title options
2026-07-01 22:23:49 +01:00
e2c94d0740
feat(stream): stream save now auto-persists vod
2026-07-01 22:12:32 +01:00
1fff0805f6
feat(frontend): implement vods in frontend
2026-07-01 22:01:52 +01:00
48ff0eb8e5
feat(frontend): implement vods in frontend
2026-07-01 22:01:41 +01:00
83fcb44670
feat(backend): implement VoD functionality
2026-07-01 21:54:17 +01:00
913c5c8790
fix(exceptions): catch specific error instead of broad
2026-07-01 21:36:50 +01:00
85ddd93757
fix(api): cookies not set on http connections
...
Frontend uses .env URL.
2026-06-26 14:47:15 +01:00
3d57007074
fix(maintainability): clean up reliability issues
2026-06-25 20:39:06 +01:00
42294703ae
chore(backend): remove LocalDateTime usage, replaced with Instant
2026-06-25 20:21:48 +01:00
8b299dc4fa
fix(directories): inputs absolute paths into db
2026-06-23 21:31:45 +01:00
5651aa4ce9
refactor(directories): switch from File to Path objs
2026-06-23 20:53:24 +01:00
7d8a62d331
docs(bruno): missing post response script
2026-06-22 22:34:18 +01:00
dc5af8f868
docs(bruno): overhaul bruno to match new API
2026-06-22 22:08:56 +01:00
da6bf16d07
refactor(media): consolidate upload/edit/download into MediaService
...
Merge UploadService, EditService, JobOrchestrationService, and
DownloadService into a single MediaService with a unified Job lifecycle
(READY → PROCESSING → SUCCEEDED/FAILED via JobState enum).
- Add MediaController (/api/v1/media) exposing compress, save, and clip
- Add JobController (/api/v1/job) for status polling and file download
- Move clip/thumbnail download into ClipController (/{id}/media, /{id}/thumbnail)
- Move stream saveSection/clip from StreamService into MediaService
- Simplify Job DTO: remove dual ClipOptions/files, add ProgressTracker and download file
- Refactor JobRegistryService.add() → generateJob() to co-locate creation and registration
- Wire FFmpeg out_time_ms progress parsing into StreamActionsService via CommandRunner
- Rename GET /api/v1/auth/user → GET /api/v1/user/me
- Delete DownloadController, MetadataController, UploadController
2026-06-22 20:54:16 +01:00
6c1f1112dc
feat(stream): clipping stream now saves to db
2026-06-21 18:31:26 +01:00
b05ae62230
refactor(dto): use record for Token DTO
2026-06-20 19:01:59 +01:00
a6850d3d65
refactor(jobs): split JobService into JobRegistryService and JobOrchestrationService
2026-06-20 18:50:14 +01:00
7cee64beb3
refactor(stream): centralize stream directory resolution in DirectoryService
2026-06-20 18:38:47 +01:00
a0efa3eb8c
feat(stream): add streaming endpoint and indicator
2026-06-20 16:21:18 +01:00
2b1f8ce710
refactor(dto): move API DTOs
2026-06-20 16:04:19 +01:00
06f392a3ff
refactor(dto): use Record instead of Lombok data
2026-06-20 14:54:36 +01:00
637d6c94ed
feat(frontend): add edit clip page
2026-06-20 14:30:22 +01:00
fd1b0e19a1
feat(clips): add edit functionality for title & description
2026-06-20 14:23:50 +01:00
1062f72661
refactor(directories): improve error handling
2026-06-20 12:38:40 +01:00
37e9b6c1e7
refactor(directory): propagate dir creation error to caller
2026-06-20 01:27:51 +01:00
8602f65db7
fix(stream history): add auth missing checks
2026-06-19 23:26:11 +01:00
85615ebc54
fix(schema): mismatch column names for Stream
2026-06-19 23:09:05 +01:00
e60b6e36b2
fix(stream clip): blank section at start of clip
2026-06-19 23:00:09 +01:00
736142e8b3
refactor(stream): clip section extends save section
...
Add javadocs.
2026-06-19 22:48:53 +01:00
88d83be50a
feat(stream): implement clipping functionality
2026-06-19 22:30:30 +01:00
b55ba3ce51
feat(api): add error handling for save endpoint
2026-06-19 22:04:42 +01:00
bf59cb087f
feat(stream): implement section saving
2026-06-06 15:22:36 +01:00
1dbc40d8e6
feat(stream): connect nginx with backend with controllers
2026-05-18 22:27:49 +01:00