// -------------------------------------------------------------------------------------------------------------------- // // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. // // // Defines the EncodingProfile type. // // -------------------------------------------------------------------------------------------------------------------- namespace HandBrake.Interop.Model.Encoding { using System.Collections.Generic; using HandBrake.Interop.Model; /// /// The encoding profile. /// public class EncodingProfile { /// /// Initializes a new instance of the class. /// public EncodingProfile() { this.Cropping = new Cropping(); } #region Destination and Output Settings /// /// Gets or sets the container name. /// public string ContainerName { get; set; } /// /// Gets or sets the preferred extension. /// public OutputExtension PreferredExtension { get; set; } /// /// Gets or sets a value indicating whether include chapter markers. /// public bool IncludeChapterMarkers { get; set; } /// /// Gets or sets a value indicating whether large file. /// public bool LargeFile { get; set; } /// /// Gets or sets a value indicating whether optimize. /// public bool Optimize { get; set; } /// /// Gets or sets a value indicating whether i pod 5 g support. /// public bool IPod5GSupport { get; set; } #endregion #region Picture Settings /// /// Gets or sets the width. /// public int Width { get; set; } /// /// Gets or sets the height. /// public int Height { get; set; } /// /// Gets or sets the max width. /// public int MaxWidth { get; set; } /// /// Gets or sets the max height. /// public int MaxHeight { get; set; } /// /// Gets or sets the scale method. /// public ScaleMethod ScaleMethod { get; set; } /// /// Gets or sets the cropping type. /// public CroppingType CroppingType { get; set; } /// /// Gets or sets the cropping. /// public Cropping Cropping { get; set; } /// /// Gets or sets the anamorphic. /// public Anamorphic Anamorphic { get; set; } /// /// Gets or sets a value indicating whether use display width. /// public bool UseDisplayWidth { get; set; } /// /// Gets or sets the display width. /// public int DisplayWidth { get; set; } /// /// Gets or sets a value indicating whether keep display aspect. /// public bool KeepDisplayAspect { get; set; } /// /// Gets or sets the pixel aspect x. /// public int PixelAspectX { get; set; } /// /// Gets or sets the pixel aspect y. /// public int PixelAspectY { get; set; } /// /// Gets or sets the modulus. /// public int Modulus { get; set; } /// /// Gets or sets the rotation. /// public PictureRotation Rotation { get; set; } /// /// Gets or sets a value indicating whether the picture should be flipped horizontally. /// public bool FlipHorizontal { get; set; } /// /// Gets or sets a value indicating whether the picture should be flipped vertically. /// public bool FlipVertical { get; set; } #endregion #region Filters /// /// Gets or sets the deinterlace. /// public Deinterlace Deinterlace { get; set; } /// /// Gets or sets the custom deinterlace. /// public string CustomDeinterlace { get; set; } /// /// Gets or sets the decomb. /// public Decomb Decomb { get; set; } /// /// Gets or sets the custom decomb. /// public string CustomDecomb { get; set; } /// /// Gets or sets the detelecine. /// public Detelecine Detelecine { get; set; } /// /// Gets or sets the custom detelecine. /// public string CustomDetelecine { get; set; } /// /// Gets or sets the denoise. /// public Denoise Denoise { get; set; } /// /// Gets or sets the denoise preset. /// public DenoisePreset DenoisePreset { get; set; } /// /// Gets or sets the denoise tune. /// public DenoiseTune DenoiseTune { get; set; } /// /// Gets or sets the custom denoise. /// public string CustomDenoise { get; set; } /// /// Gets or sets the deblock. /// public int Deblock { get; set; } /// /// Gets or sets a value indicating whether the grayscale filter will be applied. /// public bool Grayscale { get; set; } #endregion #region Video /// /// Gets or sets the video encoder. /// public string VideoEncoder { get; set; } /// /// Gets or sets the video encoder options. /// public string VideoOptions { get; set; } /// /// Gets or sets the video encoder profile name. /// public string VideoProfile { get; set; } /// /// Gets or sets the video encoder preset name. /// public string VideoPreset { get; set; } /// /// Gets or sets the video encoder tunes. /// public List VideoTunes { get; set; } /// /// Gets or sets the video encoder level. /// public string VideoLevel { get; set; } /// /// Gets or sets a value indicating whether to use QSV decoding. /// public bool QsvDecode { get; set; } /// /// Gets or sets the video encode rate type. /// public VideoEncodeRateType VideoEncodeRateType { get; set; } /// /// Gets or sets the quality. /// public double Quality { get; set; } /// /// Gets or sets the target size. /// public int TargetSize { get; set; } /// /// Gets or sets the video bitrate. /// public int VideoBitrate { get; set; } /// /// Gets or sets a value indicating whether two pass. /// public bool TwoPass { get; set; } /// /// Gets or sets a value indicating whether turbo first pass. /// public bool TurboFirstPass { get; set; } /// /// Gets or sets the framerate. /// public double Framerate { get; set; } /// /// Gets or sets a value indicating whether constant framerate. /// public bool ConstantFramerate { get; set; } #endregion #region Audio /// /// Gets or sets the audio encodings. /// public List AudioEncodings { get; set; } /// /// Gets or sets the audio encoder fallback. /// public string AudioEncoderFallback { get; set; } #endregion /// /// The clone. /// /// /// The . /// public EncodingProfile Clone() { var profile = new EncodingProfile { ContainerName = this.ContainerName, PreferredExtension = this.PreferredExtension, IncludeChapterMarkers = this.IncludeChapterMarkers, LargeFile = this.LargeFile, Optimize = this.Optimize, IPod5GSupport = this.IPod5GSupport, Width = this.Width, Height = this.Height, MaxWidth = this.MaxWidth, MaxHeight = this.MaxHeight, ScaleMethod = this.ScaleMethod, CroppingType = this.CroppingType, Cropping = this.Cropping.Clone(), Anamorphic = this.Anamorphic, UseDisplayWidth = this.UseDisplayWidth, DisplayWidth = this.DisplayWidth, KeepDisplayAspect = this.KeepDisplayAspect, PixelAspectX = this.PixelAspectX, PixelAspectY = this.PixelAspectY, Modulus = this.Modulus, Rotation = this.Rotation, FlipHorizontal = this.FlipHorizontal, FlipVertical = this.FlipVertical, Deinterlace = this.Deinterlace, CustomDeinterlace = this.CustomDeinterlace, Decomb = this.Decomb, CustomDecomb = this.CustomDecomb, Detelecine = this.Detelecine, CustomDetelecine = this.CustomDetelecine, Denoise = this.Denoise, CustomDenoise = this.CustomDenoise, Deblock = this.Deblock, Grayscale = this.Grayscale, VideoEncoder = this.VideoEncoder, VideoOptions = this.VideoOptions, VideoProfile = this.VideoProfile, VideoPreset = this.VideoPreset, VideoTunes = this.VideoTunes, VideoLevel = this.VideoLevel, QsvDecode = this.QsvDecode, VideoEncodeRateType = this.VideoEncodeRateType, Quality = this.Quality, TargetSize = this.TargetSize, VideoBitrate = this.VideoBitrate, TwoPass = this.TwoPass, TurboFirstPass = this.TurboFirstPass, Framerate = this.Framerate, ConstantFramerate = this.ConstantFramerate, AudioEncodings = new List(this.AudioEncodings), AudioEncoderFallback = this.AudioEncoderFallback }; return profile; } } }