/*
* 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
{
///
/// Required when you set Codec to the value H_264.
///
public partial class H264Settings
{
private H264AdaptiveQuantization _adaptiveQuantization;
private BandwidthReductionFilter _bandwidthReductionFilter;
private int? _bitrate;
private H264CodecLevel _codecLevel;
private H264CodecProfile _codecProfile;
private H264DynamicSubGop _dynamicSubGop;
private H264EntropyEncoding _entropyEncoding;
private H264FieldEncoding _fieldEncoding;
private H264FlickerAdaptiveQuantization _flickerAdaptiveQuantization;
private H264FramerateControl _framerateControl;
private H264FramerateConversionAlgorithm _framerateConversionAlgorithm;
private int? _framerateDenominator;
private int? _framerateNumerator;
private H264GopBReference _gopBReference;
private int? _gopClosedCadence;
private double? _gopSize;
private H264GopSizeUnits _gopSizeUnits;
private int? _hrdBufferFinalFillPercentage;
private int? _hrdBufferInitialFillPercentage;
private int? _hrdBufferSize;
private H264InterlaceMode _interlaceMode;
private int? _maxBitrate;
private int? _minIInterval;
private int? _numberBFramesBetweenReferenceFrames;
private int? _numberReferenceFrames;
private H264ParControl _parControl;
private int? _parDenominator;
private int? _parNumerator;
private H264QualityTuningLevel _qualityTuningLevel;
private H264QvbrSettings _qvbrSettings;
private H264RateControlMode _rateControlMode;
private H264RepeatPps _repeatPps;
private H264ScanTypeConversionMode _scanTypeConversionMode;
private H264SceneChangeDetect _sceneChangeDetect;
private int? _slices;
private H264SlowPal _slowPal;
private int? _softness;
private H264SpatialAdaptiveQuantization _spatialAdaptiveQuantization;
private H264Syntax _syntax;
private H264Telecine _telecine;
private H264TemporalAdaptiveQuantization _temporalAdaptiveQuantization;
private H264UnregisteredSeiTimecode _unregisteredSeiTimecode;
///
/// Gets and sets the property AdaptiveQuantization. Keep the default value, Auto, for
/// this setting to have MediaConvert automatically apply the best types of quantization
/// for your video content. When you want to apply your quantization settings manually,
/// you must set H264AdaptiveQuantization to a value other than Auto. Use this setting
/// to specify the strength of any adaptive quantization filters that you enable. If you
/// don't want MediaConvert to do any adaptive quantization in this transcode, set Adaptive
/// quantization to Off. Related settings: The value that you choose here applies to the
/// following settings: H264FlickerAdaptiveQuantization, H264SpatialAdaptiveQuantization,
/// and H264TemporalAdaptiveQuantization.
///
public H264AdaptiveQuantization 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 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=1152000000)]
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. Specify an H.264 level that is consistent with
/// your output video settings. If you aren't sure what level to specify, choose Auto.
///
public H264CodecLevel 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. H.264 Profile. High 4:2:2 and 10-bit profiles
/// are only available with the AVC-I License.
///
public H264CodecProfile 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 H264DynamicSubGop 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 EntropyEncoding. Entropy encoding mode. Use CABAC (must
/// be in Main or High profile) or CAVLC.
///
public H264EntropyEncoding EntropyEncoding
{
get { return this._entropyEncoding; }
set { this._entropyEncoding = value; }
}
// Check to see if EntropyEncoding property is set
internal bool IsSetEntropyEncoding()
{
return this._entropyEncoding != null;
}
///
/// Gets and sets the property FieldEncoding. The video encoding method for your MPEG-4
/// AVC output. Keep the default value, PAFF, to have MediaConvert use PAFF encoding for
/// interlaced outputs. Choose Force field to disable PAFF encoding and create separate
/// interlaced fields. Choose MBAFF to disable PAFF and have MediaConvert use MBAFF encoding
/// for interlaced outputs.
///
public H264FieldEncoding FieldEncoding
{
get { return this._fieldEncoding; }
set { this._fieldEncoding = value; }
}
// Check to see if FieldEncoding property is set
internal bool IsSetFieldEncoding()
{
return this._fieldEncoding != null;
}
///
/// Gets and sets the property FlickerAdaptiveQuantization. Only use this setting when
/// you change the default value, AUTO, for the setting H264AdaptiveQuantization. When
/// you keep all defaults, excluding H264AdaptiveQuantization and all other adaptive quantization
/// from your JSON job specification, MediaConvert automatically applies the best types
/// of quantization for your video content. When you set H264AdaptiveQuantization to a
/// value other than AUTO, the default value for H264FlickerAdaptiveQuantization is Disabled.
/// Change this value to Enabled to 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. To manually enable or disable H264FlickerAdaptiveQuantization, you
/// must set Adaptive quantization to a value other than AUTO.
///
public H264FlickerAdaptiveQuantization 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. If you are using the console, 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 H264FramerateControl 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 H264FramerateConversionAlgorithm 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 H264GopBReference 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.
/// In the console, 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 H264GopSizeUnits 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=1152000000)]
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 H264InterlaceMode 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=1152000000)]
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 in
/// the console, 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 H264ParControl 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. The Quality tuning level you choose
/// represents a trade-off between the encoding speed of your job and the output video
/// quality. For the fastest encoding speed at the cost of video quality: Choose Single
/// pass. For a good balance between encoding speed and video quality: Leave blank or
/// keep the default value Single pass HQ. For the best video quality, at the cost of
/// encoding speed: Choose Multi pass HQ. MediaConvert performs an analysis pass on your
/// input followed by an encoding pass. Outputs that use this feature incur pro-tier pricing.
///
public H264QualityTuningLevel 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 H264QvbrSettings 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 H264RateControlMode 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 RepeatPps. Places a PPS header on each encoded picture,
/// even if repeated.
///
public H264RepeatPps RepeatPps
{
get { return this._repeatPps; }
set { this._repeatPps = value; }
}
// Check to see if RepeatPps property is set
internal bool IsSetRepeatPps()
{
return this._repeatPps != 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 H264ScanTypeConversionMode 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 H264SceneChangeDetect 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 H264SlowPal 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 Softness. Ignore this setting unless you need to comply
/// with a specification that requires a specific value. If you don't have a specification
/// requirement, we recommend that you adjust the softness of your output by using a lower
/// value for the setting Sharpness or by enabling a noise reducer filter. The Softness
/// setting specifies the quantization matrices that the encoder uses. Keep the default
/// value, 0, for flat quantization. Choose the value 1 or 16 to use the default JVT softening
/// quantization matricies from the H.264 specification. Choose a value from 17 to 128
/// to use planar interpolation. Increasing values from 17 to 128 result in increasing
/// reduction of high-frequency data. The value 128 results in the softest video.
///
[AWSProperty(Min=0, Max=128)]
public int Softness
{
get { return this._softness.GetValueOrDefault(); }
set { this._softness = value; }
}
// Check to see if Softness property is set
internal bool IsSetSoftness()
{
return this._softness.HasValue;
}
///
/// Gets and sets the property SpatialAdaptiveQuantization. Only use this setting when
/// you change the default value, Auto, for the setting H264AdaptiveQuantization. When
/// you keep all defaults, excluding H264AdaptiveQuantization and all other adaptive quantization
/// from your JSON job specification, MediaConvert automatically applies the best types
/// of quantization for your video content. When you set H264AdaptiveQuantization to a
/// value other than AUTO, the default value for H264SpatialAdaptiveQuantization is Enabled.
/// Keep this default value 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 set H264SpatialAdaptiveQuantization
/// to Disabled. 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. To manually enable or disable H264SpatialAdaptiveQuantization,
/// you must set Adaptive quantization to a value other than AUTO.
///
public H264SpatialAdaptiveQuantization 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 Syntax. Produces a bitstream compliant with SMPTE RP-2027.
///
public H264Syntax Syntax
{
get { return this._syntax; }
set { this._syntax = value; }
}
// Check to see if Syntax property is set
internal bool IsSetSyntax()
{
return this._syntax != null;
}
///
/// Gets and sets the property Telecine. When you do frame rate conversion from 23.976
/// frames per second (fps) to 29.97 fps, and your output scan type is interlaced, you
/// can optionally enable hard or soft telecine to create a smoother picture. Hard telecine
/// produces a 29.97i output. Soft telecine produces an output with a 23.976 output that
/// signals to the video player device to do the conversion during play back. When you
/// keep the default value, None, MediaConvert does a standard frame rate conversion to
/// 29.97 without doing anything with the field polarity to create a smoother picture.
///
public H264Telecine 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. Only use this setting when
/// you change the default value, AUTO, for the setting H264AdaptiveQuantization. When
/// you keep all defaults, excluding H264AdaptiveQuantization and all other adaptive quantization
/// from your JSON job specification, MediaConvert automatically applies the best types
/// of quantization for your video content. When you set H264AdaptiveQuantization to a
/// value other than AUTO, the default value for H264TemporalAdaptiveQuantization is Enabled.
/// Keep this default value 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 set H264TemporalAdaptiveQuantization
/// to Disabled. Related setting: When you enable temporal quantization, adjust the strength
/// of the filter with the setting Adaptive quantization. To manually enable or disable
/// H264TemporalAdaptiveQuantization, you must set Adaptive quantization to a value other
/// than AUTO.
///
public H264TemporalAdaptiveQuantization 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 UnregisteredSeiTimecode. Inserts timecode for each frame
/// as 4 bytes of an unregistered SEI message.
///
public H264UnregisteredSeiTimecode UnregisteredSeiTimecode
{
get { return this._unregisteredSeiTimecode; }
set { this._unregisteredSeiTimecode = value; }
}
// Check to see if UnregisteredSeiTimecode property is set
internal bool IsSetUnregisteredSeiTimecode()
{
return this._unregisteredSeiTimecode != null;
}
}
}