/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the medialive-2017-10-14.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.MediaLive.Model { /// /// H265 Settings /// public partial class H265Settings { private H265AdaptiveQuantization _adaptiveQuantization; private AfdSignaling _afdSignaling; private H265AlternativeTransferFunction _alternativeTransferFunction; private int? _bitrate; private int? _bufSize; private H265ColorMetadata _colorMetadata; private H265ColorSpaceSettings _colorSpaceSettings; private H265FilterSettings _filterSettings; private FixedAfd _fixedAfd; private H265FlickerAq _flickerAq; private int? _framerateDenominator; private int? _framerateNumerator; private int? _gopClosedCadence; private double? _gopSize; private H265GopSizeUnits _gopSizeUnits; private H265Level _level; private H265LookAheadRateControl _lookAheadRateControl; private int? _maxBitrate; private int? _minIInterval; private int? _parDenominator; private int? _parNumerator; private H265Profile _profile; private int? _qvbrQualityLevel; private H265RateControlMode _rateControlMode; private H265ScanType _scanType; private H265SceneChangeDetect _sceneChangeDetect; private int? _slices; private H265Tier _tier; private TimecodeBurninSettings _timecodeBurninSettings; private H265TimecodeInsertionBehavior _timecodeInsertion; /// /// Gets and sets the property AdaptiveQuantization. Adaptive quantization. Allows intra-frame /// quantizers to vary to improve visual quality. /// public H265AdaptiveQuantization AdaptiveQuantization { get { return this._adaptiveQuantization; } set { this._adaptiveQuantization = value; } } // Check to see if AdaptiveQuantization property is set internal bool IsSetAdaptiveQuantization() { return this._adaptiveQuantization != null; } /// /// Gets and sets the property AfdSignaling. Indicates that AFD values will be written /// into the output stream. If afdSignaling is "auto", the system will try to preserve /// the input AFD value (in cases where multiple AFD values are valid). If set to "fixed", /// the AFD value will be the value configured in the fixedAfd parameter. /// public AfdSignaling AfdSignaling { get { return this._afdSignaling; } set { this._afdSignaling = value; } } // Check to see if AfdSignaling property is set internal bool IsSetAfdSignaling() { return this._afdSignaling != null; } /// /// Gets and sets the property AlternativeTransferFunction. Whether or not EML should /// insert an Alternative Transfer Function SEI message to support backwards compatibility /// with non-HDR decoders and displays. /// public H265AlternativeTransferFunction AlternativeTransferFunction { get { return this._alternativeTransferFunction; } set { this._alternativeTransferFunction = value; } } // Check to see if AlternativeTransferFunction property is set internal bool IsSetAlternativeTransferFunction() { return this._alternativeTransferFunction != null; } /// /// Gets and sets the property Bitrate. Average bitrate in bits/second. Required when /// the rate control mode is VBR or CBR. Not used for QVBR. In an MS Smooth output group, /// each output must have a unique value when its bitrate is rounded down to the nearest /// multiple of 1000. /// [AWSProperty(Min=100000, Max=40000000)] public int Bitrate { get { return this._bitrate.GetValueOrDefault(); } set { this._bitrate = value; } } // Check to see if Bitrate property is set internal bool IsSetBitrate() { return this._bitrate.HasValue; } /// /// Gets and sets the property BufSize. Size of buffer (HRD buffer model) in bits. /// [AWSProperty(Min=100000, Max=80000000)] public int BufSize { get { return this._bufSize.GetValueOrDefault(); } set { this._bufSize = value; } } // Check to see if BufSize property is set internal bool IsSetBufSize() { return this._bufSize.HasValue; } /// /// Gets and sets the property ColorMetadata. Includes colorspace metadata in the output. /// public H265ColorMetadata ColorMetadata { get { return this._colorMetadata; } set { this._colorMetadata = value; } } // Check to see if ColorMetadata property is set internal bool IsSetColorMetadata() { return this._colorMetadata != null; } /// /// Gets and sets the property ColorSpaceSettings. Color Space settings /// public H265ColorSpaceSettings ColorSpaceSettings { get { return this._colorSpaceSettings; } set { this._colorSpaceSettings = value; } } // Check to see if ColorSpaceSettings property is set internal bool IsSetColorSpaceSettings() { return this._colorSpaceSettings != null; } /// /// Gets and sets the property FilterSettings. Optional filters that you can apply to /// an encode. /// public H265FilterSettings FilterSettings { get { return this._filterSettings; } set { this._filterSettings = value; } } // Check to see if FilterSettings property is set internal bool IsSetFilterSettings() { return this._filterSettings != null; } /// /// Gets and sets the property FixedAfd. Four bit AFD value to write on all frames of /// video in the output stream. Only valid when afdSignaling is set to 'Fixed'. /// public FixedAfd FixedAfd { get { return this._fixedAfd; } set { this._fixedAfd = value; } } // Check to see if FixedAfd property is set internal bool IsSetFixedAfd() { return this._fixedAfd != null; } /// /// Gets and sets the property FlickerAq. If set to enabled, adjust quantization within /// each frame to reduce flicker or 'pop' on I-frames. /// public H265FlickerAq FlickerAq { get { return this._flickerAq; } set { this._flickerAq = value; } } // Check to see if FlickerAq property is set internal bool IsSetFlickerAq() { return this._flickerAq != null; } /// /// Gets and sets the property FramerateDenominator. Framerate denominator. /// [AWSProperty(Required=true, Min=1, Max=3003)] public int FramerateDenominator { get { return this._framerateDenominator.GetValueOrDefault(); } set { this._framerateDenominator = value; } } // Check to see if FramerateDenominator property is set internal bool IsSetFramerateDenominator() { return this._framerateDenominator.HasValue; } /// /// Gets and sets the property FramerateNumerator. Framerate numerator - framerate is /// a fraction, e.g. 24000 / 1001 = 23.976 fps. /// [AWSProperty(Required=true, Min=1)] public int FramerateNumerator { get { return this._framerateNumerator.GetValueOrDefault(); } set { this._framerateNumerator = value; } } // Check to see if FramerateNumerator property is set internal bool IsSetFramerateNumerator() { return this._framerateNumerator.HasValue; } /// /// Gets and sets the property GopClosedCadence. Frequency of closed GOPs. In streaming /// applications, it is recommended that this be set to 1 so a decoder joining mid-stream /// will receive an IDR frame as quickly as possible. Setting this value to 0 will break /// output segmenting. /// [AWSProperty(Min=0)] public int GopClosedCadence { get { return this._gopClosedCadence.GetValueOrDefault(); } set { this._gopClosedCadence = value; } } // Check to see if GopClosedCadence property is set internal bool IsSetGopClosedCadence() { return this._gopClosedCadence.HasValue; } /// /// Gets and sets the property GopSize. GOP size (keyframe interval) in units of either /// frames or seconds per gopSizeUnits.If gopSizeUnits is frames, gopSize must be an integer /// and must be greater than or equal to 1.If gopSizeUnits is seconds, gopSize must be /// greater than 0, but need not be an integer. /// public double GopSize { get { return this._gopSize.GetValueOrDefault(); } set { this._gopSize = value; } } // Check to see if GopSize property is set internal bool IsSetGopSize() { return this._gopSize.HasValue; } /// /// Gets and sets the property GopSizeUnits. Indicates if the gopSize is specified in /// frames or seconds. If seconds the system will convert the gopSize into a frame count /// at run time. /// public H265GopSizeUnits GopSizeUnits { get { return this._gopSizeUnits; } set { this._gopSizeUnits = value; } } // Check to see if GopSizeUnits property is set internal bool IsSetGopSizeUnits() { return this._gopSizeUnits != null; } /// /// Gets and sets the property Level. H.265 Level. /// public H265Level Level { get { return this._level; } set { this._level = value; } } // Check to see if Level property is set internal bool IsSetLevel() { return this._level != null; } /// /// Gets and sets the property LookAheadRateControl. Amount of lookahead. A value of low /// can decrease latency and memory usage, while high can produce better quality for certain /// content. /// public H265LookAheadRateControl LookAheadRateControl { get { return this._lookAheadRateControl; } set { this._lookAheadRateControl = value; } } // Check to see if LookAheadRateControl property is set internal bool IsSetLookAheadRateControl() { return this._lookAheadRateControl != null; } /// /// Gets and sets the property MaxBitrate. For QVBR: See the tooltip for Quality level /// [AWSProperty(Min=100000, Max=40000000)] public int MaxBitrate { get { return this._maxBitrate.GetValueOrDefault(); } set { this._maxBitrate = value; } } // Check to see if MaxBitrate property is set internal bool IsSetMaxBitrate() { return this._maxBitrate.HasValue; } /// /// Gets and sets the property MinIInterval. Only meaningful if sceneChangeDetect is set /// to enabled. Defaults to 5 if multiplex rate control is used. Enforces separation /// between repeated (cadence) I-frames and I-frames inserted by Scene Change Detection. /// If a scene change I-frame is within I-interval frames of a cadence I-frame, the GOP /// is shrunk and/or stretched to the scene change I-frame. GOP stretch requires enabling /// lookahead as well as setting I-interval. The normal cadence resumes for the next GOP. /// Note: Maximum GOP stretch = GOP size + Min-I-interval - 1 /// [AWSProperty(Min=0, Max=30)] public int MinIInterval { get { return this._minIInterval.GetValueOrDefault(); } set { this._minIInterval = value; } } // Check to see if MinIInterval property is set internal bool IsSetMinIInterval() { return this._minIInterval.HasValue; } /// /// Gets and sets the property ParDenominator. Pixel Aspect Ratio denominator. /// [AWSProperty(Min=1)] public int ParDenominator { get { return this._parDenominator.GetValueOrDefault(); } set { this._parDenominator = value; } } // Check to see if ParDenominator property is set internal bool IsSetParDenominator() { return this._parDenominator.HasValue; } /// /// Gets and sets the property ParNumerator. Pixel Aspect Ratio numerator. /// [AWSProperty(Min=1)] public int ParNumerator { get { return this._parNumerator.GetValueOrDefault(); } set { this._parNumerator = value; } } // Check to see if ParNumerator property is set internal bool IsSetParNumerator() { return this._parNumerator.HasValue; } /// /// Gets and sets the property Profile. H.265 Profile. /// public H265Profile Profile { get { return this._profile; } set { this._profile = value; } } // Check to see if Profile property is set internal bool IsSetProfile() { return this._profile != null; } /// /// Gets and sets the property QvbrQualityLevel. Controls the target quality for the video /// encode. Applies only when the rate control mode is QVBR. Set values for the QVBR quality /// level field and Max bitrate field that suit your most important viewing devices. Recommended /// values are:- Primary screen: Quality level: 8 to 10. Max bitrate: 4M- PC or tablet: /// Quality level: 7. Max bitrate: 1.5M to 3M- Smartphone: Quality level: 6. Max bitrate: /// 1M to 1.5M /// [AWSProperty(Min=1, Max=10)] public int QvbrQualityLevel { get { return this._qvbrQualityLevel.GetValueOrDefault(); } set { this._qvbrQualityLevel = value; } } // Check to see if QvbrQualityLevel property is set internal bool IsSetQvbrQualityLevel() { return this._qvbrQualityLevel.HasValue; } /// /// Gets and sets the property RateControlMode. Rate control mode.QVBR: Quality will match /// the specified quality level except when it is constrained by themaximum bitrate. /// Recommended if you or your viewers pay for bandwidth.CBR: Quality varies, depending /// on the video complexity. Recommended only if you distributeyour assets to devices /// that cannot handle variable bitrates.Multiplex: This rate control mode is only supported /// (and is required) when the video is beingdelivered to a MediaLive Multiplex in which /// case the rate control configuration is controlledby the properties within the Multiplex /// Program. /// public H265RateControlMode RateControlMode { get { return this._rateControlMode; } set { this._rateControlMode = value; } } // Check to see if RateControlMode property is set internal bool IsSetRateControlMode() { return this._rateControlMode != null; } /// /// Gets and sets the property ScanType. Sets the scan type of the output to progressive /// or top-field-first interlaced. /// public H265ScanType ScanType { get { return this._scanType; } set { this._scanType = value; } } // Check to see if ScanType property is set internal bool IsSetScanType() { return this._scanType != null; } /// /// Gets and sets the property SceneChangeDetect. Scene change detection. /// public H265SceneChangeDetect SceneChangeDetect { get { return this._sceneChangeDetect; } set { this._sceneChangeDetect = value; } } // Check to see if SceneChangeDetect property is set internal bool IsSetSceneChangeDetect() { return this._sceneChangeDetect != null; } /// /// Gets and sets the property Slices. Number of slices per picture. Must be less than /// or equal to the number of macroblock rows for progressive pictures, and less than /// or equal to half the number of macroblock rows for interlaced pictures.This field /// is optional; when no value is specified the encoder will choose the number of slices /// based on encode resolution. /// [AWSProperty(Min=1, Max=16)] public int Slices { get { return this._slices.GetValueOrDefault(); } set { this._slices = value; } } // Check to see if Slices property is set internal bool IsSetSlices() { return this._slices.HasValue; } /// /// Gets and sets the property Tier. H.265 Tier. /// public H265Tier Tier { get { return this._tier; } set { this._tier = value; } } // Check to see if Tier property is set internal bool IsSetTier() { return this._tier != null; } /// /// Gets and sets the property TimecodeBurninSettings. Timecode burn-in settings /// public TimecodeBurninSettings TimecodeBurninSettings { get { return this._timecodeBurninSettings; } set { this._timecodeBurninSettings = value; } } // Check to see if TimecodeBurninSettings property is set internal bool IsSetTimecodeBurninSettings() { return this._timecodeBurninSettings != null; } /// /// Gets and sets the property TimecodeInsertion. Determines how timecodes should be inserted /// into the video elementary stream.- 'disabled': Do not include timecodes- 'picTimingSei': /// Pass through picture timing SEI messages from the source specified in Timecode Config /// public H265TimecodeInsertionBehavior TimecodeInsertion { get { return this._timecodeInsertion; } set { this._timecodeInsertion = value; } } // Check to see if TimecodeInsertion property is set internal bool IsSetTimecodeInsertion() { return this._timecodeInsertion != null; } } }