72 lines
1.9 KiB
C#
72 lines
1.9 KiB
C#
using ErsatzTV.Application.FFmpegProfiles;
|
|
using ErsatzTV.Core.Domain;
|
|
using ErsatzTV.Core.FFmpeg;
|
|
|
|
namespace ErsatzTV.Controllers.Api.Requests;
|
|
|
|
public record CreateFFmpegProfileRequest(
|
|
string Name,
|
|
int ThreadCount,
|
|
bool NormalizeAudio,
|
|
bool NormalizeVideo,
|
|
HardwareAccelerationKind HardwareAcceleration,
|
|
string VaapiDisplay,
|
|
VaapiDriver VaapiDriver,
|
|
string VaapiDevice,
|
|
int? QsvExtraHardwareFrames,
|
|
int ResolutionId,
|
|
ScalingBehavior ScalingBehavior,
|
|
FilterMode PadMode,
|
|
FFmpegProfileVideoFormat VideoFormat,
|
|
string VideoProfile,
|
|
string VideoPreset,
|
|
bool AllowBFrames,
|
|
FFmpegProfileBitDepth BitDepth,
|
|
int VideoBitrate,
|
|
int VideoBufferSize,
|
|
FFmpegProfileTonemapAlgorithm TonemapAlgorithm,
|
|
FFmpegProfileAudioFormat AudioFormat,
|
|
int AudioBitrate,
|
|
int AudioBufferSize,
|
|
NormalizeLoudnessMode NormalizeLoudnessMode,
|
|
double? TargetLoudness,
|
|
int AudioChannels,
|
|
int AudioSampleRate,
|
|
bool NormalizeFramerate,
|
|
bool NormalizeColors,
|
|
bool DeinterlaceVideo)
|
|
{
|
|
public CreateFFmpegProfile ToCommand() =>
|
|
new(
|
|
Name,
|
|
ThreadCount,
|
|
NormalizeAudio,
|
|
NormalizeVideo,
|
|
HardwareAcceleration,
|
|
VaapiDisplay,
|
|
VaapiDriver,
|
|
VaapiDevice,
|
|
QsvExtraHardwareFrames,
|
|
ResolutionId,
|
|
ScalingBehavior,
|
|
PadMode,
|
|
VideoFormat,
|
|
VideoProfile,
|
|
VideoPreset,
|
|
AllowBFrames,
|
|
BitDepth,
|
|
VideoBitrate,
|
|
VideoBufferSize,
|
|
TonemapAlgorithm,
|
|
AudioFormat,
|
|
AudioBitrate,
|
|
AudioBufferSize,
|
|
NormalizeLoudnessMode,
|
|
TargetLoudness,
|
|
AudioChannels,
|
|
AudioSampleRate,
|
|
NormalizeFramerate,
|
|
NormalizeColors,
|
|
DeinterlaceVideo);
|
|
}
|