SHA256
67 lines
2.1 KiB
C#
67 lines
2.1 KiB
C#
using ADOFAIRenderer.Util.FFmpeg;
|
|
|
|
namespace ADOFAIRenderer.Data
|
|
{
|
|
public class RenderConfig
|
|
{
|
|
public double RenderFPS { get; set; }
|
|
public double VideoFPS { get; set; }
|
|
|
|
public int RenderWidth { get; set; }
|
|
public int RenderHeight { get; set; }
|
|
|
|
public VideoEncodingConfig VideoConfig { get; set; } = new();
|
|
public AudioEncodingConfig AudioConfig { get; set; } = new();
|
|
public AdvancedConfig AdvancedConfig { get; set; } = new();
|
|
|
|
public double DelayAfterEnd { get; set; }
|
|
public bool ShowJudgementText { get; set; }
|
|
}
|
|
|
|
public class AdvancedConfig
|
|
{
|
|
public int? RandomSeed { get; set; } = null;
|
|
public bool ProcessAudio { get; set; } = true;
|
|
public bool NonTile { get; set; } = false;
|
|
}
|
|
|
|
public class VideoEncodingConfig
|
|
{
|
|
public Codec Codec { get; set; } = Codec.H264;
|
|
public RateControlMode RateControlMode { get; set; } = RateControlMode.CBR;
|
|
|
|
public int Bitrate { get; set; } = 30000;
|
|
public int MaxBitrate { get; set; } = 50000;
|
|
// ReSharper disable once InconsistentNaming
|
|
public int QP { get; set; } = 18;
|
|
public double KeyframeInterval { get; set; } = 2.0;
|
|
public bool ForceSoftwareEncoder { get; set; }
|
|
}
|
|
|
|
public class AudioEncodingConfig
|
|
{
|
|
private int _audioSampleRate = 44100;
|
|
private int _audioChannels = 2;
|
|
private int _audioBitrate = 256000;
|
|
|
|
public bool RenderAudio { get; set; } = true;
|
|
|
|
public int AudioSampleRate
|
|
{
|
|
get => _audioSampleRate <= 0 ? 44100 : _audioSampleRate;
|
|
set => _audioSampleRate = value <= 0 ? 44100 : value;
|
|
}
|
|
|
|
public int AudioChannels
|
|
{
|
|
get => _audioChannels <= 0 ? 2 : _audioChannels;
|
|
set => _audioChannels = value <= 0 ? 2 : value;
|
|
}
|
|
|
|
public int AudioBitrate
|
|
{
|
|
get => _audioBitrate <= 0 ? 256000 : _audioBitrate;
|
|
set => _audioBitrate = value <= 0 ? 256000 : value;
|
|
}
|
|
}
|
|
} |