1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/mediaconvert/MediaConvert_EXPORTS.h>
8 #include <aws/mediaconvert/model/ProresChromaSampling.h>
9 #include <aws/mediaconvert/model/ProresCodecProfile.h>
10 #include <aws/mediaconvert/model/ProresFramerateControl.h>
11 #include <aws/mediaconvert/model/ProresFramerateConversionAlgorithm.h>
12 #include <aws/mediaconvert/model/ProresInterlaceMode.h>
13 #include <aws/mediaconvert/model/ProresParControl.h>
14 #include <aws/mediaconvert/model/ProresScanTypeConversionMode.h>
15 #include <aws/mediaconvert/model/ProresSlowPal.h>
16 #include <aws/mediaconvert/model/ProresTelecine.h>
17 #include <utility>
18 
19 namespace Aws
20 {
21 namespace Utils
22 {
23 namespace Json
24 {
25   class JsonValue;
26   class JsonView;
27 } // namespace Json
28 } // namespace Utils
29 namespace MediaConvert
30 {
31 namespace Model
32 {
33 
34   /**
35    * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
36    * value PRORES.<p><h3>See Also:</h3>   <a
37    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ProresSettings">AWS
38    * API Reference</a></p>
39    */
40   class AWS_MEDIACONVERT_API ProresSettings
41   {
42   public:
43     ProresSettings();
44     ProresSettings(Aws::Utils::Json::JsonView jsonValue);
45     ProresSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
46     Aws::Utils::Json::JsonValue Jsonize() const;
47 
48 
49     /**
50      * This setting applies only to ProRes 4444 and ProRes 4444 XQ outputs that you
51      * create from inputs that use 4:4:4 chroma sampling. Set Preserve 4:4:4 sampling
52      * (PRESERVE_444_SAMPLING) to allow outputs to also use 4:4:4 chroma sampling. You
53      * must specify a value for this setting when your output codec profile supports
54      * 4:4:4 chroma sampling. Related Settings: When you set Chroma sampling to
55      * Preserve 4:4:4 sampling (PRESERVE_444_SAMPLING), you must choose an output codec
56      * profile that supports 4:4:4 chroma sampling. These values for Profile
57      * (CodecProfile) support 4:4:4 chroma sampling: Apple ProRes 4444
58      * (APPLE_PRORES_4444) or Apple ProRes 4444 XQ (APPLE_PRORES_4444_XQ). When you set
59      * Chroma sampling to Preserve 4:4:4 sampling, you must disable all video
60      * preprocessors except for Nexguard file marker (PartnerWatermarking). When you
61      * set Chroma sampling to Preserve 4:4:4 sampling and use framerate conversion, you
62      * must set Frame rate conversion algorithm (FramerateConversionAlgorithm) to Drop
63      * duplicate (DUPLICATE_DROP).
64      */
GetChromaSampling()65     inline const ProresChromaSampling& GetChromaSampling() const{ return m_chromaSampling; }
66 
67     /**
68      * This setting applies only to ProRes 4444 and ProRes 4444 XQ outputs that you
69      * create from inputs that use 4:4:4 chroma sampling. Set Preserve 4:4:4 sampling
70      * (PRESERVE_444_SAMPLING) to allow outputs to also use 4:4:4 chroma sampling. You
71      * must specify a value for this setting when your output codec profile supports
72      * 4:4:4 chroma sampling. Related Settings: When you set Chroma sampling to
73      * Preserve 4:4:4 sampling (PRESERVE_444_SAMPLING), you must choose an output codec
74      * profile that supports 4:4:4 chroma sampling. These values for Profile
75      * (CodecProfile) support 4:4:4 chroma sampling: Apple ProRes 4444
76      * (APPLE_PRORES_4444) or Apple ProRes 4444 XQ (APPLE_PRORES_4444_XQ). When you set
77      * Chroma sampling to Preserve 4:4:4 sampling, you must disable all video
78      * preprocessors except for Nexguard file marker (PartnerWatermarking). When you
79      * set Chroma sampling to Preserve 4:4:4 sampling and use framerate conversion, you
80      * must set Frame rate conversion algorithm (FramerateConversionAlgorithm) to Drop
81      * duplicate (DUPLICATE_DROP).
82      */
ChromaSamplingHasBeenSet()83     inline bool ChromaSamplingHasBeenSet() const { return m_chromaSamplingHasBeenSet; }
84 
85     /**
86      * This setting applies only to ProRes 4444 and ProRes 4444 XQ outputs that you
87      * create from inputs that use 4:4:4 chroma sampling. Set Preserve 4:4:4 sampling
88      * (PRESERVE_444_SAMPLING) to allow outputs to also use 4:4:4 chroma sampling. You
89      * must specify a value for this setting when your output codec profile supports
90      * 4:4:4 chroma sampling. Related Settings: When you set Chroma sampling to
91      * Preserve 4:4:4 sampling (PRESERVE_444_SAMPLING), you must choose an output codec
92      * profile that supports 4:4:4 chroma sampling. These values for Profile
93      * (CodecProfile) support 4:4:4 chroma sampling: Apple ProRes 4444
94      * (APPLE_PRORES_4444) or Apple ProRes 4444 XQ (APPLE_PRORES_4444_XQ). When you set
95      * Chroma sampling to Preserve 4:4:4 sampling, you must disable all video
96      * preprocessors except for Nexguard file marker (PartnerWatermarking). When you
97      * set Chroma sampling to Preserve 4:4:4 sampling and use framerate conversion, you
98      * must set Frame rate conversion algorithm (FramerateConversionAlgorithm) to Drop
99      * duplicate (DUPLICATE_DROP).
100      */
SetChromaSampling(const ProresChromaSampling & value)101     inline void SetChromaSampling(const ProresChromaSampling& value) { m_chromaSamplingHasBeenSet = true; m_chromaSampling = value; }
102 
103     /**
104      * This setting applies only to ProRes 4444 and ProRes 4444 XQ outputs that you
105      * create from inputs that use 4:4:4 chroma sampling. Set Preserve 4:4:4 sampling
106      * (PRESERVE_444_SAMPLING) to allow outputs to also use 4:4:4 chroma sampling. You
107      * must specify a value for this setting when your output codec profile supports
108      * 4:4:4 chroma sampling. Related Settings: When you set Chroma sampling to
109      * Preserve 4:4:4 sampling (PRESERVE_444_SAMPLING), you must choose an output codec
110      * profile that supports 4:4:4 chroma sampling. These values for Profile
111      * (CodecProfile) support 4:4:4 chroma sampling: Apple ProRes 4444
112      * (APPLE_PRORES_4444) or Apple ProRes 4444 XQ (APPLE_PRORES_4444_XQ). When you set
113      * Chroma sampling to Preserve 4:4:4 sampling, you must disable all video
114      * preprocessors except for Nexguard file marker (PartnerWatermarking). When you
115      * set Chroma sampling to Preserve 4:4:4 sampling and use framerate conversion, you
116      * must set Frame rate conversion algorithm (FramerateConversionAlgorithm) to Drop
117      * duplicate (DUPLICATE_DROP).
118      */
SetChromaSampling(ProresChromaSampling && value)119     inline void SetChromaSampling(ProresChromaSampling&& value) { m_chromaSamplingHasBeenSet = true; m_chromaSampling = std::move(value); }
120 
121     /**
122      * This setting applies only to ProRes 4444 and ProRes 4444 XQ outputs that you
123      * create from inputs that use 4:4:4 chroma sampling. Set Preserve 4:4:4 sampling
124      * (PRESERVE_444_SAMPLING) to allow outputs to also use 4:4:4 chroma sampling. You
125      * must specify a value for this setting when your output codec profile supports
126      * 4:4:4 chroma sampling. Related Settings: When you set Chroma sampling to
127      * Preserve 4:4:4 sampling (PRESERVE_444_SAMPLING), you must choose an output codec
128      * profile that supports 4:4:4 chroma sampling. These values for Profile
129      * (CodecProfile) support 4:4:4 chroma sampling: Apple ProRes 4444
130      * (APPLE_PRORES_4444) or Apple ProRes 4444 XQ (APPLE_PRORES_4444_XQ). When you set
131      * Chroma sampling to Preserve 4:4:4 sampling, you must disable all video
132      * preprocessors except for Nexguard file marker (PartnerWatermarking). When you
133      * set Chroma sampling to Preserve 4:4:4 sampling and use framerate conversion, you
134      * must set Frame rate conversion algorithm (FramerateConversionAlgorithm) to Drop
135      * duplicate (DUPLICATE_DROP).
136      */
WithChromaSampling(const ProresChromaSampling & value)137     inline ProresSettings& WithChromaSampling(const ProresChromaSampling& value) { SetChromaSampling(value); return *this;}
138 
139     /**
140      * This setting applies only to ProRes 4444 and ProRes 4444 XQ outputs that you
141      * create from inputs that use 4:4:4 chroma sampling. Set Preserve 4:4:4 sampling
142      * (PRESERVE_444_SAMPLING) to allow outputs to also use 4:4:4 chroma sampling. You
143      * must specify a value for this setting when your output codec profile supports
144      * 4:4:4 chroma sampling. Related Settings: When you set Chroma sampling to
145      * Preserve 4:4:4 sampling (PRESERVE_444_SAMPLING), you must choose an output codec
146      * profile that supports 4:4:4 chroma sampling. These values for Profile
147      * (CodecProfile) support 4:4:4 chroma sampling: Apple ProRes 4444
148      * (APPLE_PRORES_4444) or Apple ProRes 4444 XQ (APPLE_PRORES_4444_XQ). When you set
149      * Chroma sampling to Preserve 4:4:4 sampling, you must disable all video
150      * preprocessors except for Nexguard file marker (PartnerWatermarking). When you
151      * set Chroma sampling to Preserve 4:4:4 sampling and use framerate conversion, you
152      * must set Frame rate conversion algorithm (FramerateConversionAlgorithm) to Drop
153      * duplicate (DUPLICATE_DROP).
154      */
WithChromaSampling(ProresChromaSampling && value)155     inline ProresSettings& WithChromaSampling(ProresChromaSampling&& value) { SetChromaSampling(std::move(value)); return *this;}
156 
157 
158     /**
159      * Use Profile (ProResCodecProfile) to specify the type of Apple ProRes codec to
160      * use for this output.
161      */
GetCodecProfile()162     inline const ProresCodecProfile& GetCodecProfile() const{ return m_codecProfile; }
163 
164     /**
165      * Use Profile (ProResCodecProfile) to specify the type of Apple ProRes codec to
166      * use for this output.
167      */
CodecProfileHasBeenSet()168     inline bool CodecProfileHasBeenSet() const { return m_codecProfileHasBeenSet; }
169 
170     /**
171      * Use Profile (ProResCodecProfile) to specify the type of Apple ProRes codec to
172      * use for this output.
173      */
SetCodecProfile(const ProresCodecProfile & value)174     inline void SetCodecProfile(const ProresCodecProfile& value) { m_codecProfileHasBeenSet = true; m_codecProfile = value; }
175 
176     /**
177      * Use Profile (ProResCodecProfile) to specify the type of Apple ProRes codec to
178      * use for this output.
179      */
SetCodecProfile(ProresCodecProfile && value)180     inline void SetCodecProfile(ProresCodecProfile&& value) { m_codecProfileHasBeenSet = true; m_codecProfile = std::move(value); }
181 
182     /**
183      * Use Profile (ProResCodecProfile) to specify the type of Apple ProRes codec to
184      * use for this output.
185      */
WithCodecProfile(const ProresCodecProfile & value)186     inline ProresSettings& WithCodecProfile(const ProresCodecProfile& value) { SetCodecProfile(value); return *this;}
187 
188     /**
189      * Use Profile (ProResCodecProfile) to specify the type of Apple ProRes codec to
190      * use for this output.
191      */
WithCodecProfile(ProresCodecProfile && value)192     inline ProresSettings& WithCodecProfile(ProresCodecProfile&& value) { SetCodecProfile(std::move(value)); return *this;}
193 
194 
195     /**
196      * If you are using the console, use the Framerate setting to specify the frame
197      * rate for this output. If you want to keep the same frame rate as the input
198      * video, choose Follow source. If you want to do frame rate conversion, choose a
199      * frame rate from the dropdown list or choose Custom. The framerates shown in the
200      * dropdown list are decimal approximations of fractions. If you choose Custom,
201      * specify your frame rate as a fraction. If you are creating your transcoding job
202      * specification as a JSON file without the console, use FramerateControl to
203      * specify which value the service uses for the frame rate for this output. Choose
204      * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the
205      * input. Choose SPECIFIED if you want the service to use the frame rate you
206      * specify in the settings FramerateNumerator and FramerateDenominator.
207      */
GetFramerateControl()208     inline const ProresFramerateControl& GetFramerateControl() const{ return m_framerateControl; }
209 
210     /**
211      * If you are using the console, use the Framerate setting to specify the frame
212      * rate for this output. If you want to keep the same frame rate as the input
213      * video, choose Follow source. If you want to do frame rate conversion, choose a
214      * frame rate from the dropdown list or choose Custom. The framerates shown in the
215      * dropdown list are decimal approximations of fractions. If you choose Custom,
216      * specify your frame rate as a fraction. If you are creating your transcoding job
217      * specification as a JSON file without the console, use FramerateControl to
218      * specify which value the service uses for the frame rate for this output. Choose
219      * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the
220      * input. Choose SPECIFIED if you want the service to use the frame rate you
221      * specify in the settings FramerateNumerator and FramerateDenominator.
222      */
FramerateControlHasBeenSet()223     inline bool FramerateControlHasBeenSet() const { return m_framerateControlHasBeenSet; }
224 
225     /**
226      * If you are using the console, use the Framerate setting to specify the frame
227      * rate for this output. If you want to keep the same frame rate as the input
228      * video, choose Follow source. If you want to do frame rate conversion, choose a
229      * frame rate from the dropdown list or choose Custom. The framerates shown in the
230      * dropdown list are decimal approximations of fractions. If you choose Custom,
231      * specify your frame rate as a fraction. If you are creating your transcoding job
232      * specification as a JSON file without the console, use FramerateControl to
233      * specify which value the service uses for the frame rate for this output. Choose
234      * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the
235      * input. Choose SPECIFIED if you want the service to use the frame rate you
236      * specify in the settings FramerateNumerator and FramerateDenominator.
237      */
SetFramerateControl(const ProresFramerateControl & value)238     inline void SetFramerateControl(const ProresFramerateControl& value) { m_framerateControlHasBeenSet = true; m_framerateControl = value; }
239 
240     /**
241      * If you are using the console, use the Framerate setting to specify the frame
242      * rate for this output. If you want to keep the same frame rate as the input
243      * video, choose Follow source. If you want to do frame rate conversion, choose a
244      * frame rate from the dropdown list or choose Custom. The framerates shown in the
245      * dropdown list are decimal approximations of fractions. If you choose Custom,
246      * specify your frame rate as a fraction. If you are creating your transcoding job
247      * specification as a JSON file without the console, use FramerateControl to
248      * specify which value the service uses for the frame rate for this output. Choose
249      * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the
250      * input. Choose SPECIFIED if you want the service to use the frame rate you
251      * specify in the settings FramerateNumerator and FramerateDenominator.
252      */
SetFramerateControl(ProresFramerateControl && value)253     inline void SetFramerateControl(ProresFramerateControl&& value) { m_framerateControlHasBeenSet = true; m_framerateControl = std::move(value); }
254 
255     /**
256      * If you are using the console, use the Framerate setting to specify the frame
257      * rate for this output. If you want to keep the same frame rate as the input
258      * video, choose Follow source. If you want to do frame rate conversion, choose a
259      * frame rate from the dropdown list or choose Custom. The framerates shown in the
260      * dropdown list are decimal approximations of fractions. If you choose Custom,
261      * specify your frame rate as a fraction. If you are creating your transcoding job
262      * specification as a JSON file without the console, use FramerateControl to
263      * specify which value the service uses for the frame rate for this output. Choose
264      * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the
265      * input. Choose SPECIFIED if you want the service to use the frame rate you
266      * specify in the settings FramerateNumerator and FramerateDenominator.
267      */
WithFramerateControl(const ProresFramerateControl & value)268     inline ProresSettings& WithFramerateControl(const ProresFramerateControl& value) { SetFramerateControl(value); return *this;}
269 
270     /**
271      * If you are using the console, use the Framerate setting to specify the frame
272      * rate for this output. If you want to keep the same frame rate as the input
273      * video, choose Follow source. If you want to do frame rate conversion, choose a
274      * frame rate from the dropdown list or choose Custom. The framerates shown in the
275      * dropdown list are decimal approximations of fractions. If you choose Custom,
276      * specify your frame rate as a fraction. If you are creating your transcoding job
277      * specification as a JSON file without the console, use FramerateControl to
278      * specify which value the service uses for the frame rate for this output. Choose
279      * INITIALIZE_FROM_SOURCE if you want the service to use the frame rate from the
280      * input. Choose SPECIFIED if you want the service to use the frame rate you
281      * specify in the settings FramerateNumerator and FramerateDenominator.
282      */
WithFramerateControl(ProresFramerateControl && value)283     inline ProresSettings& WithFramerateControl(ProresFramerateControl&& value) { SetFramerateControl(std::move(value)); return *this;}
284 
285 
286     /**
287      * Choose the method that you want MediaConvert to use when increasing or
288      * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP)
289      * for numerically simple conversions, such as 60 fps to 30 fps. For numerically
290      * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter.
291      * This results in a smooth picture, but might introduce undesirable video
292      * artifacts. For complex frame rate conversions, especially if your source video
293      * has already been converted from its original cadence, use FrameFormer
294      * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the
295      * best conversion method frame by frame. Note that using FrameFormer increases the
296      * transcoding time and incurs a significant add-on cost.
297      */
GetFramerateConversionAlgorithm()298     inline const ProresFramerateConversionAlgorithm& GetFramerateConversionAlgorithm() const{ return m_framerateConversionAlgorithm; }
299 
300     /**
301      * Choose the method that you want MediaConvert to use when increasing or
302      * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP)
303      * for numerically simple conversions, such as 60 fps to 30 fps. For numerically
304      * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter.
305      * This results in a smooth picture, but might introduce undesirable video
306      * artifacts. For complex frame rate conversions, especially if your source video
307      * has already been converted from its original cadence, use FrameFormer
308      * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the
309      * best conversion method frame by frame. Note that using FrameFormer increases the
310      * transcoding time and incurs a significant add-on cost.
311      */
FramerateConversionAlgorithmHasBeenSet()312     inline bool FramerateConversionAlgorithmHasBeenSet() const { return m_framerateConversionAlgorithmHasBeenSet; }
313 
314     /**
315      * Choose the method that you want MediaConvert to use when increasing or
316      * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP)
317      * for numerically simple conversions, such as 60 fps to 30 fps. For numerically
318      * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter.
319      * This results in a smooth picture, but might introduce undesirable video
320      * artifacts. For complex frame rate conversions, especially if your source video
321      * has already been converted from its original cadence, use FrameFormer
322      * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the
323      * best conversion method frame by frame. Note that using FrameFormer increases the
324      * transcoding time and incurs a significant add-on cost.
325      */
SetFramerateConversionAlgorithm(const ProresFramerateConversionAlgorithm & value)326     inline void SetFramerateConversionAlgorithm(const ProresFramerateConversionAlgorithm& value) { m_framerateConversionAlgorithmHasBeenSet = true; m_framerateConversionAlgorithm = value; }
327 
328     /**
329      * Choose the method that you want MediaConvert to use when increasing or
330      * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP)
331      * for numerically simple conversions, such as 60 fps to 30 fps. For numerically
332      * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter.
333      * This results in a smooth picture, but might introduce undesirable video
334      * artifacts. For complex frame rate conversions, especially if your source video
335      * has already been converted from its original cadence, use FrameFormer
336      * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the
337      * best conversion method frame by frame. Note that using FrameFormer increases the
338      * transcoding time and incurs a significant add-on cost.
339      */
SetFramerateConversionAlgorithm(ProresFramerateConversionAlgorithm && value)340     inline void SetFramerateConversionAlgorithm(ProresFramerateConversionAlgorithm&& value) { m_framerateConversionAlgorithmHasBeenSet = true; m_framerateConversionAlgorithm = std::move(value); }
341 
342     /**
343      * Choose the method that you want MediaConvert to use when increasing or
344      * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP)
345      * for numerically simple conversions, such as 60 fps to 30 fps. For numerically
346      * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter.
347      * This results in a smooth picture, but might introduce undesirable video
348      * artifacts. For complex frame rate conversions, especially if your source video
349      * has already been converted from its original cadence, use FrameFormer
350      * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the
351      * best conversion method frame by frame. Note that using FrameFormer increases the
352      * transcoding time and incurs a significant add-on cost.
353      */
WithFramerateConversionAlgorithm(const ProresFramerateConversionAlgorithm & value)354     inline ProresSettings& WithFramerateConversionAlgorithm(const ProresFramerateConversionAlgorithm& value) { SetFramerateConversionAlgorithm(value); return *this;}
355 
356     /**
357      * Choose the method that you want MediaConvert to use when increasing or
358      * decreasing the frame rate. We recommend using drop duplicate (DUPLICATE_DROP)
359      * for numerically simple conversions, such as 60 fps to 30 fps. For numerically
360      * complex conversions, you can use interpolate (INTERPOLATE) to avoid stutter.
361      * This results in a smooth picture, but might introduce undesirable video
362      * artifacts. For complex frame rate conversions, especially if your source video
363      * has already been converted from its original cadence, use FrameFormer
364      * (FRAMEFORMER) to do motion-compensated interpolation. FrameFormer chooses the
365      * best conversion method frame by frame. Note that using FrameFormer increases the
366      * transcoding time and incurs a significant add-on cost.
367      */
WithFramerateConversionAlgorithm(ProresFramerateConversionAlgorithm && value)368     inline ProresSettings& WithFramerateConversionAlgorithm(ProresFramerateConversionAlgorithm&& value) { SetFramerateConversionAlgorithm(std::move(value)); return *this;}
369 
370 
371     /**
372      * When you use the API for transcode jobs that use frame rate conversion, specify
373      * the frame rate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use
374      * FramerateDenominator to specify the denominator of this fraction. In this
375      * example, use 1001 for the value of FramerateDenominator. When you use the
376      * console for transcode jobs that use frame rate conversion, provide the value as
377      * a decimal number for Framerate. In this example, specify 23.976.
378      */
GetFramerateDenominator()379     inline int GetFramerateDenominator() const{ return m_framerateDenominator; }
380 
381     /**
382      * When you use the API for transcode jobs that use frame rate conversion, specify
383      * the frame rate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use
384      * FramerateDenominator to specify the denominator of this fraction. In this
385      * example, use 1001 for the value of FramerateDenominator. When you use the
386      * console for transcode jobs that use frame rate conversion, provide the value as
387      * a decimal number for Framerate. In this example, specify 23.976.
388      */
FramerateDenominatorHasBeenSet()389     inline bool FramerateDenominatorHasBeenSet() const { return m_framerateDenominatorHasBeenSet; }
390 
391     /**
392      * When you use the API for transcode jobs that use frame rate conversion, specify
393      * the frame rate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use
394      * FramerateDenominator to specify the denominator of this fraction. In this
395      * example, use 1001 for the value of FramerateDenominator. When you use the
396      * console for transcode jobs that use frame rate conversion, provide the value as
397      * a decimal number for Framerate. In this example, specify 23.976.
398      */
SetFramerateDenominator(int value)399     inline void SetFramerateDenominator(int value) { m_framerateDenominatorHasBeenSet = true; m_framerateDenominator = value; }
400 
401     /**
402      * When you use the API for transcode jobs that use frame rate conversion, specify
403      * the frame rate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use
404      * FramerateDenominator to specify the denominator of this fraction. In this
405      * example, use 1001 for the value of FramerateDenominator. When you use the
406      * console for transcode jobs that use frame rate conversion, provide the value as
407      * a decimal number for Framerate. In this example, specify 23.976.
408      */
WithFramerateDenominator(int value)409     inline ProresSettings& WithFramerateDenominator(int value) { SetFramerateDenominator(value); return *this;}
410 
411 
412     /**
413      * When you use the API for transcode jobs that use frame rate conversion, specify
414      * the frame rate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use
415      * FramerateNumerator to specify the numerator of this fraction. In this example,
416      * use 24000 for the value of FramerateNumerator. When you use the console for
417      * transcode jobs that use frame rate conversion, provide the value as a decimal
418      * number for Framerate. In this example, specify 23.976.
419      */
GetFramerateNumerator()420     inline int GetFramerateNumerator() const{ return m_framerateNumerator; }
421 
422     /**
423      * When you use the API for transcode jobs that use frame rate conversion, specify
424      * the frame rate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use
425      * FramerateNumerator to specify the numerator of this fraction. In this example,
426      * use 24000 for the value of FramerateNumerator. When you use the console for
427      * transcode jobs that use frame rate conversion, provide the value as a decimal
428      * number for Framerate. In this example, specify 23.976.
429      */
FramerateNumeratorHasBeenSet()430     inline bool FramerateNumeratorHasBeenSet() const { return m_framerateNumeratorHasBeenSet; }
431 
432     /**
433      * When you use the API for transcode jobs that use frame rate conversion, specify
434      * the frame rate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use
435      * FramerateNumerator to specify the numerator of this fraction. In this example,
436      * use 24000 for the value of FramerateNumerator. When you use the console for
437      * transcode jobs that use frame rate conversion, provide the value as a decimal
438      * number for Framerate. In this example, specify 23.976.
439      */
SetFramerateNumerator(int value)440     inline void SetFramerateNumerator(int value) { m_framerateNumeratorHasBeenSet = true; m_framerateNumerator = value; }
441 
442     /**
443      * When you use the API for transcode jobs that use frame rate conversion, specify
444      * the frame rate as a fraction. For example,  24000 / 1001 = 23.976 fps. Use
445      * FramerateNumerator to specify the numerator of this fraction. In this example,
446      * use 24000 for the value of FramerateNumerator. When you use the console for
447      * transcode jobs that use frame rate conversion, provide the value as a decimal
448      * number for Framerate. In this example, specify 23.976.
449      */
WithFramerateNumerator(int value)450     inline ProresSettings& WithFramerateNumerator(int value) { SetFramerateNumerator(value); return *this;}
451 
452 
453     /**
454      * Choose the scan line type for the output. Keep the default value, Progressive
455      * (PROGRESSIVE) to create a progressive output, regardless of the scan type of
456      * your input. Use Top field first (TOP_FIELD) or Bottom field first (BOTTOM_FIELD)
457      * to create an output that's interlaced with the same field polarity throughout.
458      * Use Follow, default top (FOLLOW_TOP_FIELD) or Follow, default bottom
459      * (FOLLOW_BOTTOM_FIELD) to produce outputs with the same field polarity as the
460      * source. For jobs that have multiple inputs, the output field polarity might
461      * change over the course of the output. Follow behavior depends on the input scan
462      * type. If the source is interlaced, the output will be interlaced with the same
463      * polarity as the source. If the source is progressive, the output will be
464      * interlaced with top field bottom field first, depending on which of the Follow
465      * options you choose.
466      */
GetInterlaceMode()467     inline const ProresInterlaceMode& GetInterlaceMode() const{ return m_interlaceMode; }
468 
469     /**
470      * Choose the scan line type for the output. Keep the default value, Progressive
471      * (PROGRESSIVE) to create a progressive output, regardless of the scan type of
472      * your input. Use Top field first (TOP_FIELD) or Bottom field first (BOTTOM_FIELD)
473      * to create an output that's interlaced with the same field polarity throughout.
474      * Use Follow, default top (FOLLOW_TOP_FIELD) or Follow, default bottom
475      * (FOLLOW_BOTTOM_FIELD) to produce outputs with the same field polarity as the
476      * source. For jobs that have multiple inputs, the output field polarity might
477      * change over the course of the output. Follow behavior depends on the input scan
478      * type. If the source is interlaced, the output will be interlaced with the same
479      * polarity as the source. If the source is progressive, the output will be
480      * interlaced with top field bottom field first, depending on which of the Follow
481      * options you choose.
482      */
InterlaceModeHasBeenSet()483     inline bool InterlaceModeHasBeenSet() const { return m_interlaceModeHasBeenSet; }
484 
485     /**
486      * Choose the scan line type for the output. Keep the default value, Progressive
487      * (PROGRESSIVE) to create a progressive output, regardless of the scan type of
488      * your input. Use Top field first (TOP_FIELD) or Bottom field first (BOTTOM_FIELD)
489      * to create an output that's interlaced with the same field polarity throughout.
490      * Use Follow, default top (FOLLOW_TOP_FIELD) or Follow, default bottom
491      * (FOLLOW_BOTTOM_FIELD) to produce outputs with the same field polarity as the
492      * source. For jobs that have multiple inputs, the output field polarity might
493      * change over the course of the output. Follow behavior depends on the input scan
494      * type. If the source is interlaced, the output will be interlaced with the same
495      * polarity as the source. If the source is progressive, the output will be
496      * interlaced with top field bottom field first, depending on which of the Follow
497      * options you choose.
498      */
SetInterlaceMode(const ProresInterlaceMode & value)499     inline void SetInterlaceMode(const ProresInterlaceMode& value) { m_interlaceModeHasBeenSet = true; m_interlaceMode = value; }
500 
501     /**
502      * Choose the scan line type for the output. Keep the default value, Progressive
503      * (PROGRESSIVE) to create a progressive output, regardless of the scan type of
504      * your input. Use Top field first (TOP_FIELD) or Bottom field first (BOTTOM_FIELD)
505      * to create an output that's interlaced with the same field polarity throughout.
506      * Use Follow, default top (FOLLOW_TOP_FIELD) or Follow, default bottom
507      * (FOLLOW_BOTTOM_FIELD) to produce outputs with the same field polarity as the
508      * source. For jobs that have multiple inputs, the output field polarity might
509      * change over the course of the output. Follow behavior depends on the input scan
510      * type. If the source is interlaced, the output will be interlaced with the same
511      * polarity as the source. If the source is progressive, the output will be
512      * interlaced with top field bottom field first, depending on which of the Follow
513      * options you choose.
514      */
SetInterlaceMode(ProresInterlaceMode && value)515     inline void SetInterlaceMode(ProresInterlaceMode&& value) { m_interlaceModeHasBeenSet = true; m_interlaceMode = std::move(value); }
516 
517     /**
518      * Choose the scan line type for the output. Keep the default value, Progressive
519      * (PROGRESSIVE) to create a progressive output, regardless of the scan type of
520      * your input. Use Top field first (TOP_FIELD) or Bottom field first (BOTTOM_FIELD)
521      * to create an output that's interlaced with the same field polarity throughout.
522      * Use Follow, default top (FOLLOW_TOP_FIELD) or Follow, default bottom
523      * (FOLLOW_BOTTOM_FIELD) to produce outputs with the same field polarity as the
524      * source. For jobs that have multiple inputs, the output field polarity might
525      * change over the course of the output. Follow behavior depends on the input scan
526      * type. If the source is interlaced, the output will be interlaced with the same
527      * polarity as the source. If the source is progressive, the output will be
528      * interlaced with top field bottom field first, depending on which of the Follow
529      * options you choose.
530      */
WithInterlaceMode(const ProresInterlaceMode & value)531     inline ProresSettings& WithInterlaceMode(const ProresInterlaceMode& value) { SetInterlaceMode(value); return *this;}
532 
533     /**
534      * Choose the scan line type for the output. Keep the default value, Progressive
535      * (PROGRESSIVE) to create a progressive output, regardless of the scan type of
536      * your input. Use Top field first (TOP_FIELD) or Bottom field first (BOTTOM_FIELD)
537      * to create an output that's interlaced with the same field polarity throughout.
538      * Use Follow, default top (FOLLOW_TOP_FIELD) or Follow, default bottom
539      * (FOLLOW_BOTTOM_FIELD) to produce outputs with the same field polarity as the
540      * source. For jobs that have multiple inputs, the output field polarity might
541      * change over the course of the output. Follow behavior depends on the input scan
542      * type. If the source is interlaced, the output will be interlaced with the same
543      * polarity as the source. If the source is progressive, the output will be
544      * interlaced with top field bottom field first, depending on which of the Follow
545      * options you choose.
546      */
WithInterlaceMode(ProresInterlaceMode && value)547     inline ProresSettings& WithInterlaceMode(ProresInterlaceMode&& value) { SetInterlaceMode(std::move(value)); return *this;}
548 
549 
550     /**
551      * Optional. Specify how the service determines the pixel aspect ratio (PAR) for
552      * this output. The default behavior, Follow source (INITIALIZE_FROM_SOURCE), uses
553      * the PAR from your input video for your output. To specify a different PAR in the
554      * console, choose any value other than Follow source. To specify a different PAR
555      * by editing the JSON job specification, choose SPECIFIED. When you choose
556      * SPECIFIED for this setting, you must also specify values for the parNumerator
557      * and parDenominator settings.
558      */
GetParControl()559     inline const ProresParControl& GetParControl() const{ return m_parControl; }
560 
561     /**
562      * Optional. Specify how the service determines the pixel aspect ratio (PAR) for
563      * this output. The default behavior, Follow source (INITIALIZE_FROM_SOURCE), uses
564      * the PAR from your input video for your output. To specify a different PAR in the
565      * console, choose any value other than Follow source. To specify a different PAR
566      * by editing the JSON job specification, choose SPECIFIED. When you choose
567      * SPECIFIED for this setting, you must also specify values for the parNumerator
568      * and parDenominator settings.
569      */
ParControlHasBeenSet()570     inline bool ParControlHasBeenSet() const { return m_parControlHasBeenSet; }
571 
572     /**
573      * Optional. Specify how the service determines the pixel aspect ratio (PAR) for
574      * this output. The default behavior, Follow source (INITIALIZE_FROM_SOURCE), uses
575      * the PAR from your input video for your output. To specify a different PAR in the
576      * console, choose any value other than Follow source. To specify a different PAR
577      * by editing the JSON job specification, choose SPECIFIED. When you choose
578      * SPECIFIED for this setting, you must also specify values for the parNumerator
579      * and parDenominator settings.
580      */
SetParControl(const ProresParControl & value)581     inline void SetParControl(const ProresParControl& value) { m_parControlHasBeenSet = true; m_parControl = value; }
582 
583     /**
584      * Optional. Specify how the service determines the pixel aspect ratio (PAR) for
585      * this output. The default behavior, Follow source (INITIALIZE_FROM_SOURCE), uses
586      * the PAR from your input video for your output. To specify a different PAR in the
587      * console, choose any value other than Follow source. To specify a different PAR
588      * by editing the JSON job specification, choose SPECIFIED. When you choose
589      * SPECIFIED for this setting, you must also specify values for the parNumerator
590      * and parDenominator settings.
591      */
SetParControl(ProresParControl && value)592     inline void SetParControl(ProresParControl&& value) { m_parControlHasBeenSet = true; m_parControl = std::move(value); }
593 
594     /**
595      * Optional. Specify how the service determines the pixel aspect ratio (PAR) for
596      * this output. The default behavior, Follow source (INITIALIZE_FROM_SOURCE), uses
597      * the PAR from your input video for your output. To specify a different PAR in the
598      * console, choose any value other than Follow source. To specify a different PAR
599      * by editing the JSON job specification, choose SPECIFIED. When you choose
600      * SPECIFIED for this setting, you must also specify values for the parNumerator
601      * and parDenominator settings.
602      */
WithParControl(const ProresParControl & value)603     inline ProresSettings& WithParControl(const ProresParControl& value) { SetParControl(value); return *this;}
604 
605     /**
606      * Optional. Specify how the service determines the pixel aspect ratio (PAR) for
607      * this output. The default behavior, Follow source (INITIALIZE_FROM_SOURCE), uses
608      * the PAR from your input video for your output. To specify a different PAR in the
609      * console, choose any value other than Follow source. To specify a different PAR
610      * by editing the JSON job specification, choose SPECIFIED. When you choose
611      * SPECIFIED for this setting, you must also specify values for the parNumerator
612      * and parDenominator settings.
613      */
WithParControl(ProresParControl && value)614     inline ProresSettings& WithParControl(ProresParControl&& value) { SetParControl(std::move(value)); return *this;}
615 
616 
617     /**
618      * Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the
619      * console, this corresponds to any value other than Follow source. When you
620      * specify an output pixel aspect ratio (PAR) that is different from your input
621      * video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC
622      * widescreen, you would specify the ratio 40:33. In this example, the value for
623      * parDenominator is 33.
624      */
GetParDenominator()625     inline int GetParDenominator() const{ return m_parDenominator; }
626 
627     /**
628      * Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the
629      * console, this corresponds to any value other than Follow source. When you
630      * specify an output pixel aspect ratio (PAR) that is different from your input
631      * video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC
632      * widescreen, you would specify the ratio 40:33. In this example, the value for
633      * parDenominator is 33.
634      */
ParDenominatorHasBeenSet()635     inline bool ParDenominatorHasBeenSet() const { return m_parDenominatorHasBeenSet; }
636 
637     /**
638      * Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the
639      * console, this corresponds to any value other than Follow source. When you
640      * specify an output pixel aspect ratio (PAR) that is different from your input
641      * video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC
642      * widescreen, you would specify the ratio 40:33. In this example, the value for
643      * parDenominator is 33.
644      */
SetParDenominator(int value)645     inline void SetParDenominator(int value) { m_parDenominatorHasBeenSet = true; m_parDenominator = value; }
646 
647     /**
648      * Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the
649      * console, this corresponds to any value other than Follow source. When you
650      * specify an output pixel aspect ratio (PAR) that is different from your input
651      * video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC
652      * widescreen, you would specify the ratio 40:33. In this example, the value for
653      * parDenominator is 33.
654      */
WithParDenominator(int value)655     inline ProresSettings& WithParDenominator(int value) { SetParDenominator(value); return *this;}
656 
657 
658     /**
659      * Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the
660      * console, this corresponds to any value other than Follow source. When you
661      * specify an output pixel aspect ratio (PAR) that is different from your input
662      * video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC
663      * widescreen, you would specify the ratio 40:33. In this example, the value for
664      * parNumerator is 40.
665      */
GetParNumerator()666     inline int GetParNumerator() const{ return m_parNumerator; }
667 
668     /**
669      * Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the
670      * console, this corresponds to any value other than Follow source. When you
671      * specify an output pixel aspect ratio (PAR) that is different from your input
672      * video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC
673      * widescreen, you would specify the ratio 40:33. In this example, the value for
674      * parNumerator is 40.
675      */
ParNumeratorHasBeenSet()676     inline bool ParNumeratorHasBeenSet() const { return m_parNumeratorHasBeenSet; }
677 
678     /**
679      * Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the
680      * console, this corresponds to any value other than Follow source. When you
681      * specify an output pixel aspect ratio (PAR) that is different from your input
682      * video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC
683      * widescreen, you would specify the ratio 40:33. In this example, the value for
684      * parNumerator is 40.
685      */
SetParNumerator(int value)686     inline void SetParNumerator(int value) { m_parNumeratorHasBeenSet = true; m_parNumerator = value; }
687 
688     /**
689      * Required when you set Pixel aspect ratio (parControl) to SPECIFIED. On the
690      * console, this corresponds to any value other than Follow source. When you
691      * specify an output pixel aspect ratio (PAR) that is different from your input
692      * video PAR, provide your output PAR as a ratio. For example, for D1/DV NTSC
693      * widescreen, you would specify the ratio 40:33. In this example, the value for
694      * parNumerator is 40.
695      */
WithParNumerator(int value)696     inline ProresSettings& WithParNumerator(int value) { SetParNumerator(value); return *this;}
697 
698 
699     /**
700      * Use this setting for interlaced outputs, when your output frame rate is half of
701      * your input frame rate. In this situation, choose Optimized interlacing
702      * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this
703      * case, each progressive frame from the input corresponds to an interlaced field
704      * in the output. Keep the default value, Basic interlacing (INTERLACED), for all
705      * other output frame rates. With basic interlacing, MediaConvert performs any
706      * frame rate conversion first and then interlaces the frames. When you choose
707      * Optimized interlacing and you set your output frame rate to a value that isn't
708      * suitable for optimized interlacing, MediaConvert automatically falls back to
709      * basic interlacing. Required settings: To use optimized interlacing, you must set
710      * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized
711      * interlacing for hard telecine outputs. You must also set Interlace mode
712      * (interlaceMode) to a value other than Progressive (PROGRESSIVE).
713      */
GetScanTypeConversionMode()714     inline const ProresScanTypeConversionMode& GetScanTypeConversionMode() const{ return m_scanTypeConversionMode; }
715 
716     /**
717      * Use this setting for interlaced outputs, when your output frame rate is half of
718      * your input frame rate. In this situation, choose Optimized interlacing
719      * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this
720      * case, each progressive frame from the input corresponds to an interlaced field
721      * in the output. Keep the default value, Basic interlacing (INTERLACED), for all
722      * other output frame rates. With basic interlacing, MediaConvert performs any
723      * frame rate conversion first and then interlaces the frames. When you choose
724      * Optimized interlacing and you set your output frame rate to a value that isn't
725      * suitable for optimized interlacing, MediaConvert automatically falls back to
726      * basic interlacing. Required settings: To use optimized interlacing, you must set
727      * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized
728      * interlacing for hard telecine outputs. You must also set Interlace mode
729      * (interlaceMode) to a value other than Progressive (PROGRESSIVE).
730      */
ScanTypeConversionModeHasBeenSet()731     inline bool ScanTypeConversionModeHasBeenSet() const { return m_scanTypeConversionModeHasBeenSet; }
732 
733     /**
734      * Use this setting for interlaced outputs, when your output frame rate is half of
735      * your input frame rate. In this situation, choose Optimized interlacing
736      * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this
737      * case, each progressive frame from the input corresponds to an interlaced field
738      * in the output. Keep the default value, Basic interlacing (INTERLACED), for all
739      * other output frame rates. With basic interlacing, MediaConvert performs any
740      * frame rate conversion first and then interlaces the frames. When you choose
741      * Optimized interlacing and you set your output frame rate to a value that isn't
742      * suitable for optimized interlacing, MediaConvert automatically falls back to
743      * basic interlacing. Required settings: To use optimized interlacing, you must set
744      * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized
745      * interlacing for hard telecine outputs. You must also set Interlace mode
746      * (interlaceMode) to a value other than Progressive (PROGRESSIVE).
747      */
SetScanTypeConversionMode(const ProresScanTypeConversionMode & value)748     inline void SetScanTypeConversionMode(const ProresScanTypeConversionMode& value) { m_scanTypeConversionModeHasBeenSet = true; m_scanTypeConversionMode = value; }
749 
750     /**
751      * Use this setting for interlaced outputs, when your output frame rate is half of
752      * your input frame rate. In this situation, choose Optimized interlacing
753      * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this
754      * case, each progressive frame from the input corresponds to an interlaced field
755      * in the output. Keep the default value, Basic interlacing (INTERLACED), for all
756      * other output frame rates. With basic interlacing, MediaConvert performs any
757      * frame rate conversion first and then interlaces the frames. When you choose
758      * Optimized interlacing and you set your output frame rate to a value that isn't
759      * suitable for optimized interlacing, MediaConvert automatically falls back to
760      * basic interlacing. Required settings: To use optimized interlacing, you must set
761      * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized
762      * interlacing for hard telecine outputs. You must also set Interlace mode
763      * (interlaceMode) to a value other than Progressive (PROGRESSIVE).
764      */
SetScanTypeConversionMode(ProresScanTypeConversionMode && value)765     inline void SetScanTypeConversionMode(ProresScanTypeConversionMode&& value) { m_scanTypeConversionModeHasBeenSet = true; m_scanTypeConversionMode = std::move(value); }
766 
767     /**
768      * Use this setting for interlaced outputs, when your output frame rate is half of
769      * your input frame rate. In this situation, choose Optimized interlacing
770      * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this
771      * case, each progressive frame from the input corresponds to an interlaced field
772      * in the output. Keep the default value, Basic interlacing (INTERLACED), for all
773      * other output frame rates. With basic interlacing, MediaConvert performs any
774      * frame rate conversion first and then interlaces the frames. When you choose
775      * Optimized interlacing and you set your output frame rate to a value that isn't
776      * suitable for optimized interlacing, MediaConvert automatically falls back to
777      * basic interlacing. Required settings: To use optimized interlacing, you must set
778      * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized
779      * interlacing for hard telecine outputs. You must also set Interlace mode
780      * (interlaceMode) to a value other than Progressive (PROGRESSIVE).
781      */
WithScanTypeConversionMode(const ProresScanTypeConversionMode & value)782     inline ProresSettings& WithScanTypeConversionMode(const ProresScanTypeConversionMode& value) { SetScanTypeConversionMode(value); return *this;}
783 
784     /**
785      * Use this setting for interlaced outputs, when your output frame rate is half of
786      * your input frame rate. In this situation, choose Optimized interlacing
787      * (INTERLACED_OPTIMIZE) to create a better quality interlaced output. In this
788      * case, each progressive frame from the input corresponds to an interlaced field
789      * in the output. Keep the default value, Basic interlacing (INTERLACED), for all
790      * other output frame rates. With basic interlacing, MediaConvert performs any
791      * frame rate conversion first and then interlaces the frames. When you choose
792      * Optimized interlacing and you set your output frame rate to a value that isn't
793      * suitable for optimized interlacing, MediaConvert automatically falls back to
794      * basic interlacing. Required settings: To use optimized interlacing, you must set
795      * Telecine (telecine) to None (NONE) or Soft (SOFT). You can't use optimized
796      * interlacing for hard telecine outputs. You must also set Interlace mode
797      * (interlaceMode) to a value other than Progressive (PROGRESSIVE).
798      */
WithScanTypeConversionMode(ProresScanTypeConversionMode && value)799     inline ProresSettings& WithScanTypeConversionMode(ProresScanTypeConversionMode&& value) { SetScanTypeConversionMode(std::move(value)); return *this;}
800 
801 
802     /**
803      * Ignore this setting unless your input frame rate is 23.976 or 24 frames per
804      * second (fps). Enable slow PAL to create a 25 fps output. When you enable slow
805      * PAL, MediaConvert relabels the video frames to 25 fps and resamples your audio
806      * to keep it synchronized with the video. Note that enabling this setting will
807      * slightly reduce the duration of your video. Required settings: You must also set
808      * Framerate to 25. In your JSON job specification, set (framerateControl) to
809      * (SPECIFIED), (framerateNumerator) to 25 and (framerateDenominator) to 1.
810      */
GetSlowPal()811     inline const ProresSlowPal& GetSlowPal() const{ return m_slowPal; }
812 
813     /**
814      * Ignore this setting unless your input frame rate is 23.976 or 24 frames per
815      * second (fps). Enable slow PAL to create a 25 fps output. When you enable slow
816      * PAL, MediaConvert relabels the video frames to 25 fps and resamples your audio
817      * to keep it synchronized with the video. Note that enabling this setting will
818      * slightly reduce the duration of your video. Required settings: You must also set
819      * Framerate to 25. In your JSON job specification, set (framerateControl) to
820      * (SPECIFIED), (framerateNumerator) to 25 and (framerateDenominator) to 1.
821      */
SlowPalHasBeenSet()822     inline bool SlowPalHasBeenSet() const { return m_slowPalHasBeenSet; }
823 
824     /**
825      * Ignore this setting unless your input frame rate is 23.976 or 24 frames per
826      * second (fps). Enable slow PAL to create a 25 fps output. When you enable slow
827      * PAL, MediaConvert relabels the video frames to 25 fps and resamples your audio
828      * to keep it synchronized with the video. Note that enabling this setting will
829      * slightly reduce the duration of your video. Required settings: You must also set
830      * Framerate to 25. In your JSON job specification, set (framerateControl) to
831      * (SPECIFIED), (framerateNumerator) to 25 and (framerateDenominator) to 1.
832      */
SetSlowPal(const ProresSlowPal & value)833     inline void SetSlowPal(const ProresSlowPal& value) { m_slowPalHasBeenSet = true; m_slowPal = value; }
834 
835     /**
836      * Ignore this setting unless your input frame rate is 23.976 or 24 frames per
837      * second (fps). Enable slow PAL to create a 25 fps output. When you enable slow
838      * PAL, MediaConvert relabels the video frames to 25 fps and resamples your audio
839      * to keep it synchronized with the video. Note that enabling this setting will
840      * slightly reduce the duration of your video. Required settings: You must also set
841      * Framerate to 25. In your JSON job specification, set (framerateControl) to
842      * (SPECIFIED), (framerateNumerator) to 25 and (framerateDenominator) to 1.
843      */
SetSlowPal(ProresSlowPal && value)844     inline void SetSlowPal(ProresSlowPal&& value) { m_slowPalHasBeenSet = true; m_slowPal = std::move(value); }
845 
846     /**
847      * Ignore this setting unless your input frame rate is 23.976 or 24 frames per
848      * second (fps). Enable slow PAL to create a 25 fps output. When you enable slow
849      * PAL, MediaConvert relabels the video frames to 25 fps and resamples your audio
850      * to keep it synchronized with the video. Note that enabling this setting will
851      * slightly reduce the duration of your video. Required settings: You must also set
852      * Framerate to 25. In your JSON job specification, set (framerateControl) to
853      * (SPECIFIED), (framerateNumerator) to 25 and (framerateDenominator) to 1.
854      */
WithSlowPal(const ProresSlowPal & value)855     inline ProresSettings& WithSlowPal(const ProresSlowPal& value) { SetSlowPal(value); return *this;}
856 
857     /**
858      * Ignore this setting unless your input frame rate is 23.976 or 24 frames per
859      * second (fps). Enable slow PAL to create a 25 fps output. When you enable slow
860      * PAL, MediaConvert relabels the video frames to 25 fps and resamples your audio
861      * to keep it synchronized with the video. Note that enabling this setting will
862      * slightly reduce the duration of your video. Required settings: You must also set
863      * Framerate to 25. In your JSON job specification, set (framerateControl) to
864      * (SPECIFIED), (framerateNumerator) to 25 and (framerateDenominator) to 1.
865      */
WithSlowPal(ProresSlowPal && value)866     inline ProresSettings& WithSlowPal(ProresSlowPal&& value) { SetSlowPal(std::move(value)); return *this;}
867 
868 
869     /**
870      * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97
871      * fps, and your output scan type is interlaced, you can optionally enable hard
872      * telecine (HARD) to create a smoother picture. When you keep the default value,
873      * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without
874      * doing anything with the field polarity to create a smoother picture.
875      */
GetTelecine()876     inline const ProresTelecine& GetTelecine() const{ return m_telecine; }
877 
878     /**
879      * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97
880      * fps, and your output scan type is interlaced, you can optionally enable hard
881      * telecine (HARD) to create a smoother picture. When you keep the default value,
882      * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without
883      * doing anything with the field polarity to create a smoother picture.
884      */
TelecineHasBeenSet()885     inline bool TelecineHasBeenSet() const { return m_telecineHasBeenSet; }
886 
887     /**
888      * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97
889      * fps, and your output scan type is interlaced, you can optionally enable hard
890      * telecine (HARD) to create a smoother picture. When you keep the default value,
891      * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without
892      * doing anything with the field polarity to create a smoother picture.
893      */
SetTelecine(const ProresTelecine & value)894     inline void SetTelecine(const ProresTelecine& value) { m_telecineHasBeenSet = true; m_telecine = value; }
895 
896     /**
897      * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97
898      * fps, and your output scan type is interlaced, you can optionally enable hard
899      * telecine (HARD) to create a smoother picture. When you keep the default value,
900      * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without
901      * doing anything with the field polarity to create a smoother picture.
902      */
SetTelecine(ProresTelecine && value)903     inline void SetTelecine(ProresTelecine&& value) { m_telecineHasBeenSet = true; m_telecine = std::move(value); }
904 
905     /**
906      * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97
907      * fps, and your output scan type is interlaced, you can optionally enable hard
908      * telecine (HARD) to create a smoother picture. When you keep the default value,
909      * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without
910      * doing anything with the field polarity to create a smoother picture.
911      */
WithTelecine(const ProresTelecine & value)912     inline ProresSettings& WithTelecine(const ProresTelecine& value) { SetTelecine(value); return *this;}
913 
914     /**
915      * When you do frame rate conversion from 23.976 frames per second (fps) to 29.97
916      * fps, and your output scan type is interlaced, you can optionally enable hard
917      * telecine (HARD) to create a smoother picture. When you keep the default value,
918      * None (NONE), MediaConvert does a standard frame rate conversion to 29.97 without
919      * doing anything with the field polarity to create a smoother picture.
920      */
WithTelecine(ProresTelecine && value)921     inline ProresSettings& WithTelecine(ProresTelecine&& value) { SetTelecine(std::move(value)); return *this;}
922 
923   private:
924 
925     ProresChromaSampling m_chromaSampling;
926     bool m_chromaSamplingHasBeenSet;
927 
928     ProresCodecProfile m_codecProfile;
929     bool m_codecProfileHasBeenSet;
930 
931     ProresFramerateControl m_framerateControl;
932     bool m_framerateControlHasBeenSet;
933 
934     ProresFramerateConversionAlgorithm m_framerateConversionAlgorithm;
935     bool m_framerateConversionAlgorithmHasBeenSet;
936 
937     int m_framerateDenominator;
938     bool m_framerateDenominatorHasBeenSet;
939 
940     int m_framerateNumerator;
941     bool m_framerateNumeratorHasBeenSet;
942 
943     ProresInterlaceMode m_interlaceMode;
944     bool m_interlaceModeHasBeenSet;
945 
946     ProresParControl m_parControl;
947     bool m_parControlHasBeenSet;
948 
949     int m_parDenominator;
950     bool m_parDenominatorHasBeenSet;
951 
952     int m_parNumerator;
953     bool m_parNumeratorHasBeenSet;
954 
955     ProresScanTypeConversionMode m_scanTypeConversionMode;
956     bool m_scanTypeConversionModeHasBeenSet;
957 
958     ProresSlowPal m_slowPal;
959     bool m_slowPalHasBeenSet;
960 
961     ProresTelecine m_telecine;
962     bool m_telecineHasBeenSet;
963   };
964 
965 } // namespace Model
966 } // namespace MediaConvert
967 } // namespace Aws
968