/* * Copyright 2018-2023 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. */ package com.amazonaws.services.mediaconvert.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** * Required when you set Codec to the value VP9. * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class Vp9Settings implements Serializable, Cloneable, StructuredPojo { /** Target bitrate in bits/second. For example, enter five megabits per second as 5000000. */ private Integer bitrate; /** * 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. */ private String framerateControl; /** * 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. */ private String framerateConversionAlgorithm; /** * 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. */ private Integer 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 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. */ private Integer framerateNumerator; /** GOP Length (keyframe interval) in frames. Must be greater than zero. */ private Double gopSize; /** Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000. */ private Integer hrdBufferSize; /** * 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. */ private Integer maxBitrate; /** * Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior is to * use the same pixel aspect ratio as your input video. */ private String parControl; /** * 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. */ private Integer 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 parNumerator is 40. */ private Integer parNumerator; /** * 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. */ private String qualityTuningLevel; /** With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. */ private String rateControlMode; /** * Target bitrate in bits/second. For example, enter five megabits per second as 5000000. * * @param bitrate * Target bitrate in bits/second. For example, enter five megabits per second as 5000000. */ public void setBitrate(Integer bitrate) { this.bitrate = bitrate; } /** * Target bitrate in bits/second. For example, enter five megabits per second as 5000000. * * @return Target bitrate in bits/second. For example, enter five megabits per second as 5000000. */ public Integer getBitrate() { return this.bitrate; } /** * Target bitrate in bits/second. For example, enter five megabits per second as 5000000. * * @param bitrate * Target bitrate in bits/second. For example, enter five megabits per second as 5000000. * @return Returns a reference to this object so that method calls can be chained together. */ public Vp9Settings withBitrate(Integer bitrate) { setBitrate(bitrate); return this; } /** * 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. * * @param 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. * @see Vp9FramerateControl */ public void setFramerateControl(String framerateControl) { this.framerateControl = 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. * * @return 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. * @see Vp9FramerateControl */ public String getFramerateControl() { return this.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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9FramerateControl */ public Vp9Settings withFramerateControl(String framerateControl) { setFramerateControl(framerateControl); return this; } /** * 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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9FramerateControl */ public Vp9Settings withFramerateControl(Vp9FramerateControl framerateControl) { this.framerateControl = framerateControl.toString(); return this; } /** * 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. * * @param 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. * @see Vp9FramerateConversionAlgorithm */ public void setFramerateConversionAlgorithm(String framerateConversionAlgorithm) { this.framerateConversionAlgorithm = 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. * * @return 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. * @see Vp9FramerateConversionAlgorithm */ public String getFramerateConversionAlgorithm() { return this.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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9FramerateConversionAlgorithm */ public Vp9Settings withFramerateConversionAlgorithm(String framerateConversionAlgorithm) { setFramerateConversionAlgorithm(framerateConversionAlgorithm); return this; } /** * 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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9FramerateConversionAlgorithm */ public Vp9Settings withFramerateConversionAlgorithm(Vp9FramerateConversionAlgorithm framerateConversionAlgorithm) { this.framerateConversionAlgorithm = framerateConversionAlgorithm.toString(); return this; } /** * 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. * * @param 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. */ public void setFramerateDenominator(Integer framerateDenominator) { this.framerateDenominator = 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. * * @return 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. */ public Integer getFramerateDenominator() { return this.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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public Vp9Settings withFramerateDenominator(Integer framerateDenominator) { setFramerateDenominator(framerateDenominator); return this; } /** * 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. * * @param 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. */ public void setFramerateNumerator(Integer framerateNumerator) { this.framerateNumerator = 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. * * @return 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. */ public Integer getFramerateNumerator() { return this.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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public Vp9Settings withFramerateNumerator(Integer framerateNumerator) { setFramerateNumerator(framerateNumerator); return this; } /** * GOP Length (keyframe interval) in frames. Must be greater than zero. * * @param gopSize * GOP Length (keyframe interval) in frames. Must be greater than zero. */ public void setGopSize(Double gopSize) { this.gopSize = gopSize; } /** * GOP Length (keyframe interval) in frames. Must be greater than zero. * * @return GOP Length (keyframe interval) in frames. Must be greater than zero. */ public Double getGopSize() { return this.gopSize; } /** * GOP Length (keyframe interval) in frames. Must be greater than zero. * * @param gopSize * GOP Length (keyframe interval) in frames. Must be greater than zero. * @return Returns a reference to this object so that method calls can be chained together. */ public Vp9Settings withGopSize(Double gopSize) { setGopSize(gopSize); return this; } /** * Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000. * * @param hrdBufferSize * Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000. */ public void setHrdBufferSize(Integer hrdBufferSize) { this.hrdBufferSize = hrdBufferSize; } /** * Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000. * * @return Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000. */ public Integer getHrdBufferSize() { return this.hrdBufferSize; } /** * Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000. * * @param hrdBufferSize * Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000. * @return Returns a reference to this object so that method calls can be chained together. */ public Vp9Settings withHrdBufferSize(Integer hrdBufferSize) { setHrdBufferSize(hrdBufferSize); return this; } /** * 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. * * @param 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. */ public void setMaxBitrate(Integer maxBitrate) { this.maxBitrate = 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. * * @return 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. */ public Integer getMaxBitrate() { return this.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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public Vp9Settings withMaxBitrate(Integer maxBitrate) { setMaxBitrate(maxBitrate); return this; } /** * Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior is to * use the same pixel aspect ratio as your input video. * * @param parControl * Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior * is to use the same pixel aspect ratio as your input video. * @see Vp9ParControl */ public void setParControl(String parControl) { this.parControl = parControl; } /** * Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior is to * use the same pixel aspect ratio as your input video. * * @return Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior * is to use the same pixel aspect ratio as your input video. * @see Vp9ParControl */ public String getParControl() { return this.parControl; } /** * Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior is to * use the same pixel aspect ratio as your input video. * * @param parControl * Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior * is to use the same pixel aspect ratio as your input video. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9ParControl */ public Vp9Settings withParControl(String parControl) { setParControl(parControl); return this; } /** * Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior is to * use the same pixel aspect ratio as your input video. * * @param parControl * Optional. Specify how the service determines the pixel aspect ratio for this output. The default behavior * is to use the same pixel aspect ratio as your input video. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9ParControl */ public Vp9Settings withParControl(Vp9ParControl parControl) { this.parControl = parControl.toString(); return this; } /** * 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. * * @param 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. */ public void setParDenominator(Integer parDenominator) { this.parDenominator = 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. * * @return 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. */ public Integer getParDenominator() { return this.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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public Vp9Settings withParDenominator(Integer parDenominator) { setParDenominator(parDenominator); return this; } /** * 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. * * @param 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. */ public void setParNumerator(Integer parNumerator) { this.parNumerator = 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. * * @return 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. */ public Integer getParNumerator() { return this.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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public Vp9Settings withParNumerator(Integer parNumerator) { setParNumerator(parNumerator); return this; } /** * 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. * * @param 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. * @see Vp9QualityTuningLevel */ public void setQualityTuningLevel(String qualityTuningLevel) { this.qualityTuningLevel = 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. * * @return 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. * @see Vp9QualityTuningLevel */ public String getQualityTuningLevel() { return this.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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9QualityTuningLevel */ public Vp9Settings withQualityTuningLevel(String qualityTuningLevel) { setQualityTuningLevel(qualityTuningLevel); return this; } /** * 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. * * @param 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. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9QualityTuningLevel */ public Vp9Settings withQualityTuningLevel(Vp9QualityTuningLevel qualityTuningLevel) { this.qualityTuningLevel = qualityTuningLevel.toString(); return this; } /** * With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. * * @param rateControlMode * With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. * @see Vp9RateControlMode */ public void setRateControlMode(String rateControlMode) { this.rateControlMode = rateControlMode; } /** * With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. * * @return With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. * @see Vp9RateControlMode */ public String getRateControlMode() { return this.rateControlMode; } /** * With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. * * @param rateControlMode * With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9RateControlMode */ public Vp9Settings withRateControlMode(String rateControlMode) { setRateControlMode(rateControlMode); return this; } /** * With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. * * @param rateControlMode * With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode. * @return Returns a reference to this object so that method calls can be chained together. * @see Vp9RateControlMode */ public Vp9Settings withRateControlMode(Vp9RateControlMode rateControlMode) { this.rateControlMode = rateControlMode.toString(); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getBitrate() != null) sb.append("Bitrate: ").append(getBitrate()).append(","); if (getFramerateControl() != null) sb.append("FramerateControl: ").append(getFramerateControl()).append(","); if (getFramerateConversionAlgorithm() != null) sb.append("FramerateConversionAlgorithm: ").append(getFramerateConversionAlgorithm()).append(","); if (getFramerateDenominator() != null) sb.append("FramerateDenominator: ").append(getFramerateDenominator()).append(","); if (getFramerateNumerator() != null) sb.append("FramerateNumerator: ").append(getFramerateNumerator()).append(","); if (getGopSize() != null) sb.append("GopSize: ").append(getGopSize()).append(","); if (getHrdBufferSize() != null) sb.append("HrdBufferSize: ").append(getHrdBufferSize()).append(","); if (getMaxBitrate() != null) sb.append("MaxBitrate: ").append(getMaxBitrate()).append(","); if (getParControl() != null) sb.append("ParControl: ").append(getParControl()).append(","); if (getParDenominator() != null) sb.append("ParDenominator: ").append(getParDenominator()).append(","); if (getParNumerator() != null) sb.append("ParNumerator: ").append(getParNumerator()).append(","); if (getQualityTuningLevel() != null) sb.append("QualityTuningLevel: ").append(getQualityTuningLevel()).append(","); if (getRateControlMode() != null) sb.append("RateControlMode: ").append(getRateControlMode()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof Vp9Settings == false) return false; Vp9Settings other = (Vp9Settings) obj; if (other.getBitrate() == null ^ this.getBitrate() == null) return false; if (other.getBitrate() != null && other.getBitrate().equals(this.getBitrate()) == false) return false; if (other.getFramerateControl() == null ^ this.getFramerateControl() == null) return false; if (other.getFramerateControl() != null && other.getFramerateControl().equals(this.getFramerateControl()) == false) return false; if (other.getFramerateConversionAlgorithm() == null ^ this.getFramerateConversionAlgorithm() == null) return false; if (other.getFramerateConversionAlgorithm() != null && other.getFramerateConversionAlgorithm().equals(this.getFramerateConversionAlgorithm()) == false) return false; if (other.getFramerateDenominator() == null ^ this.getFramerateDenominator() == null) return false; if (other.getFramerateDenominator() != null && other.getFramerateDenominator().equals(this.getFramerateDenominator()) == false) return false; if (other.getFramerateNumerator() == null ^ this.getFramerateNumerator() == null) return false; if (other.getFramerateNumerator() != null && other.getFramerateNumerator().equals(this.getFramerateNumerator()) == false) return false; if (other.getGopSize() == null ^ this.getGopSize() == null) return false; if (other.getGopSize() != null && other.getGopSize().equals(this.getGopSize()) == false) return false; if (other.getHrdBufferSize() == null ^ this.getHrdBufferSize() == null) return false; if (other.getHrdBufferSize() != null && other.getHrdBufferSize().equals(this.getHrdBufferSize()) == false) return false; if (other.getMaxBitrate() == null ^ this.getMaxBitrate() == null) return false; if (other.getMaxBitrate() != null && other.getMaxBitrate().equals(this.getMaxBitrate()) == false) return false; if (other.getParControl() == null ^ this.getParControl() == null) return false; if (other.getParControl() != null && other.getParControl().equals(this.getParControl()) == false) return false; if (other.getParDenominator() == null ^ this.getParDenominator() == null) return false; if (other.getParDenominator() != null && other.getParDenominator().equals(this.getParDenominator()) == false) return false; if (other.getParNumerator() == null ^ this.getParNumerator() == null) return false; if (other.getParNumerator() != null && other.getParNumerator().equals(this.getParNumerator()) == false) return false; if (other.getQualityTuningLevel() == null ^ this.getQualityTuningLevel() == null) return false; if (other.getQualityTuningLevel() != null && other.getQualityTuningLevel().equals(this.getQualityTuningLevel()) == false) return false; if (other.getRateControlMode() == null ^ this.getRateControlMode() == null) return false; if (other.getRateControlMode() != null && other.getRateControlMode().equals(this.getRateControlMode()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getBitrate() == null) ? 0 : getBitrate().hashCode()); hashCode = prime * hashCode + ((getFramerateControl() == null) ? 0 : getFramerateControl().hashCode()); hashCode = prime * hashCode + ((getFramerateConversionAlgorithm() == null) ? 0 : getFramerateConversionAlgorithm().hashCode()); hashCode = prime * hashCode + ((getFramerateDenominator() == null) ? 0 : getFramerateDenominator().hashCode()); hashCode = prime * hashCode + ((getFramerateNumerator() == null) ? 0 : getFramerateNumerator().hashCode()); hashCode = prime * hashCode + ((getGopSize() == null) ? 0 : getGopSize().hashCode()); hashCode = prime * hashCode + ((getHrdBufferSize() == null) ? 0 : getHrdBufferSize().hashCode()); hashCode = prime * hashCode + ((getMaxBitrate() == null) ? 0 : getMaxBitrate().hashCode()); hashCode = prime * hashCode + ((getParControl() == null) ? 0 : getParControl().hashCode()); hashCode = prime * hashCode + ((getParDenominator() == null) ? 0 : getParDenominator().hashCode()); hashCode = prime * hashCode + ((getParNumerator() == null) ? 0 : getParNumerator().hashCode()); hashCode = prime * hashCode + ((getQualityTuningLevel() == null) ? 0 : getQualityTuningLevel().hashCode()); hashCode = prime * hashCode + ((getRateControlMode() == null) ? 0 : getRateControlMode().hashCode()); return hashCode; } @Override public Vp9Settings clone() { try { return (Vp9Settings) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.mediaconvert.model.transform.Vp9SettingsMarshaller.getInstance().marshall(this, protocolMarshaller); } }