/*
* 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
{
///
/// Mpeg2 Settings
///
public partial class Mpeg2Settings
{
private Mpeg2AdaptiveQuantization _adaptiveQuantization;
private AfdSignaling _afdSignaling;
private Mpeg2ColorMetadata _colorMetadata;
private Mpeg2ColorSpace _colorSpace;
private Mpeg2DisplayRatio _displayAspectRatio;
private Mpeg2FilterSettings _filterSettings;
private FixedAfd _fixedAfd;
private int? _framerateDenominator;
private int? _framerateNumerator;
private int? _gopClosedCadence;
private int? _gopNumBFrames;
private double? _gopSize;
private Mpeg2GopSizeUnits _gopSizeUnits;
private Mpeg2ScanType _scanType;
private Mpeg2SubGopLength _subgopLength;
private TimecodeBurninSettings _timecodeBurninSettings;
private Mpeg2TimecodeInsertionBehavior _timecodeInsertion;
///
/// Gets and sets the property AdaptiveQuantization. Choose Off to disable adaptive quantization.
/// Or choose another value to enable the quantizer and set its strength. The strengths
/// are: Auto, Off, Low, Medium, High. When you enable this field, MediaLive allows intra-frame
/// quantizers to vary, which might improve visual quality.
///
public Mpeg2AdaptiveQuantization 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 the AFD values that MediaLive will
/// write into the video encode. If you do not know what AFD signaling is, or if your
/// downstream system has not given you guidance, choose AUTO.AUTO: MediaLive will try
/// to preserve the input AFD value (in cases where multiple AFD values are valid).FIXED:
/// MediaLive will use the value you specify in fixedAFD.
///
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 ColorMetadata. Specifies whether to include the color space
/// metadata. The metadata describes the color space that applies to the video (the colorSpace
/// field). We recommend that you insert the metadata.
///
public Mpeg2ColorMetadata 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 ColorSpace. Choose the type of color space conversion to
/// apply to the output. For detailed information on setting up both the input and the
/// output to obtain the desired color space in the output, see the section on \"MediaLive
/// Features - Video - color space\" in the MediaLive User Guide.PASSTHROUGH: Keep the
/// color space of the input content - do not convert it.AUTO:Convert all content that
/// is SD to rec 601, and convert all content that is HD to rec 709.
///
public Mpeg2ColorSpace ColorSpace
{
get { return this._colorSpace; }
set { this._colorSpace = value; }
}
// Check to see if ColorSpace property is set
internal bool IsSetColorSpace()
{
return this._colorSpace != null;
}
///
/// Gets and sets the property DisplayAspectRatio. Sets the pixel aspect ratio for the
/// encode.
///
public Mpeg2DisplayRatio DisplayAspectRatio
{
get { return this._displayAspectRatio; }
set { this._displayAspectRatio = value; }
}
// Check to see if DisplayAspectRatio property is set
internal bool IsSetDisplayAspectRatio()
{
return this._displayAspectRatio != null;
}
///
/// Gets and sets the property FilterSettings. Optionally specify a noise reduction filter,
/// which can improve quality of compressed content. If you do not choose a filter, no
/// filter will be applied.TEMPORAL: This filter is useful for both source content that
/// is noisy (when it has excessive digital artifacts) and source content that is clean.When
/// the content is noisy, the filter cleans up the source content before the encoding
/// phase, with these two effects: First, it improves the output video quality because
/// the content has been cleaned up. Secondly, it decreases the bandwidth because MediaLive
/// does not waste bits on encoding noise.When the content is reasonably clean, the filter
/// tends to decrease the bitrate.
///
public Mpeg2FilterSettings 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. Complete this field only when afdSignaling is
/// set to FIXED. Enter the AFD value (4 bits) to write on all frames of the video encode.
///
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 FramerateDenominator. description": "The framerate denominator.
/// For example, 1001. The framerate is the numerator divided by the denominator. For
/// example, 24000 / 1001 = 23.976 FPS.
///
[AWSProperty(Required=true, Min=1)]
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. The framerate numerator. For example,
/// 24000. The framerate is the numerator divided by the denominator. For example, 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. MPEG2: default is open GOP.
///
[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 GopNumBFrames. Relates to the GOP structure. The number
/// of B-frames between reference frames. If you do not know what a B-frame is, use the
/// default.
///
[AWSProperty(Min=0, Max=7)]
public int GopNumBFrames
{
get { return this._gopNumBFrames.GetValueOrDefault(); }
set { this._gopNumBFrames = value; }
}
// Check to see if GopNumBFrames property is set
internal bool IsSetGopNumBFrames()
{
return this._gopNumBFrames.HasValue;
}
///
/// Gets and sets the property GopSize. Relates to the GOP structure. The GOP size (keyframe
/// interval) in the units specified in gopSizeUnits. If you do not know what GOP is,
/// use the default.If gopSizeUnits is frames, then the gopSize must be an integer and
/// must be greater than or equal to 1.If gopSizeUnits is seconds, the gopSize must be
/// greater than 0, but does not need to 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. Relates to the GOP structure. Specifies whether
/// the gopSize is specified in frames or seconds. If you do not plan to change the default
/// gopSize, leave the default. If you specify SECONDS, MediaLive will internally convert
/// the gop size to a frame count.
///
public Mpeg2GopSizeUnits 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 ScanType. Set the scan type of the output to PROGRESSIVE
/// or INTERLACED (top field first).
///
public Mpeg2ScanType 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 SubgopLength. Relates to the GOP structure. If you do not
/// know what GOP is, use the default.FIXED: Set the number of B-frames in each sub-GOP
/// to the value in gopNumBFrames.DYNAMIC: Let MediaLive optimize the number of B-frames
/// in each sub-GOP, to improve visual quality.
///
public Mpeg2SubGopLength SubgopLength
{
get { return this._subgopLength; }
set { this._subgopLength = value; }
}
// Check to see if SubgopLength property is set
internal bool IsSetSubgopLength()
{
return this._subgopLength != 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 MediaLive inserts timecodes
/// in the output video. For detailed information about setting up the input and the output
/// for a timecode, see the section on \"MediaLive Features - Timecode configuration\"
/// in the MediaLive User Guide.DISABLED: do not include timecodes.GOP_TIMECODE: Include
/// timecode metadata in the GOP header.
///
public Mpeg2TimecodeInsertionBehavior TimecodeInsertion
{
get { return this._timecodeInsertion; }
set { this._timecodeInsertion = value; }
}
// Check to see if TimecodeInsertion property is set
internal bool IsSetTimecodeInsertion()
{
return this._timecodeInsertion != null;
}
}
}