GET/PUT /api/settings/{ffmpeg,playout,xmltv,scanner,logging,ui,hdhr}
wrapping the existing MediatR settings handlers, plus custom resolution
list/create/delete under /api/settings/resolutions. String-enum OpenAPI
schemas extended to OutputFormatKind + LogEventLevel.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
44 lines
1.6 KiB
C#
44 lines
1.6 KiB
C#
using ErsatzTV.Application.FFmpegProfiles;
|
|
using ErsatzTV.FFmpeg.OutputFormat;
|
|
|
|
namespace ErsatzTV.Controllers.Api.Requests;
|
|
|
|
public record UpdateFFmpegSettingsRequest(
|
|
string FFmpegPath,
|
|
string FFprobePath,
|
|
int DefaultFFmpegProfileId,
|
|
string PreferredAudioLanguageCode,
|
|
bool UseEmbeddedSubtitles,
|
|
bool ExtractEmbeddedSubtitles,
|
|
bool ProbeForInterlacedFrames,
|
|
bool SaveReports,
|
|
int? GlobalWatermarkId,
|
|
int? GlobalFallbackFillerId,
|
|
int HlsSegmenterIdleTimeout,
|
|
int WorkAheadSegmenterLimit,
|
|
int InitialSegmentCount,
|
|
OutputFormatKind HlsDirectOutputFormat,
|
|
string DefaultMpegTsScript)
|
|
{
|
|
public UpdateFFmpegSettings ToCommand() =>
|
|
new(
|
|
new FFmpegSettingsViewModel
|
|
{
|
|
FFmpegPath = FFmpegPath,
|
|
FFprobePath = FFprobePath,
|
|
DefaultFFmpegProfileId = DefaultFFmpegProfileId,
|
|
PreferredAudioLanguageCode = PreferredAudioLanguageCode,
|
|
UseEmbeddedSubtitles = UseEmbeddedSubtitles,
|
|
ExtractEmbeddedSubtitles = ExtractEmbeddedSubtitles,
|
|
ProbeForInterlacedFrames = ProbeForInterlacedFrames,
|
|
SaveReports = SaveReports,
|
|
GlobalWatermarkId = GlobalWatermarkId,
|
|
GlobalFallbackFillerId = GlobalFallbackFillerId,
|
|
HlsSegmenterIdleTimeout = HlsSegmenterIdleTimeout,
|
|
WorkAheadSegmenterLimit = WorkAheadSegmenterLimit,
|
|
InitialSegmentCount = InitialSegmentCount,
|
|
HlsDirectOutputFormat = HlsDirectOutputFormat,
|
|
DefaultMpegTsScript = DefaultMpegTsScript
|
|
});
|
|
}
|