/*
* 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 mediaconvert-2017-08-29.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.MediaConvert.Model
{
///
/// Settings for H265 codec
///
public partial class H265Settings
{
private H265AdaptiveQuantization _adaptiveQuantization;
private H265AlternateTransferFunctionSei _alternateTransferFunctionSei;
private BandwidthReductionFilter _bandwidthReductionFilter;
private int? _bitrate;
private H265CodecLevel _codecLevel;
private H265CodecProfile _codecProfile;
private H265DynamicSubGop _dynamicSubGop;
private H265FlickerAdaptiveQuantization _flickerAdaptiveQuantization;
private H265FramerateControl _framerateControl;
private H265FramerateConversionAlgorithm _framerateConversionAlgorithm;
private int? _framerateDenominator;
private int? _framerateNumerator;
private H265GopBReference _gopBReference;
private int? _gopClosedCadence;
private double? _gopSize;
private H265GopSizeUnits _gopSizeUnits;
private int? _hrdBufferFinalFillPercentage;
private int? _hrdBufferInitialFillPercentage;
private int? _hrdBufferSize;
private H265InterlaceMode _interlaceMode;
private int? _maxBitrate;
private int? _minIInterval;
private int? _numberBFramesBetweenReferenceFrames;
private int? _numberReferenceFrames;
private H265ParControl _parControl;
private int? _parDenominator;
private int? _parNumerator;
private H265QualityTuningLevel _qualityTuningLevel;
private H265QvbrSettings _qvbrSettings;
private H265RateControlMode _rateControlMode;
private H265SampleAdaptiveOffsetFilterMode _sampleAdaptiveOffsetFilterMode;
private H265ScanTypeConversionMode _scanTypeConversionMode;
private H265SceneChangeDetect _sceneChangeDetect;
private int? _slices;
private H265SlowPal _slowPal;
private H265SpatialAdaptiveQuantization _spatialAdaptiveQuantization;
private H265Telecine _telecine;
private H265TemporalAdaptiveQuantization _temporalAdaptiveQuantization;
private H265TemporalIds _temporalIds;
private H265Tiles _tiles;
private H265UnregisteredSeiTimecode _unregisteredSeiTimecode;
private H265WriteMp4PackagingType _writeMp4PackagingType;
///
/// Gets and sets the property AdaptiveQuantization. When you set Adaptive Quantization
/// to Auto, or leave blank, MediaConvert automatically applies quantization to improve
/// the video quality of your output. Set Adaptive Quantization to Low, Medium, High,
/// Higher, or Max to manually control the strength of the quantization filter. When you
/// do, you can specify a value for Spatial Adaptive Quantization, Temporal Adaptive Quantization,
/// and Flicker Adaptive Quantization, to further control the quantization filter. Set
/// Adaptive Quantization to Off to apply no quantization to your output.
///
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 AlternateTransferFunctionSei. Enables Alternate Transfer
/// Function SEI message for outputs using Hybrid Log Gamma (HLG) Electro-Optical Transfer
/// Function (EOTF).
///
public H265AlternateTransferFunctionSei AlternateTransferFunctionSei
{
get { return this._alternateTransferFunctionSei; }
set { this._alternateTransferFunctionSei = value; }
}
// Check to see if AlternateTransferFunctionSei property is set
internal bool IsSetAlternateTransferFunctionSei()
{
return this._alternateTransferFunctionSei != null;
}
///
/// Gets and sets the property BandwidthReductionFilter. The Bandwidth reduction filter
/// increases the video quality of your output relative to its bitrate. Use to lower the
/// bitrate of your constant quality QVBR output, with little or no perceptual decrease
/// in quality. Or, use to increase the video quality of outputs with other rate control
/// modes relative to the bitrate that you specify. Bandwidth reduction increases further
/// when your input is low quality or noisy. Outputs that use this feature incur pro-tier
/// pricing. When you include Bandwidth reduction filter, you cannot include the Noise
/// reducer preprocessor.
///
public BandwidthReductionFilter BandwidthReductionFilter
{
get { return this._bandwidthReductionFilter; }
set { this._bandwidthReductionFilter = value; }
}
// Check to see if BandwidthReductionFilter property is set
internal bool IsSetBandwidthReductionFilter()
{
return this._bandwidthReductionFilter != null;
}
///
/// Gets and sets the property Bitrate. Specify the average bitrate in bits per second.
/// Required for VBR and CBR. For MS Smooth outputs, bitrates must be unique when rounded
/// down to the nearest multiple of 1000.
///
[AWSProperty(Min=1000, Max=1466400000)]
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 CodecLevel. H.265 Level.
///
public H265CodecLevel CodecLevel
{
get { return this._codecLevel; }
set { this._codecLevel = value; }
}
// Check to see if CodecLevel property is set
internal bool IsSetCodecLevel()
{
return this._codecLevel != null;
}
///
/// Gets and sets the property CodecProfile. Represents the Profile and Tier, per the
/// HEVC (H.265) specification. Selections are grouped as [Profile] / [Tier], so "Main/High"
/// represents Main Profile with High Tier. 4:2:2 profiles are only available with the
/// HEVC 4:2:2 License.
///
public H265CodecProfile CodecProfile
{
get { return this._codecProfile; }
set { this._codecProfile = value; }
}
// Check to see if CodecProfile property is set
internal bool IsSetCodecProfile()
{
return this._codecProfile != null;
}
///
/// Gets and sets the property DynamicSubGop. Specify whether to allow the number of B-frames
/// in your output GOP structure to vary or not depending on your input video content.
/// To improve the subjective video quality of your output that has high-motion content:
/// Leave blank or keep the default value Adaptive. MediaConvert will use fewer B-frames
/// for high-motion video content than low-motion content. The maximum number of B- frames
/// is limited by the value that you choose for B-frames between reference frames. To
/// use the same number B-frames for all types of content: Choose Static.
///
public H265DynamicSubGop DynamicSubGop
{
get { return this._dynamicSubGop; }
set { this._dynamicSubGop = value; }
}
// Check to see if DynamicSubGop property is set
internal bool IsSetDynamicSubGop()
{
return this._dynamicSubGop != null;
}
///
/// Gets and sets the property FlickerAdaptiveQuantization. Enable this setting to have
/// the encoder reduce I-frame pop. I-frame pop appears as a visual flicker that can arise
/// when the encoder saves bits by copying some macroblocks many times from frame to frame,
/// and then refreshes them at the I-frame. When you enable this setting, the encoder
/// updates these macroblocks slightly more often to smooth out the flicker. This setting
/// is disabled by default. Related setting: In addition to enabling this setting, you
/// must also set adaptiveQuantization to a value other than Off.
///
public H265FlickerAdaptiveQuantization FlickerAdaptiveQuantization
{
get { return this._flickerAdaptiveQuantization; }
set { this._flickerAdaptiveQuantization = value; }
}
// Check to see if FlickerAdaptiveQuantization property is set
internal bool IsSetFlickerAdaptiveQuantization()
{
return this._flickerAdaptiveQuantization != null;
}
///
/// Gets and sets the property FramerateControl. Use the Framerate setting to specify
/// the frame rate for this output. If you want to keep the same frame rate as the input
/// video, choose Follow source. If you want to do frame rate conversion, choose a frame
/// rate from the dropdown list or choose Custom. The framerates shown in the dropdown
/// list are decimal approximations of fractions. If you choose Custom, specify your frame
/// rate as a fraction.
///
public H265FramerateControl FramerateControl
{
get { return this._framerateControl; }
set { this._framerateControl = value; }
}
// Check to see if FramerateControl property is set
internal bool IsSetFramerateControl()
{
return this._framerateControl != null;
}
///
/// Gets and sets the property FramerateConversionAlgorithm. Choose the method that you
/// want MediaConvert to use when increasing or decreasing the frame rate. For numerically
/// simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default
/// value, Drop duplicate. For numerically complex conversions, to avoid stutter: Choose
/// Interpolate. This results in a smooth picture, but might introduce undesirable video
/// artifacts. For complex frame rate conversions, especially if your source video has
/// already been converted from its original cadence: Choose FrameFormer to do motion-compensated
/// interpolation. FrameFormer uses the best conversion method frame by frame. Note that
/// using FrameFormer increases the transcoding time and incurs a significant add-on cost.
/// When you choose FrameFormer, your input video resolution must be at least 128x96.
///
public H265FramerateConversionAlgorithm FramerateConversionAlgorithm
{
get { return this._framerateConversionAlgorithm; }
set { this._framerateConversionAlgorithm = value; }
}
// Check to see if FramerateConversionAlgorithm property is set
internal bool IsSetFramerateConversionAlgorithm()
{
return this._framerateConversionAlgorithm != null;
}
///
/// Gets and sets the property FramerateDenominator. When you use the API for transcode
/// jobs that use frame rate conversion, specify the frame rate as a fraction. For example,
/// 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of
/// this fraction. In this example, use 1001 for the value of FramerateDenominator. When
/// you use the console for transcode jobs that use frame rate conversion, provide the
/// value as a decimal number for Framerate. In this example, specify 23.976.
///
[AWSProperty(Min=1, Max=2147483647)]
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. When you use the API for transcode
/// jobs that use frame rate conversion, specify the frame rate as a fraction. For example,
/// 24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this
/// fraction. In this example, use 24000 for the value of FramerateNumerator. When you
/// use the console for transcode jobs that use frame rate conversion, provide the value
/// as a decimal number for Framerate. In this example, specify 23.976.
///
[AWSProperty(Min=1, Max=2147483647)]
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 GopBReference. Specify whether to allow B-frames to be
/// referenced by other frame types. To use reference B-frames when your GOP structure
/// has 1 or more B-frames: Leave blank or keep the default value Enabled. We recommend
/// that you choose Enabled to help improve the video quality of your output relative
/// to its bitrate. To not use reference B-frames: Choose Disabled.
///
public H265GopBReference GopBReference
{
get { return this._gopBReference; }
set { this._gopBReference = value; }
}
// Check to see if GopBReference property is set
internal bool IsSetGopBReference()
{
return this._gopBReference != null;
}
///
/// Gets and sets the property GopClosedCadence. Specify the relative frequency of open
/// to closed GOPs in this output. For example, if you want to allow four open GOPs and
/// then require a closed GOP, set this value to 5. We recommend that you have the transcoder
/// automatically choose this value for you based on characteristics of your input video.
/// To enable this automatic behavior, do this by keeping the default empty value. If
/// you do explicitly specify a value, for segmented outputs, don't set this value to
/// 0.
///
[AWSProperty(Min=0, Max=2147483647)]
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. Use this setting only when you set GOP mode control
/// to Specified, frames or Specified, seconds. Specify the GOP length using a whole number
/// of frames or a decimal value of seconds. MediaConvert will interpret this value as
/// frames or seconds depending on the value you choose for GOP mode control. If you want
/// to allow MediaConvert to automatically determine GOP size, leave GOP size blank and
/// set GOP mode control to Auto. If your output group specifies HLS, DASH, or CMAF, leave
/// GOP size blank and set GOP mode control to Auto in each output in your output group.
///
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. Specify how the transcoder determines GOP
/// size for this output. We recommend that you have the transcoder automatically choose
/// this value for you based on characteristics of your input video. To enable this automatic
/// behavior, choose Auto and and leave GOP size blank. By default, if you don't specify
/// GOP mode control, MediaConvert will use automatic behavior. If your output group specifies
/// HLS, DASH, or CMAF, set GOP mode control to Auto and leave GOP size blank in each
/// output in your output group. To explicitly specify the GOP length, choose Specified,
/// frames or Specified, seconds and then provide the GOP length in the related setting
/// GOP size.
///
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 HrdBufferFinalFillPercentage. If your downstream systems
/// have strict buffer requirements: Specify the minimum percentage of the HRD buffer
/// that's available at the end of each encoded video segment. For the best video quality:
/// Set to 0 or leave blank to automatically determine the final buffer fill percentage.
///
[AWSProperty(Min=0, Max=100)]
public int HrdBufferFinalFillPercentage
{
get { return this._hrdBufferFinalFillPercentage.GetValueOrDefault(); }
set { this._hrdBufferFinalFillPercentage = value; }
}
// Check to see if HrdBufferFinalFillPercentage property is set
internal bool IsSetHrdBufferFinalFillPercentage()
{
return this._hrdBufferFinalFillPercentage.HasValue;
}
///
/// Gets and sets the property HrdBufferInitialFillPercentage. Percentage of the buffer
/// that should initially be filled (HRD buffer model).
///
[AWSProperty(Min=0, Max=100)]
public int HrdBufferInitialFillPercentage
{
get { return this._hrdBufferInitialFillPercentage.GetValueOrDefault(); }
set { this._hrdBufferInitialFillPercentage = value; }
}
// Check to see if HrdBufferInitialFillPercentage property is set
internal bool IsSetHrdBufferInitialFillPercentage()
{
return this._hrdBufferInitialFillPercentage.HasValue;
}
///
/// Gets and sets the property HrdBufferSize. Size of buffer (HRD buffer model) in bits.
/// For example, enter five megabits as 5000000.
///
[AWSProperty(Min=0, Max=1466400000)]
public int HrdBufferSize
{
get { return this._hrdBufferSize.GetValueOrDefault(); }
set { this._hrdBufferSize = value; }
}
// Check to see if HrdBufferSize property is set
internal bool IsSetHrdBufferSize()
{
return this._hrdBufferSize.HasValue;
}
///
/// Gets and sets the property InterlaceMode. Choose the scan line type for the output.
/// Keep the default value, Progressive to create a progressive output, regardless of
/// the scan type of your input. Use Top field first or Bottom field first to create an
/// output that's interlaced with the same field polarity throughout. Use Follow, default
/// top or Follow, default bottom to produce outputs with the same field polarity as the
/// source. For jobs that have multiple inputs, the output field polarity might change
/// over the course of the output. Follow behavior depends on the input scan type. If
/// the source is interlaced, the output will be interlaced with the same polarity as
/// the source. If the source is progressive, the output will be interlaced with top field
/// bottom field first, depending on which of the Follow options you choose.
///
public H265InterlaceMode InterlaceMode
{
get { return this._interlaceMode; }
set { this._interlaceMode = value; }
}
// Check to see if InterlaceMode property is set
internal bool IsSetInterlaceMode()
{
return this._interlaceMode != null;
}
///
/// Gets and sets the property MaxBitrate. Maximum bitrate in bits/second. For example,
/// enter five megabits per second as 5000000. Required when Rate control mode is QVBR.
///
[AWSProperty(Min=1000, Max=1466400000)]
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. Use this setting only when you also enable
/// Scene change detection. This setting determines how the encoder manages the spacing
/// between I-frames that it inserts as part of the I-frame cadence and the I-frames that
/// it inserts for Scene change detection. We recommend that you have the transcoder automatically
/// choose this value for you based on characteristics of your input video. To enable
/// this automatic behavior, do this by keeping the default empty value. When you explicitly
/// specify a value for this setting, the encoder determines whether to skip a cadence-driven
/// I-frame by the value you set. For example, if you set Min I interval to 5 and a cadence-driven
/// I-frame would fall within 5 frames of a scene-change I-frame, then the encoder skips
/// the cadence-driven I-frame. In this way, one GOP is shrunk slightly and one GOP is
/// stretched slightly. When the cadence-driven I-frames are farther from the scene-change
/// I-frame than the value you set, then the encoder leaves all I-frames in place and
/// the GOPs surrounding the scene change are smaller than the usual cadence GOPs.
///
[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 NumberBFramesBetweenReferenceFrames. Specify the number
/// of B-frames between reference frames in this output. For the best video quality: Leave
/// blank. MediaConvert automatically determines the number of B-frames to use based on
/// the characteristics of your input video. To manually specify the number of B-frames
/// between reference frames: Enter an integer from 0 to 7.
///
[AWSProperty(Min=0, Max=7)]
public int NumberBFramesBetweenReferenceFrames
{
get { return this._numberBFramesBetweenReferenceFrames.GetValueOrDefault(); }
set { this._numberBFramesBetweenReferenceFrames = value; }
}
// Check to see if NumberBFramesBetweenReferenceFrames property is set
internal bool IsSetNumberBFramesBetweenReferenceFrames()
{
return this._numberBFramesBetweenReferenceFrames.HasValue;
}
///
/// Gets and sets the property NumberReferenceFrames. Number of reference frames to use.
/// The encoder may use more than requested if using B-frames and/or interlaced encoding.
///
[AWSProperty(Min=1, Max=6)]
public int NumberReferenceFrames
{
get { return this._numberReferenceFrames.GetValueOrDefault(); }
set { this._numberReferenceFrames = value; }
}
// Check to see if NumberReferenceFrames property is set
internal bool IsSetNumberReferenceFrames()
{
return this._numberReferenceFrames.HasValue;
}
///
/// Gets and sets the property ParControl. Optional. Specify how the service determines
/// the pixel aspect ratio (PAR) for this output. The default behavior, Follow source,
/// uses the PAR from your input video for your output. To specify a different PAR, choose
/// any value other than Follow source. When you choose SPECIFIED for this setting, you
/// must also specify values for the parNumerator and parDenominator settings.
///
public H265ParControl ParControl
{
get { return this._parControl; }
set { this._parControl = value; }
}
// Check to see if ParControl property is set
internal bool IsSetParControl()
{
return this._parControl != null;
}
///
/// Gets and sets the property ParDenominator. Required when you set Pixel aspect ratio
/// to SPECIFIED. On the console, this corresponds to any value other than Follow source.
/// When you specify an output pixel aspect ratio (PAR) that is different from your input
/// video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC widescreen,
/// you would specify the ratio 40:33. In this example, the value for parDenominator is
/// 33.
///
[AWSProperty(Min=1, Max=2147483647)]
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. Required when you set Pixel aspect ratio
/// to SPECIFIED. On the console, this corresponds to any value other than Follow source.
/// When you specify an output pixel aspect ratio (PAR) that is different from your input
/// video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC widescreen,
/// you would specify the ratio 40:33. In this example, the value for parNumerator is
/// 40.
///
[AWSProperty(Min=1, Max=2147483647)]
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 QualityTuningLevel. Optional. Use Quality tuning level
/// to choose how you want to trade off encoding speed for output video quality. The default
/// behavior is faster, lower quality, single-pass encoding.
///
public H265QualityTuningLevel QualityTuningLevel
{
get { return this._qualityTuningLevel; }
set { this._qualityTuningLevel = value; }
}
// Check to see if QualityTuningLevel property is set
internal bool IsSetQualityTuningLevel()
{
return this._qualityTuningLevel != null;
}
///
/// Gets and sets the property QvbrSettings. Settings for quality-defined variable bitrate
/// encoding with the H.265 codec. Use these settings only when you set QVBR for Rate
/// control mode.
///
public H265QvbrSettings QvbrSettings
{
get { return this._qvbrSettings; }
set { this._qvbrSettings = value; }
}
// Check to see if QvbrSettings property is set
internal bool IsSetQvbrSettings()
{
return this._qvbrSettings != null;
}
///
/// Gets and sets the property RateControlMode. Use this setting to specify whether this
/// output has a variable bitrate (VBR), constant bitrate (CBR) or quality-defined variable
/// bitrate (QVBR).
///
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 SampleAdaptiveOffsetFilterMode. Specify Sample Adaptive
/// Offset (SAO) filter strength. Adaptive mode dynamically selects best strength based
/// on content
///
public H265SampleAdaptiveOffsetFilterMode SampleAdaptiveOffsetFilterMode
{
get { return this._sampleAdaptiveOffsetFilterMode; }
set { this._sampleAdaptiveOffsetFilterMode = value; }
}
// Check to see if SampleAdaptiveOffsetFilterMode property is set
internal bool IsSetSampleAdaptiveOffsetFilterMode()
{
return this._sampleAdaptiveOffsetFilterMode != null;
}
///
/// Gets and sets the property ScanTypeConversionMode. Use this setting for interlaced
/// outputs, when your output frame rate is half of your input frame rate. In this situation,
/// choose Optimized interlacing to create a better quality interlaced output. In this
/// case, each progressive frame from the input corresponds to an interlaced field in
/// the output. Keep the default value, Basic interlacing, for all other output frame
/// rates. With basic interlacing, MediaConvert performs any frame rate conversion first
/// and then interlaces the frames. When you choose Optimized interlacing and you set
/// your output frame rate to a value that isn't suitable for optimized interlacing, MediaConvert
/// automatically falls back to basic interlacing. Required settings: To use optimized
/// interlacing, you must set Telecine to None or Soft. You can't use optimized interlacing
/// for hard telecine outputs. You must also set Interlace mode to a value other than
/// Progressive.
///
public H265ScanTypeConversionMode ScanTypeConversionMode
{
get { return this._scanTypeConversionMode; }
set { this._scanTypeConversionMode = value; }
}
// Check to see if ScanTypeConversionMode property is set
internal bool IsSetScanTypeConversionMode()
{
return this._scanTypeConversionMode != null;
}
///
/// Gets and sets the property SceneChangeDetect. Enable this setting to insert I-frames
/// at scene changes that the service automatically detects. This improves video quality
/// and is enabled by default. If this output uses QVBR, choose Transition detection for
/// further video quality improvement. For more information about QVBR, see https://docs.aws.amazon.com/console/mediaconvert/cbr-vbr-qvbr.
///
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.
///
[AWSProperty(Min=1, Max=32)]
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 SlowPal. Ignore this setting unless your input frame rate
/// is 23.976 or 24 frames per second (fps). Enable slow PAL to create a 25 fps output.
/// When you enable slow PAL, MediaConvert relabels the video frames to 25 fps and resamples
/// your audio to keep it synchronized with the video. Note that enabling this setting
/// will slightly reduce the duration of your video. Required settings: You must also
/// set Framerate to 25.
///
public H265SlowPal SlowPal
{
get { return this._slowPal; }
set { this._slowPal = value; }
}
// Check to see if SlowPal property is set
internal bool IsSetSlowPal()
{
return this._slowPal != null;
}
///
/// Gets and sets the property SpatialAdaptiveQuantization. Keep the default value, Enabled,
/// to adjust quantization within each frame based on spatial variation of content complexity.
/// When you enable this feature, the encoder uses fewer bits on areas that can sustain
/// more distortion with no noticeable visual degradation and uses more bits on areas
/// where any small distortion will be noticeable. For example, complex textured blocks
/// are encoded with fewer bits and smooth textured blocks are encoded with more bits.
/// Enabling this feature will almost always improve your video quality. Note, though,
/// that this feature doesn't take into account where the viewer's attention is likely
/// to be. If viewers are likely to be focusing their attention on a part of the screen
/// with a lot of complex texture, you might choose to disable this feature. Related setting:
/// When you enable spatial adaptive quantization, set the value for Adaptive quantization
/// depending on your content. For homogeneous content, such as cartoons and video games,
/// set it to Low. For content with a wider variety of textures, set it to High or Higher.
///
public H265SpatialAdaptiveQuantization SpatialAdaptiveQuantization
{
get { return this._spatialAdaptiveQuantization; }
set { this._spatialAdaptiveQuantization = value; }
}
// Check to see if SpatialAdaptiveQuantization property is set
internal bool IsSetSpatialAdaptiveQuantization()
{
return this._spatialAdaptiveQuantization != null;
}
///
/// Gets and sets the property Telecine. This field applies only if the Streams > Advanced
/// > Framerate field is set to 29.970. This field works with the Streams > Advanced >
/// Preprocessors > Deinterlacer field and the Streams > Advanced > Interlaced Mode field
/// to identify the scan type for the output: Progressive, Interlaced, Hard Telecine or
/// Soft Telecine. - Hard: produces 29.97i output from 23.976 input. - Soft: produces
/// 23.976; the player converts this output to 29.97i.
///
public H265Telecine Telecine
{
get { return this._telecine; }
set { this._telecine = value; }
}
// Check to see if Telecine property is set
internal bool IsSetTelecine()
{
return this._telecine != null;
}
///
/// Gets and sets the property TemporalAdaptiveQuantization. Keep the default value, Enabled,
/// to adjust quantization within each frame based on temporal variation of content complexity.
/// When you enable this feature, the encoder uses fewer bits on areas of the frame that
/// aren't moving and uses more bits on complex objects with sharp edges that move a lot.
/// For example, this feature improves the readability of text tickers on newscasts and
/// scoreboards on sports matches. Enabling this feature will almost always improve your
/// video quality. Note, though, that this feature doesn't take into account where the
/// viewer's attention is likely to be. If viewers are likely to be focusing their attention
/// on a part of the screen that doesn't have moving objects with sharp edges, such as
/// sports athletes' faces, you might choose to disable this feature. Related setting:
/// When you enable temporal quantization, adjust the strength of the filter with the
/// setting Adaptive quantization.
///
public H265TemporalAdaptiveQuantization TemporalAdaptiveQuantization
{
get { return this._temporalAdaptiveQuantization; }
set { this._temporalAdaptiveQuantization = value; }
}
// Check to see if TemporalAdaptiveQuantization property is set
internal bool IsSetTemporalAdaptiveQuantization()
{
return this._temporalAdaptiveQuantization != null;
}
///
/// Gets and sets the property TemporalIds. Enables temporal layer identifiers in the
/// encoded bitstream. Up to 3 layers are supported depending on GOP structure: I- and
/// P-frames form one layer, reference B-frames can form a second layer and non-reference
/// b-frames can form a third layer. Decoders can optionally decode only the lower temporal
/// layers to generate a lower frame rate output. For example, given a bitstream with
/// temporal IDs and with b-frames = 1 (i.e. IbPbPb display order), a decoder could decode
/// all the frames for full frame rate output or only the I and P frames (lowest temporal
/// layer) for a half frame rate output.
///
public H265TemporalIds TemporalIds
{
get { return this._temporalIds; }
set { this._temporalIds = value; }
}
// Check to see if TemporalIds property is set
internal bool IsSetTemporalIds()
{
return this._temporalIds != null;
}
///
/// Gets and sets the property Tiles. Enable use of tiles, allowing horizontal as well
/// as vertical subdivision of the encoded pictures.
///
public H265Tiles Tiles
{
get { return this._tiles; }
set { this._tiles = value; }
}
// Check to see if Tiles property is set
internal bool IsSetTiles()
{
return this._tiles != null;
}
///
/// Gets and sets the property UnregisteredSeiTimecode. Inserts timecode for each frame
/// as 4 bytes of an unregistered SEI message.
///
public H265UnregisteredSeiTimecode UnregisteredSeiTimecode
{
get { return this._unregisteredSeiTimecode; }
set { this._unregisteredSeiTimecode = value; }
}
// Check to see if UnregisteredSeiTimecode property is set
internal bool IsSetUnregisteredSeiTimecode()
{
return this._unregisteredSeiTimecode != null;
}
///
/// Gets and sets the property WriteMp4PackagingType. If the location of parameter set
/// NAL units doesn't matter in your workflow, ignore this setting. Use this setting only
/// with CMAF or DASH outputs, or with standalone file outputs in an MPEG-4 container
/// (MP4 outputs). Choose HVC1 to mark your output as HVC1. This makes your output compliant
/// with the following specification: ISO IECJTC1 SC29 N13798 Text ISO/IEC FDIS 14496-15
/// 3rd Edition. For these outputs, the service stores parameter set NAL units in the
/// sample headers but not in the samples directly. For MP4 outputs, when you choose HVC1,
/// your output video might not work properly with some downstream systems and video players.
/// The service defaults to marking your output as HEV1. For these outputs, the service
/// writes parameter set NAL units directly into the samples.
///
public H265WriteMp4PackagingType WriteMp4PackagingType
{
get { return this._writeMp4PackagingType; }
set { this._writeMp4PackagingType = value; }
}
// Check to see if WriteMp4PackagingType property is set
internal bool IsSetWriteMp4PackagingType()
{
return this._writeMp4PackagingType != null;
}
}
}