/*
* 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 XAVC.
///
public partial class XavcSettings
{
private XavcAdaptiveQuantization _adaptiveQuantization;
private XavcEntropyEncoding _entropyEncoding;
private XavcFramerateControl _framerateControl;
private XavcFramerateConversionAlgorithm _framerateConversionAlgorithm;
private int? _framerateDenominator;
private int? _framerateNumerator;
private XavcProfile _profile;
private XavcSlowPal _slowPal;
private int? _softness;
private XavcSpatialAdaptiveQuantization _spatialAdaptiveQuantization;
private XavcTemporalAdaptiveQuantization _temporalAdaptiveQuantization;
private Xavc4kIntraCbgProfileSettings _xavc4kIntraCbgProfileSettings;
private Xavc4kIntraVbrProfileSettings _xavc4kIntraVbrProfileSettings;
private Xavc4kProfileSettings _xavc4kProfileSettings;
private XavcHdIntraCbgProfileSettings _xavcHdIntraCbgProfileSettings;
private XavcHdProfileSettings _xavcHdProfileSettings;
///
/// 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 Adaptive quantization 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: Flicker adaptive quantization (flickerAdaptiveQuantization), Spatial
/// adaptive quantization, and Temporal adaptive quantization.
///
public XavcAdaptiveQuantization 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 EntropyEncoding. Optional. Choose a specific entropy encoding
/// mode only when you want to override XAVC recommendations. If you choose the value
/// auto, MediaConvert uses the mode that the XAVC file format specifies given this output's
/// operating point.
///
public XavcEntropyEncoding 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 FramerateControl. If you are using the console, use the
/// Frame rate 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. The framerates shown
/// in the dropdown list are decimal approximations of fractions.
///
public XavcFramerateControl 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 XavcFramerateConversionAlgorithm 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 Frame rate. In this example, specify 23.976.
///
[AWSProperty(Min=1, Max=1001)]
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=24, Max=60000)]
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 Profile. Specify the XAVC profile for this output. For
/// more information, see the Sony documentation at https://www.xavc-info.org/. Note that
/// MediaConvert doesn't support the interlaced video XAVC operating points for XAVC_HD_INTRA_CBG.
/// To create an interlaced XAVC output, choose the profile XAVC_HD.
///
public XavcProfile 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 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
/// by relabeling the video frames and resampling your audio. Note that enabling this
/// setting will slightly reduce the duration of your video. Related settings: You must
/// also set Frame rate to 25.
///
public XavcSlowPal 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 your downstream workflow
/// requires that you specify it explicitly. Otherwise, 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. The best way to set up adaptive
/// quantization is to keep the default value, Auto, for the setting Adaptive quantization.
/// When you do so, MediaConvert automatically applies the best types of quantization
/// for your video content. Include this setting in your JSON job specification only when
/// you choose to change the default value for Adaptive quantization. For this setting,
/// 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 XavcSpatialAdaptiveQuantization 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 TemporalAdaptiveQuantization. The best way to set up adaptive
/// quantization is to keep the default value, Auto, for the setting Adaptive quantization.
/// When you do so, MediaConvert automatically applies the best types of quantization
/// for your video content. Include this setting in your JSON job specification only when
/// you choose to change the default value for Adaptive quantization. For this setting,
/// 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 adaptive quantization, adjust the
/// strength of the filter with the setting Adaptive quantization.
///
public XavcTemporalAdaptiveQuantization 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 Xavc4kIntraCbgProfileSettings. Required when you set Profile
/// to the value XAVC_4K_INTRA_CBG.
///
public Xavc4kIntraCbgProfileSettings Xavc4kIntraCbgProfileSettings
{
get { return this._xavc4kIntraCbgProfileSettings; }
set { this._xavc4kIntraCbgProfileSettings = value; }
}
// Check to see if Xavc4kIntraCbgProfileSettings property is set
internal bool IsSetXavc4kIntraCbgProfileSettings()
{
return this._xavc4kIntraCbgProfileSettings != null;
}
///
/// Gets and sets the property Xavc4kIntraVbrProfileSettings. Required when you set Profile
/// to the value XAVC_4K_INTRA_VBR.
///
public Xavc4kIntraVbrProfileSettings Xavc4kIntraVbrProfileSettings
{
get { return this._xavc4kIntraVbrProfileSettings; }
set { this._xavc4kIntraVbrProfileSettings = value; }
}
// Check to see if Xavc4kIntraVbrProfileSettings property is set
internal bool IsSetXavc4kIntraVbrProfileSettings()
{
return this._xavc4kIntraVbrProfileSettings != null;
}
///
/// Gets and sets the property Xavc4kProfileSettings. Required when you set Profile to
/// the value XAVC_4K.
///
public Xavc4kProfileSettings Xavc4kProfileSettings
{
get { return this._xavc4kProfileSettings; }
set { this._xavc4kProfileSettings = value; }
}
// Check to see if Xavc4kProfileSettings property is set
internal bool IsSetXavc4kProfileSettings()
{
return this._xavc4kProfileSettings != null;
}
///
/// Gets and sets the property XavcHdIntraCbgProfileSettings. Required when you set Profile
/// to the value XAVC_HD_INTRA_CBG.
///
public XavcHdIntraCbgProfileSettings XavcHdIntraCbgProfileSettings
{
get { return this._xavcHdIntraCbgProfileSettings; }
set { this._xavcHdIntraCbgProfileSettings = value; }
}
// Check to see if XavcHdIntraCbgProfileSettings property is set
internal bool IsSetXavcHdIntraCbgProfileSettings()
{
return this._xavcHdIntraCbgProfileSettings != null;
}
///
/// Gets and sets the property XavcHdProfileSettings. Required when you set Profile to
/// the value XAVC_HD.
///
public XavcHdProfileSettings XavcHdProfileSettings
{
get { return this._xavcHdProfileSettings; }
set { this._xavcHdProfileSettings = value; }
}
// Check to see if XavcHdProfileSettings property is set
internal bool IsSetXavcHdProfileSettings()
{
return this._xavcHdProfileSettings != null;
}
}
}