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/Av1Settings.h>
9 #include <aws/mediaconvert/model/AvcIntraSettings.h>
10 #include <aws/mediaconvert/model/VideoCodec.h>
11 #include <aws/mediaconvert/model/FrameCaptureSettings.h>
12 #include <aws/mediaconvert/model/H264Settings.h>
13 #include <aws/mediaconvert/model/H265Settings.h>
14 #include <aws/mediaconvert/model/Mpeg2Settings.h>
15 #include <aws/mediaconvert/model/ProresSettings.h>
16 #include <aws/mediaconvert/model/Vc3Settings.h>
17 #include <aws/mediaconvert/model/Vp8Settings.h>
18 #include <aws/mediaconvert/model/Vp9Settings.h>
19 #include <aws/mediaconvert/model/XavcSettings.h>
20 #include <utility>
21 
22 namespace Aws
23 {
24 namespace Utils
25 {
26 namespace Json
27 {
28   class JsonValue;
29   class JsonView;
30 } // namespace Json
31 } // namespace Utils
32 namespace MediaConvert
33 {
34 namespace Model
35 {
36 
37   /**
38    * Video codec settings, (CodecSettings) under (VideoDescription), contains the
39    * group of settings related to video encoding. The settings in this group vary
40    * depending on the value that you choose for Video codec (Codec). For each codec
41    * enum that you choose, define the corresponding settings object. The following
42    * lists the codec enum, settings object pairs. * AV1, Av1Settings * AVC_INTRA,
43    * AvcIntraSettings * FRAME_CAPTURE, FrameCaptureSettings * H_264, H264Settings *
44    * H_265, H265Settings * MPEG2, Mpeg2Settings * PRORES, ProresSettings * VC3,
45    * Vc3Settings * VP8, Vp8Settings * VP9, Vp9Settings * XAVC, XavcSettings<p><h3>See
46    * Also:</h3>   <a
47    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/VideoCodecSettings">AWS
48    * API Reference</a></p>
49    */
50   class AWS_MEDIACONVERT_API VideoCodecSettings
51   {
52   public:
53     VideoCodecSettings();
54     VideoCodecSettings(Aws::Utils::Json::JsonView jsonValue);
55     VideoCodecSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
56     Aws::Utils::Json::JsonValue Jsonize() const;
57 
58 
59     /**
60      * Required when you set Codec, under VideoDescription>CodecSettings to the value
61      * AV1.
62      */
GetAv1Settings()63     inline const Av1Settings& GetAv1Settings() const{ return m_av1Settings; }
64 
65     /**
66      * Required when you set Codec, under VideoDescription>CodecSettings to the value
67      * AV1.
68      */
Av1SettingsHasBeenSet()69     inline bool Av1SettingsHasBeenSet() const { return m_av1SettingsHasBeenSet; }
70 
71     /**
72      * Required when you set Codec, under VideoDescription>CodecSettings to the value
73      * AV1.
74      */
SetAv1Settings(const Av1Settings & value)75     inline void SetAv1Settings(const Av1Settings& value) { m_av1SettingsHasBeenSet = true; m_av1Settings = value; }
76 
77     /**
78      * Required when you set Codec, under VideoDescription>CodecSettings to the value
79      * AV1.
80      */
SetAv1Settings(Av1Settings && value)81     inline void SetAv1Settings(Av1Settings&& value) { m_av1SettingsHasBeenSet = true; m_av1Settings = std::move(value); }
82 
83     /**
84      * Required when you set Codec, under VideoDescription>CodecSettings to the value
85      * AV1.
86      */
WithAv1Settings(const Av1Settings & value)87     inline VideoCodecSettings& WithAv1Settings(const Av1Settings& value) { SetAv1Settings(value); return *this;}
88 
89     /**
90      * Required when you set Codec, under VideoDescription>CodecSettings to the value
91      * AV1.
92      */
WithAv1Settings(Av1Settings && value)93     inline VideoCodecSettings& WithAv1Settings(Av1Settings&& value) { SetAv1Settings(std::move(value)); return *this;}
94 
95 
96     /**
97      * Required when you choose AVC-Intra for your output video codec. For more
98      * information about the AVC-Intra settings, see the relevant specification. For
99      * detailed information about SD and HD in AVC-Intra, see
100      * https://ieeexplore.ieee.org/document/7290936. For information about 4K/2K in
101      * AVC-Intra, see https://pro-av.panasonic.net/en/avc-ultra/AVC-ULTRAoverview.pdf.
102      */
GetAvcIntraSettings()103     inline const AvcIntraSettings& GetAvcIntraSettings() const{ return m_avcIntraSettings; }
104 
105     /**
106      * Required when you choose AVC-Intra for your output video codec. For more
107      * information about the AVC-Intra settings, see the relevant specification. For
108      * detailed information about SD and HD in AVC-Intra, see
109      * https://ieeexplore.ieee.org/document/7290936. For information about 4K/2K in
110      * AVC-Intra, see https://pro-av.panasonic.net/en/avc-ultra/AVC-ULTRAoverview.pdf.
111      */
AvcIntraSettingsHasBeenSet()112     inline bool AvcIntraSettingsHasBeenSet() const { return m_avcIntraSettingsHasBeenSet; }
113 
114     /**
115      * Required when you choose AVC-Intra for your output video codec. For more
116      * information about the AVC-Intra settings, see the relevant specification. For
117      * detailed information about SD and HD in AVC-Intra, see
118      * https://ieeexplore.ieee.org/document/7290936. For information about 4K/2K in
119      * AVC-Intra, see https://pro-av.panasonic.net/en/avc-ultra/AVC-ULTRAoverview.pdf.
120      */
SetAvcIntraSettings(const AvcIntraSettings & value)121     inline void SetAvcIntraSettings(const AvcIntraSettings& value) { m_avcIntraSettingsHasBeenSet = true; m_avcIntraSettings = value; }
122 
123     /**
124      * Required when you choose AVC-Intra for your output video codec. For more
125      * information about the AVC-Intra settings, see the relevant specification. For
126      * detailed information about SD and HD in AVC-Intra, see
127      * https://ieeexplore.ieee.org/document/7290936. For information about 4K/2K in
128      * AVC-Intra, see https://pro-av.panasonic.net/en/avc-ultra/AVC-ULTRAoverview.pdf.
129      */
SetAvcIntraSettings(AvcIntraSettings && value)130     inline void SetAvcIntraSettings(AvcIntraSettings&& value) { m_avcIntraSettingsHasBeenSet = true; m_avcIntraSettings = std::move(value); }
131 
132     /**
133      * Required when you choose AVC-Intra for your output video codec. For more
134      * information about the AVC-Intra settings, see the relevant specification. For
135      * detailed information about SD and HD in AVC-Intra, see
136      * https://ieeexplore.ieee.org/document/7290936. For information about 4K/2K in
137      * AVC-Intra, see https://pro-av.panasonic.net/en/avc-ultra/AVC-ULTRAoverview.pdf.
138      */
WithAvcIntraSettings(const AvcIntraSettings & value)139     inline VideoCodecSettings& WithAvcIntraSettings(const AvcIntraSettings& value) { SetAvcIntraSettings(value); return *this;}
140 
141     /**
142      * Required when you choose AVC-Intra for your output video codec. For more
143      * information about the AVC-Intra settings, see the relevant specification. For
144      * detailed information about SD and HD in AVC-Intra, see
145      * https://ieeexplore.ieee.org/document/7290936. For information about 4K/2K in
146      * AVC-Intra, see https://pro-av.panasonic.net/en/avc-ultra/AVC-ULTRAoverview.pdf.
147      */
WithAvcIntraSettings(AvcIntraSettings && value)148     inline VideoCodecSettings& WithAvcIntraSettings(AvcIntraSettings&& value) { SetAvcIntraSettings(std::move(value)); return *this;}
149 
150 
151     /**
152      * Specifies the video codec. This must be equal to one of the enum values defined
153      * by the object  VideoCodec.
154      */
GetCodec()155     inline const VideoCodec& GetCodec() const{ return m_codec; }
156 
157     /**
158      * Specifies the video codec. This must be equal to one of the enum values defined
159      * by the object  VideoCodec.
160      */
CodecHasBeenSet()161     inline bool CodecHasBeenSet() const { return m_codecHasBeenSet; }
162 
163     /**
164      * Specifies the video codec. This must be equal to one of the enum values defined
165      * by the object  VideoCodec.
166      */
SetCodec(const VideoCodec & value)167     inline void SetCodec(const VideoCodec& value) { m_codecHasBeenSet = true; m_codec = value; }
168 
169     /**
170      * Specifies the video codec. This must be equal to one of the enum values defined
171      * by the object  VideoCodec.
172      */
SetCodec(VideoCodec && value)173     inline void SetCodec(VideoCodec&& value) { m_codecHasBeenSet = true; m_codec = std::move(value); }
174 
175     /**
176      * Specifies the video codec. This must be equal to one of the enum values defined
177      * by the object  VideoCodec.
178      */
WithCodec(const VideoCodec & value)179     inline VideoCodecSettings& WithCodec(const VideoCodec& value) { SetCodec(value); return *this;}
180 
181     /**
182      * Specifies the video codec. This must be equal to one of the enum values defined
183      * by the object  VideoCodec.
184      */
WithCodec(VideoCodec && value)185     inline VideoCodecSettings& WithCodec(VideoCodec&& value) { SetCodec(std::move(value)); return *this;}
186 
187 
188     /**
189      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
190      * value FRAME_CAPTURE.
191      */
GetFrameCaptureSettings()192     inline const FrameCaptureSettings& GetFrameCaptureSettings() const{ return m_frameCaptureSettings; }
193 
194     /**
195      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
196      * value FRAME_CAPTURE.
197      */
FrameCaptureSettingsHasBeenSet()198     inline bool FrameCaptureSettingsHasBeenSet() const { return m_frameCaptureSettingsHasBeenSet; }
199 
200     /**
201      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
202      * value FRAME_CAPTURE.
203      */
SetFrameCaptureSettings(const FrameCaptureSettings & value)204     inline void SetFrameCaptureSettings(const FrameCaptureSettings& value) { m_frameCaptureSettingsHasBeenSet = true; m_frameCaptureSettings = value; }
205 
206     /**
207      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
208      * value FRAME_CAPTURE.
209      */
SetFrameCaptureSettings(FrameCaptureSettings && value)210     inline void SetFrameCaptureSettings(FrameCaptureSettings&& value) { m_frameCaptureSettingsHasBeenSet = true; m_frameCaptureSettings = std::move(value); }
211 
212     /**
213      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
214      * value FRAME_CAPTURE.
215      */
WithFrameCaptureSettings(const FrameCaptureSettings & value)216     inline VideoCodecSettings& WithFrameCaptureSettings(const FrameCaptureSettings& value) { SetFrameCaptureSettings(value); return *this;}
217 
218     /**
219      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
220      * value FRAME_CAPTURE.
221      */
WithFrameCaptureSettings(FrameCaptureSettings && value)222     inline VideoCodecSettings& WithFrameCaptureSettings(FrameCaptureSettings&& value) { SetFrameCaptureSettings(std::move(value)); return *this;}
223 
224 
225     /**
226      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
227      * value H_264.
228      */
GetH264Settings()229     inline const H264Settings& GetH264Settings() const{ return m_h264Settings; }
230 
231     /**
232      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
233      * value H_264.
234      */
H264SettingsHasBeenSet()235     inline bool H264SettingsHasBeenSet() const { return m_h264SettingsHasBeenSet; }
236 
237     /**
238      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
239      * value H_264.
240      */
SetH264Settings(const H264Settings & value)241     inline void SetH264Settings(const H264Settings& value) { m_h264SettingsHasBeenSet = true; m_h264Settings = value; }
242 
243     /**
244      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
245      * value H_264.
246      */
SetH264Settings(H264Settings && value)247     inline void SetH264Settings(H264Settings&& value) { m_h264SettingsHasBeenSet = true; m_h264Settings = std::move(value); }
248 
249     /**
250      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
251      * value H_264.
252      */
WithH264Settings(const H264Settings & value)253     inline VideoCodecSettings& WithH264Settings(const H264Settings& value) { SetH264Settings(value); return *this;}
254 
255     /**
256      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
257      * value H_264.
258      */
WithH264Settings(H264Settings && value)259     inline VideoCodecSettings& WithH264Settings(H264Settings&& value) { SetH264Settings(std::move(value)); return *this;}
260 
261 
262     /**
263      * Settings for H265 codec
264      */
GetH265Settings()265     inline const H265Settings& GetH265Settings() const{ return m_h265Settings; }
266 
267     /**
268      * Settings for H265 codec
269      */
H265SettingsHasBeenSet()270     inline bool H265SettingsHasBeenSet() const { return m_h265SettingsHasBeenSet; }
271 
272     /**
273      * Settings for H265 codec
274      */
SetH265Settings(const H265Settings & value)275     inline void SetH265Settings(const H265Settings& value) { m_h265SettingsHasBeenSet = true; m_h265Settings = value; }
276 
277     /**
278      * Settings for H265 codec
279      */
SetH265Settings(H265Settings && value)280     inline void SetH265Settings(H265Settings&& value) { m_h265SettingsHasBeenSet = true; m_h265Settings = std::move(value); }
281 
282     /**
283      * Settings for H265 codec
284      */
WithH265Settings(const H265Settings & value)285     inline VideoCodecSettings& WithH265Settings(const H265Settings& value) { SetH265Settings(value); return *this;}
286 
287     /**
288      * Settings for H265 codec
289      */
WithH265Settings(H265Settings && value)290     inline VideoCodecSettings& WithH265Settings(H265Settings&& value) { SetH265Settings(std::move(value)); return *this;}
291 
292 
293     /**
294      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
295      * value MPEG2.
296      */
GetMpeg2Settings()297     inline const Mpeg2Settings& GetMpeg2Settings() const{ return m_mpeg2Settings; }
298 
299     /**
300      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
301      * value MPEG2.
302      */
Mpeg2SettingsHasBeenSet()303     inline bool Mpeg2SettingsHasBeenSet() const { return m_mpeg2SettingsHasBeenSet; }
304 
305     /**
306      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
307      * value MPEG2.
308      */
SetMpeg2Settings(const Mpeg2Settings & value)309     inline void SetMpeg2Settings(const Mpeg2Settings& value) { m_mpeg2SettingsHasBeenSet = true; m_mpeg2Settings = value; }
310 
311     /**
312      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
313      * value MPEG2.
314      */
SetMpeg2Settings(Mpeg2Settings && value)315     inline void SetMpeg2Settings(Mpeg2Settings&& value) { m_mpeg2SettingsHasBeenSet = true; m_mpeg2Settings = std::move(value); }
316 
317     /**
318      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
319      * value MPEG2.
320      */
WithMpeg2Settings(const Mpeg2Settings & value)321     inline VideoCodecSettings& WithMpeg2Settings(const Mpeg2Settings& value) { SetMpeg2Settings(value); return *this;}
322 
323     /**
324      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
325      * value MPEG2.
326      */
WithMpeg2Settings(Mpeg2Settings && value)327     inline VideoCodecSettings& WithMpeg2Settings(Mpeg2Settings&& value) { SetMpeg2Settings(std::move(value)); return *this;}
328 
329 
330     /**
331      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
332      * value PRORES.
333      */
GetProresSettings()334     inline const ProresSettings& GetProresSettings() const{ return m_proresSettings; }
335 
336     /**
337      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
338      * value PRORES.
339      */
ProresSettingsHasBeenSet()340     inline bool ProresSettingsHasBeenSet() const { return m_proresSettingsHasBeenSet; }
341 
342     /**
343      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
344      * value PRORES.
345      */
SetProresSettings(const ProresSettings & value)346     inline void SetProresSettings(const ProresSettings& value) { m_proresSettingsHasBeenSet = true; m_proresSettings = value; }
347 
348     /**
349      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
350      * value PRORES.
351      */
SetProresSettings(ProresSettings && value)352     inline void SetProresSettings(ProresSettings&& value) { m_proresSettingsHasBeenSet = true; m_proresSettings = std::move(value); }
353 
354     /**
355      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
356      * value PRORES.
357      */
WithProresSettings(const ProresSettings & value)358     inline VideoCodecSettings& WithProresSettings(const ProresSettings& value) { SetProresSettings(value); return *this;}
359 
360     /**
361      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
362      * value PRORES.
363      */
WithProresSettings(ProresSettings && value)364     inline VideoCodecSettings& WithProresSettings(ProresSettings&& value) { SetProresSettings(std::move(value)); return *this;}
365 
366 
367     /**
368      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
369      * value VC3
370      */
GetVc3Settings()371     inline const Vc3Settings& GetVc3Settings() const{ return m_vc3Settings; }
372 
373     /**
374      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
375      * value VC3
376      */
Vc3SettingsHasBeenSet()377     inline bool Vc3SettingsHasBeenSet() const { return m_vc3SettingsHasBeenSet; }
378 
379     /**
380      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
381      * value VC3
382      */
SetVc3Settings(const Vc3Settings & value)383     inline void SetVc3Settings(const Vc3Settings& value) { m_vc3SettingsHasBeenSet = true; m_vc3Settings = value; }
384 
385     /**
386      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
387      * value VC3
388      */
SetVc3Settings(Vc3Settings && value)389     inline void SetVc3Settings(Vc3Settings&& value) { m_vc3SettingsHasBeenSet = true; m_vc3Settings = std::move(value); }
390 
391     /**
392      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
393      * value VC3
394      */
WithVc3Settings(const Vc3Settings & value)395     inline VideoCodecSettings& WithVc3Settings(const Vc3Settings& value) { SetVc3Settings(value); return *this;}
396 
397     /**
398      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
399      * value VC3
400      */
WithVc3Settings(Vc3Settings && value)401     inline VideoCodecSettings& WithVc3Settings(Vc3Settings&& value) { SetVc3Settings(std::move(value)); return *this;}
402 
403 
404     /**
405      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
406      * value VP8.
407      */
GetVp8Settings()408     inline const Vp8Settings& GetVp8Settings() const{ return m_vp8Settings; }
409 
410     /**
411      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
412      * value VP8.
413      */
Vp8SettingsHasBeenSet()414     inline bool Vp8SettingsHasBeenSet() const { return m_vp8SettingsHasBeenSet; }
415 
416     /**
417      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
418      * value VP8.
419      */
SetVp8Settings(const Vp8Settings & value)420     inline void SetVp8Settings(const Vp8Settings& value) { m_vp8SettingsHasBeenSet = true; m_vp8Settings = value; }
421 
422     /**
423      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
424      * value VP8.
425      */
SetVp8Settings(Vp8Settings && value)426     inline void SetVp8Settings(Vp8Settings&& value) { m_vp8SettingsHasBeenSet = true; m_vp8Settings = std::move(value); }
427 
428     /**
429      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
430      * value VP8.
431      */
WithVp8Settings(const Vp8Settings & value)432     inline VideoCodecSettings& WithVp8Settings(const Vp8Settings& value) { SetVp8Settings(value); return *this;}
433 
434     /**
435      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
436      * value VP8.
437      */
WithVp8Settings(Vp8Settings && value)438     inline VideoCodecSettings& WithVp8Settings(Vp8Settings&& value) { SetVp8Settings(std::move(value)); return *this;}
439 
440 
441     /**
442      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
443      * value VP9.
444      */
GetVp9Settings()445     inline const Vp9Settings& GetVp9Settings() const{ return m_vp9Settings; }
446 
447     /**
448      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
449      * value VP9.
450      */
Vp9SettingsHasBeenSet()451     inline bool Vp9SettingsHasBeenSet() const { return m_vp9SettingsHasBeenSet; }
452 
453     /**
454      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
455      * value VP9.
456      */
SetVp9Settings(const Vp9Settings & value)457     inline void SetVp9Settings(const Vp9Settings& value) { m_vp9SettingsHasBeenSet = true; m_vp9Settings = value; }
458 
459     /**
460      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
461      * value VP9.
462      */
SetVp9Settings(Vp9Settings && value)463     inline void SetVp9Settings(Vp9Settings&& value) { m_vp9SettingsHasBeenSet = true; m_vp9Settings = std::move(value); }
464 
465     /**
466      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
467      * value VP9.
468      */
WithVp9Settings(const Vp9Settings & value)469     inline VideoCodecSettings& WithVp9Settings(const Vp9Settings& value) { SetVp9Settings(value); return *this;}
470 
471     /**
472      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
473      * value VP9.
474      */
WithVp9Settings(Vp9Settings && value)475     inline VideoCodecSettings& WithVp9Settings(Vp9Settings&& value) { SetVp9Settings(std::move(value)); return *this;}
476 
477 
478     /**
479      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
480      * value XAVC.
481      */
GetXavcSettings()482     inline const XavcSettings& GetXavcSettings() const{ return m_xavcSettings; }
483 
484     /**
485      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
486      * value XAVC.
487      */
XavcSettingsHasBeenSet()488     inline bool XavcSettingsHasBeenSet() const { return m_xavcSettingsHasBeenSet; }
489 
490     /**
491      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
492      * value XAVC.
493      */
SetXavcSettings(const XavcSettings & value)494     inline void SetXavcSettings(const XavcSettings& value) { m_xavcSettingsHasBeenSet = true; m_xavcSettings = value; }
495 
496     /**
497      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
498      * value XAVC.
499      */
SetXavcSettings(XavcSettings && value)500     inline void SetXavcSettings(XavcSettings&& value) { m_xavcSettingsHasBeenSet = true; m_xavcSettings = std::move(value); }
501 
502     /**
503      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
504      * value XAVC.
505      */
WithXavcSettings(const XavcSettings & value)506     inline VideoCodecSettings& WithXavcSettings(const XavcSettings& value) { SetXavcSettings(value); return *this;}
507 
508     /**
509      * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
510      * value XAVC.
511      */
WithXavcSettings(XavcSettings && value)512     inline VideoCodecSettings& WithXavcSettings(XavcSettings&& value) { SetXavcSettings(std::move(value)); return *this;}
513 
514   private:
515 
516     Av1Settings m_av1Settings;
517     bool m_av1SettingsHasBeenSet;
518 
519     AvcIntraSettings m_avcIntraSettings;
520     bool m_avcIntraSettingsHasBeenSet;
521 
522     VideoCodec m_codec;
523     bool m_codecHasBeenSet;
524 
525     FrameCaptureSettings m_frameCaptureSettings;
526     bool m_frameCaptureSettingsHasBeenSet;
527 
528     H264Settings m_h264Settings;
529     bool m_h264SettingsHasBeenSet;
530 
531     H265Settings m_h265Settings;
532     bool m_h265SettingsHasBeenSet;
533 
534     Mpeg2Settings m_mpeg2Settings;
535     bool m_mpeg2SettingsHasBeenSet;
536 
537     ProresSettings m_proresSettings;
538     bool m_proresSettingsHasBeenSet;
539 
540     Vc3Settings m_vc3Settings;
541     bool m_vc3SettingsHasBeenSet;
542 
543     Vp8Settings m_vp8Settings;
544     bool m_vp8SettingsHasBeenSet;
545 
546     Vp9Settings m_vp9Settings;
547     bool m_vp9SettingsHasBeenSet;
548 
549     XavcSettings m_xavcSettings;
550     bool m_xavcSettingsHasBeenSet;
551   };
552 
553 } // namespace Model
554 } // namespace MediaConvert
555 } // namespace Aws
556