Skip to main content

aws_sdk_mediaconvert/types/
_vp9_settings.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// Required when you set Codec to the value VP9.
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct Vp9Settings {
7    /// Target bitrate in bits/second. For example, enter five megabits per second as 5000000.
8    pub bitrate: ::std::option::Option<i32>,
9    /// 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.
10    pub framerate_control: ::std::option::Option<crate::types::Vp9FramerateControl>,
11    /// Choose the method that you want MediaConvert to use when increasing or decreasing your video's 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. To create an output with the same number of frames as your input: Choose Maintain frame count. When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher frame rates and longer at lower frame rates.
12    pub framerate_conversion_algorithm: ::std::option::Option<crate::types::Vp9FramerateConversionAlgorithm>,
13    /// 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.
14    pub framerate_denominator: ::std::option::Option<i32>,
15    /// 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.
16    pub framerate_numerator: ::std::option::Option<i32>,
17    /// GOP Length (keyframe interval) in frames. Must be greater than zero.
18    pub gop_size: ::std::option::Option<f64>,
19    /// Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000.
20    pub hrd_buffer_size: ::std::option::Option<i32>,
21    /// 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.
22    pub max_bitrate: ::std::option::Option<i32>,
23    /// 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.
24    pub par_control: ::std::option::Option<crate::types::Vp9ParControl>,
25    /// 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.
26    pub par_denominator: ::std::option::Option<i32>,
27    /// 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.
28    pub par_numerator: ::std::option::Option<i32>,
29    /// 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.
30    pub quality_tuning_level: ::std::option::Option<crate::types::Vp9QualityTuningLevel>,
31    /// With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode.
32    pub rate_control_mode: ::std::option::Option<crate::types::Vp9RateControlMode>,
33}
34impl Vp9Settings {
35    /// Target bitrate in bits/second. For example, enter five megabits per second as 5000000.
36    pub fn bitrate(&self) -> ::std::option::Option<i32> {
37        self.bitrate
38    }
39    /// 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.
40    pub fn framerate_control(&self) -> ::std::option::Option<&crate::types::Vp9FramerateControl> {
41        self.framerate_control.as_ref()
42    }
43    /// Choose the method that you want MediaConvert to use when increasing or decreasing your video's 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. To create an output with the same number of frames as your input: Choose Maintain frame count. When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher frame rates and longer at lower frame rates.
44    pub fn framerate_conversion_algorithm(&self) -> ::std::option::Option<&crate::types::Vp9FramerateConversionAlgorithm> {
45        self.framerate_conversion_algorithm.as_ref()
46    }
47    /// 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.
48    pub fn framerate_denominator(&self) -> ::std::option::Option<i32> {
49        self.framerate_denominator
50    }
51    /// 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.
52    pub fn framerate_numerator(&self) -> ::std::option::Option<i32> {
53        self.framerate_numerator
54    }
55    /// GOP Length (keyframe interval) in frames. Must be greater than zero.
56    pub fn gop_size(&self) -> ::std::option::Option<f64> {
57        self.gop_size
58    }
59    /// Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000.
60    pub fn hrd_buffer_size(&self) -> ::std::option::Option<i32> {
61        self.hrd_buffer_size
62    }
63    /// 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.
64    pub fn max_bitrate(&self) -> ::std::option::Option<i32> {
65        self.max_bitrate
66    }
67    /// 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.
68    pub fn par_control(&self) -> ::std::option::Option<&crate::types::Vp9ParControl> {
69        self.par_control.as_ref()
70    }
71    /// 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.
72    pub fn par_denominator(&self) -> ::std::option::Option<i32> {
73        self.par_denominator
74    }
75    /// 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.
76    pub fn par_numerator(&self) -> ::std::option::Option<i32> {
77        self.par_numerator
78    }
79    /// 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.
80    pub fn quality_tuning_level(&self) -> ::std::option::Option<&crate::types::Vp9QualityTuningLevel> {
81        self.quality_tuning_level.as_ref()
82    }
83    /// With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode.
84    pub fn rate_control_mode(&self) -> ::std::option::Option<&crate::types::Vp9RateControlMode> {
85        self.rate_control_mode.as_ref()
86    }
87}
88impl Vp9Settings {
89    /// Creates a new builder-style object to manufacture [`Vp9Settings`](crate::types::Vp9Settings).
90    pub fn builder() -> crate::types::builders::Vp9SettingsBuilder {
91        crate::types::builders::Vp9SettingsBuilder::default()
92    }
93}
94
95/// A builder for [`Vp9Settings`](crate::types::Vp9Settings).
96#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
97#[non_exhaustive]
98pub struct Vp9SettingsBuilder {
99    pub(crate) bitrate: ::std::option::Option<i32>,
100    pub(crate) framerate_control: ::std::option::Option<crate::types::Vp9FramerateControl>,
101    pub(crate) framerate_conversion_algorithm: ::std::option::Option<crate::types::Vp9FramerateConversionAlgorithm>,
102    pub(crate) framerate_denominator: ::std::option::Option<i32>,
103    pub(crate) framerate_numerator: ::std::option::Option<i32>,
104    pub(crate) gop_size: ::std::option::Option<f64>,
105    pub(crate) hrd_buffer_size: ::std::option::Option<i32>,
106    pub(crate) max_bitrate: ::std::option::Option<i32>,
107    pub(crate) par_control: ::std::option::Option<crate::types::Vp9ParControl>,
108    pub(crate) par_denominator: ::std::option::Option<i32>,
109    pub(crate) par_numerator: ::std::option::Option<i32>,
110    pub(crate) quality_tuning_level: ::std::option::Option<crate::types::Vp9QualityTuningLevel>,
111    pub(crate) rate_control_mode: ::std::option::Option<crate::types::Vp9RateControlMode>,
112}
113impl Vp9SettingsBuilder {
114    /// Target bitrate in bits/second. For example, enter five megabits per second as 5000000.
115    pub fn bitrate(mut self, input: i32) -> Self {
116        self.bitrate = ::std::option::Option::Some(input);
117        self
118    }
119    /// Target bitrate in bits/second. For example, enter five megabits per second as 5000000.
120    pub fn set_bitrate(mut self, input: ::std::option::Option<i32>) -> Self {
121        self.bitrate = input;
122        self
123    }
124    /// Target bitrate in bits/second. For example, enter five megabits per second as 5000000.
125    pub fn get_bitrate(&self) -> &::std::option::Option<i32> {
126        &self.bitrate
127    }
128    /// 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.
129    pub fn framerate_control(mut self, input: crate::types::Vp9FramerateControl) -> Self {
130        self.framerate_control = ::std::option::Option::Some(input);
131        self
132    }
133    /// 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.
134    pub fn set_framerate_control(mut self, input: ::std::option::Option<crate::types::Vp9FramerateControl>) -> Self {
135        self.framerate_control = input;
136        self
137    }
138    /// 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.
139    pub fn get_framerate_control(&self) -> &::std::option::Option<crate::types::Vp9FramerateControl> {
140        &self.framerate_control
141    }
142    /// Choose the method that you want MediaConvert to use when increasing or decreasing your video's 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. To create an output with the same number of frames as your input: Choose Maintain frame count. When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher frame rates and longer at lower frame rates.
143    pub fn framerate_conversion_algorithm(mut self, input: crate::types::Vp9FramerateConversionAlgorithm) -> Self {
144        self.framerate_conversion_algorithm = ::std::option::Option::Some(input);
145        self
146    }
147    /// Choose the method that you want MediaConvert to use when increasing or decreasing your video's 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. To create an output with the same number of frames as your input: Choose Maintain frame count. When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher frame rates and longer at lower frame rates.
148    pub fn set_framerate_conversion_algorithm(mut self, input: ::std::option::Option<crate::types::Vp9FramerateConversionAlgorithm>) -> Self {
149        self.framerate_conversion_algorithm = input;
150        self
151    }
152    /// Choose the method that you want MediaConvert to use when increasing or decreasing your video's 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. To create an output with the same number of frames as your input: Choose Maintain frame count. When you do, MediaConvert will not drop, interpolate, add, or otherwise change the frame count from your input to your output. Note that since the frame count is maintained, the duration of your output will become shorter at higher frame rates and longer at lower frame rates.
153    pub fn get_framerate_conversion_algorithm(&self) -> &::std::option::Option<crate::types::Vp9FramerateConversionAlgorithm> {
154        &self.framerate_conversion_algorithm
155    }
156    /// 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.
157    pub fn framerate_denominator(mut self, input: i32) -> Self {
158        self.framerate_denominator = ::std::option::Option::Some(input);
159        self
160    }
161    /// 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.
162    pub fn set_framerate_denominator(mut self, input: ::std::option::Option<i32>) -> Self {
163        self.framerate_denominator = input;
164        self
165    }
166    /// 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.
167    pub fn get_framerate_denominator(&self) -> &::std::option::Option<i32> {
168        &self.framerate_denominator
169    }
170    /// 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.
171    pub fn framerate_numerator(mut self, input: i32) -> Self {
172        self.framerate_numerator = ::std::option::Option::Some(input);
173        self
174    }
175    /// 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.
176    pub fn set_framerate_numerator(mut self, input: ::std::option::Option<i32>) -> Self {
177        self.framerate_numerator = input;
178        self
179    }
180    /// 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.
181    pub fn get_framerate_numerator(&self) -> &::std::option::Option<i32> {
182        &self.framerate_numerator
183    }
184    /// GOP Length (keyframe interval) in frames. Must be greater than zero.
185    pub fn gop_size(mut self, input: f64) -> Self {
186        self.gop_size = ::std::option::Option::Some(input);
187        self
188    }
189    /// GOP Length (keyframe interval) in frames. Must be greater than zero.
190    pub fn set_gop_size(mut self, input: ::std::option::Option<f64>) -> Self {
191        self.gop_size = input;
192        self
193    }
194    /// GOP Length (keyframe interval) in frames. Must be greater than zero.
195    pub fn get_gop_size(&self) -> &::std::option::Option<f64> {
196        &self.gop_size
197    }
198    /// Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000.
199    pub fn hrd_buffer_size(mut self, input: i32) -> Self {
200        self.hrd_buffer_size = ::std::option::Option::Some(input);
201        self
202    }
203    /// Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000.
204    pub fn set_hrd_buffer_size(mut self, input: ::std::option::Option<i32>) -> Self {
205        self.hrd_buffer_size = input;
206        self
207    }
208    /// Size of buffer (HRD buffer model) in bits. For example, enter five megabits as 5000000.
209    pub fn get_hrd_buffer_size(&self) -> &::std::option::Option<i32> {
210        &self.hrd_buffer_size
211    }
212    /// 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.
213    pub fn max_bitrate(mut self, input: i32) -> Self {
214        self.max_bitrate = ::std::option::Option::Some(input);
215        self
216    }
217    /// 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.
218    pub fn set_max_bitrate(mut self, input: ::std::option::Option<i32>) -> Self {
219        self.max_bitrate = input;
220        self
221    }
222    /// 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.
223    pub fn get_max_bitrate(&self) -> &::std::option::Option<i32> {
224        &self.max_bitrate
225    }
226    /// 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.
227    pub fn par_control(mut self, input: crate::types::Vp9ParControl) -> Self {
228        self.par_control = ::std::option::Option::Some(input);
229        self
230    }
231    /// 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.
232    pub fn set_par_control(mut self, input: ::std::option::Option<crate::types::Vp9ParControl>) -> Self {
233        self.par_control = input;
234        self
235    }
236    /// 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.
237    pub fn get_par_control(&self) -> &::std::option::Option<crate::types::Vp9ParControl> {
238        &self.par_control
239    }
240    /// 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.
241    pub fn par_denominator(mut self, input: i32) -> Self {
242        self.par_denominator = ::std::option::Option::Some(input);
243        self
244    }
245    /// 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.
246    pub fn set_par_denominator(mut self, input: ::std::option::Option<i32>) -> Self {
247        self.par_denominator = input;
248        self
249    }
250    /// 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.
251    pub fn get_par_denominator(&self) -> &::std::option::Option<i32> {
252        &self.par_denominator
253    }
254    /// 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.
255    pub fn par_numerator(mut self, input: i32) -> Self {
256        self.par_numerator = ::std::option::Option::Some(input);
257        self
258    }
259    /// 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.
260    pub fn set_par_numerator(mut self, input: ::std::option::Option<i32>) -> Self {
261        self.par_numerator = input;
262        self
263    }
264    /// 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.
265    pub fn get_par_numerator(&self) -> &::std::option::Option<i32> {
266        &self.par_numerator
267    }
268    /// 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.
269    pub fn quality_tuning_level(mut self, input: crate::types::Vp9QualityTuningLevel) -> Self {
270        self.quality_tuning_level = ::std::option::Option::Some(input);
271        self
272    }
273    /// 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.
274    pub fn set_quality_tuning_level(mut self, input: ::std::option::Option<crate::types::Vp9QualityTuningLevel>) -> Self {
275        self.quality_tuning_level = input;
276        self
277    }
278    /// 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.
279    pub fn get_quality_tuning_level(&self) -> &::std::option::Option<crate::types::Vp9QualityTuningLevel> {
280        &self.quality_tuning_level
281    }
282    /// With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode.
283    pub fn rate_control_mode(mut self, input: crate::types::Vp9RateControlMode) -> Self {
284        self.rate_control_mode = ::std::option::Option::Some(input);
285        self
286    }
287    /// With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode.
288    pub fn set_rate_control_mode(mut self, input: ::std::option::Option<crate::types::Vp9RateControlMode>) -> Self {
289        self.rate_control_mode = input;
290        self
291    }
292    /// With the VP9 codec, you can use only the variable bitrate (VBR) rate control mode.
293    pub fn get_rate_control_mode(&self) -> &::std::option::Option<crate::types::Vp9RateControlMode> {
294        &self.rate_control_mode
295    }
296    /// Consumes the builder and constructs a [`Vp9Settings`](crate::types::Vp9Settings).
297    pub fn build(self) -> crate::types::Vp9Settings {
298        crate::types::Vp9Settings {
299            bitrate: self.bitrate,
300            framerate_control: self.framerate_control,
301            framerate_conversion_algorithm: self.framerate_conversion_algorithm,
302            framerate_denominator: self.framerate_denominator,
303            framerate_numerator: self.framerate_numerator,
304            gop_size: self.gop_size,
305            hrd_buffer_size: self.hrd_buffer_size,
306            max_bitrate: self.max_bitrate,
307            par_control: self.par_control,
308            par_denominator: self.par_denominator,
309            par_numerator: self.par_numerator,
310            quality_tuning_level: self.quality_tuning_level,
311            rate_control_mode: self.rate_control_mode,
312        }
313    }
314}