/*
* 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 VP8.
///
public partial class Vp8Settings
{
private int? _bitrate;
private Vp8FramerateControl _framerateControl;
private Vp8FramerateConversionAlgorithm _framerateConversionAlgorithm;
private int? _framerateDenominator;
private int? _framerateNumerator;
private double? _gopSize;
private int? _hrdBufferSize;
private int? _maxBitrate;
private Vp8ParControl _parControl;
private int? _parDenominator;
private int? _parNumerator;
private Vp8QualityTuningLevel _qualityTuningLevel;
private Vp8RateControlMode _rateControlMode;
///
/// Gets and sets the property Bitrate. Target bitrate in bits/second. For example, enter
/// five megabits per second as 5000000.
///
[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 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 Vp8FramerateControl 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 Vp8FramerateConversionAlgorithm 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 GopSize. GOP Length (keyframe interval) in frames. Must
/// be greater than zero.
///
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 HrdBufferSize. Optional. Size of buffer (HRD buffer model)
/// in bits. For example, enter five megabits as 5000000.
///
[AWSProperty(Min=0, Max=47185920)]
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 MaxBitrate. Ignore this setting unless you set qualityTuningLevel
/// to MULTI_PASS. Optional. Specify the maximum bitrate in bits/second. For example,
/// enter five megabits per second as 5000000. The default behavior uses twice the target
/// bitrate as the maximum bitrate.
///
[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 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 Vp8ParControl 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, multi-pass encoding.
///
public Vp8QualityTuningLevel 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 RateControlMode. With the VP8 codec, you can use only the
/// variable bitrate (VBR) rate control mode.
///
public Vp8RateControlMode RateControlMode
{
get { return this._rateControlMode; }
set { this._rateControlMode = value; }
}
// Check to see if RateControlMode property is set
internal bool IsSetRateControlMode()
{
return this._rateControlMode != null;
}
}
}