Backend plumbing for the SPA transcoding editors (#143 blocker):
- FFmpeg profile response DTO round-trip: add NormalizeAudio, NormalizeVideo,
PadMode, TargetLoudness, NormalizeColors, ResolutionId (keep Resolution name
for compat); DeinterlaceVideo now bool (was bool?). #nullable enable on the DTO.
- New GET /api/ffmpeg/hardware-acceleration-kinds wrapping
GetSupportedHardwareAccelerationKinds (returns enum names as strings).
- Filler preset CRUD: GET-by-id/POST/PUT/DELETE on FillerPresetController with
full request/response DTOs; new FillerPresetFullResponseModel +
GetFillerPresetByIdForApi. CreateFillerPreset now returns the new id
(CreateFillerPresetResult) to match sibling Create commands and enable a
201+Location; updated the one Blazor call site.
- Watermark CRUD: GET-by-id/POST/PUT/DELETE on WatermarkController with full
DTOs (path+contentType, all 15 fields); new WatermarkFullResponseModel +
GetWatermarkByIdForApi.
- Startup: register WatermarkLocation/WatermarkSize as OpenAPI string enums
(they live in ErsatzTV.FFmpeg.State and were documented as ints, mismatching
the Newtonsoft StringEnumConverter runtime serialization).
- Tests: full CRUD controller tests for filler + watermark; contract-test
entries (404/401/422) for the new mutating endpoints; regenerated v1.json.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Use chapters in duration filler
* add new option, migrations, and update filler preset editor
* Revert "Use chapters in duration filler"
This reverts commit d87a8a240a78c1cbca7b311125f8d3a84645d296.
* scaffold splitting filler by chapter
* implement chapters as filler
* update changelog
* re-add migrations
* Add duration for ChapterMediaItem
---------
Co-authored-by: Jason Dove <1695733+jasongdove@users.noreply.github.com>
* init
* minor update
* clean up
* minor cleanup
* update changelog
* update changelog again
---------
Co-authored-by: Jason Dove <1695733+jasongdove@users.noreply.github.com>
* use select instead of autocomplete for playout editor
* use select instead of autocomplete for filler preset editor
* reset selected collection when changing collection type
* use select instead of autocomplete for multi collection editor
* more select
* more select controls