// -------------------------------------------------------------------------------------------------------------------- // // 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; using System.Collections.Generic; using HandBrake.Interop.Model; public class EncodingProfile { public EncodingProfile() { this.Cropping = new Cropping(); } public Container OutputFormat { get; set; } public OutputExtension PreferredExtension { get; set; } public bool IncludeChapterMarkers { get; set; } public bool LargeFile { get; set; } public bool Optimize { get; set; } public bool IPod5GSupport { get; set; } public int Width { get; set; } public int Height { get; set; } public int MaxWidth { get; set; } public int MaxHeight { get; set; } public bool CustomCropping { get; set; } public Cropping Cropping { get; set; } public Anamorphic Anamorphic { get; set; } public bool UseDisplayWidth { get; set; } public int DisplayWidth { get; set; } public bool KeepDisplayAspect { get; set; } public int PixelAspectX { get; set; } public int PixelAspectY { get; set; } public int Modulus { get; set; } public Deinterlace Deinterlace { get; set; } public string CustomDeinterlace { get; set; } public Decomb Decomb { get; set; } public string CustomDecomb { get; set; } public Detelecine Detelecine { get; set; } public string CustomDetelecine { get; set; } public Denoise Denoise { get; set; } public string CustomDenoise { get; set; } public int Deblock { get; set; } public bool Grayscale { get; set; } public string VideoEncoder { get; set; } public string X264Options { get; set; } public string X264Profile { get; set; } public string X264Preset { get; set; } public string X264Tune { get; set; } public string H264Level { get; set; } public VideoEncodeRateType VideoEncodeRateType { get; set; } public double Quality { get; set; } public int TargetSize { get; set; } public int VideoBitrate { get; set; } public bool TwoPass { get; set; } public bool TurboFirstPass { get; set; } public double Framerate { get; set; } public bool ConstantFramerate { get; set; } [Obsolete("This setting is obsolete. Use Framerate and ConstantFramerate instead.")] public bool PeakFramerate { get; set; } public List AudioEncodings { get; set; } public string AudioEncoderFallback { get; set; } public EncodingProfile Clone() { EncodingProfile profile = new EncodingProfile { OutputFormat = this.OutputFormat, 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, CustomCropping = this.CustomCropping, 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, 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, X264Options = this.X264Options, X264Profile = this.X264Profile, X264Preset = this.X264Preset, X264Tune = this.X264Tune, H264Level = this.H264Level, VideoEncodeRateType = this.VideoEncodeRateType, Quality = this.Quality, TargetSize = this.TargetSize, VideoBitrate = this.VideoBitrate, TwoPass = this.TwoPass, TurboFirstPass = this.TurboFirstPass, Framerate = this.Framerate, ConstantFramerate = this.ConstantFramerate, #pragma warning disable 612,618 PeakFramerate = this.PeakFramerate, #pragma warning restore 612,618 AudioEncodings = new List(this.AudioEncodings) }; return profile; } } }