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/AlphaBehavior.h>
9 #include <aws/mediaconvert/model/ColorSpace.h>
10 #include <aws/mediaconvert/model/ColorSpaceUsage.h>
11 #include <aws/mediaconvert/model/Hdr10Metadata.h>
12 #include <aws/mediaconvert/model/InputRotate.h>
13 #include <aws/mediaconvert/model/InputSampleRange.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23   class JsonView;
24 } // namespace Json
25 } // namespace Utils
26 namespace MediaConvert
27 {
28 namespace Model
29 {
30 
31   /**
32    * Input video selectors contain the video settings for the input. Each of your
33    * inputs can have up to one video selector.<p><h3>See Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/VideoSelector">AWS
35    * API Reference</a></p>
36    */
37   class AWS_MEDIACONVERT_API VideoSelector
38   {
39   public:
40     VideoSelector();
41     VideoSelector(Aws::Utils::Json::JsonView jsonValue);
42     VideoSelector& operator=(Aws::Utils::Json::JsonView jsonValue);
43     Aws::Utils::Json::JsonValue Jsonize() const;
44 
45 
46     /**
47      * Ignore this setting unless this input is a QuickTime animation with an alpha
48      * channel. Use this setting to create separate Key and Fill outputs. In each
49      * output, specify which part of the input MediaConvert uses. Leave this setting at
50      * the default value DISCARD to delete the alpha channel and preserve the video.
51      * Set it to REMAP_TO_LUMA to delete the video and map the alpha channel to the
52      * luma channel of your outputs.
53      */
GetAlphaBehavior()54     inline const AlphaBehavior& GetAlphaBehavior() const{ return m_alphaBehavior; }
55 
56     /**
57      * Ignore this setting unless this input is a QuickTime animation with an alpha
58      * channel. Use this setting to create separate Key and Fill outputs. In each
59      * output, specify which part of the input MediaConvert uses. Leave this setting at
60      * the default value DISCARD to delete the alpha channel and preserve the video.
61      * Set it to REMAP_TO_LUMA to delete the video and map the alpha channel to the
62      * luma channel of your outputs.
63      */
AlphaBehaviorHasBeenSet()64     inline bool AlphaBehaviorHasBeenSet() const { return m_alphaBehaviorHasBeenSet; }
65 
66     /**
67      * Ignore this setting unless this input is a QuickTime animation with an alpha
68      * channel. Use this setting to create separate Key and Fill outputs. In each
69      * output, specify which part of the input MediaConvert uses. Leave this setting at
70      * the default value DISCARD to delete the alpha channel and preserve the video.
71      * Set it to REMAP_TO_LUMA to delete the video and map the alpha channel to the
72      * luma channel of your outputs.
73      */
SetAlphaBehavior(const AlphaBehavior & value)74     inline void SetAlphaBehavior(const AlphaBehavior& value) { m_alphaBehaviorHasBeenSet = true; m_alphaBehavior = value; }
75 
76     /**
77      * Ignore this setting unless this input is a QuickTime animation with an alpha
78      * channel. Use this setting to create separate Key and Fill outputs. In each
79      * output, specify which part of the input MediaConvert uses. Leave this setting at
80      * the default value DISCARD to delete the alpha channel and preserve the video.
81      * Set it to REMAP_TO_LUMA to delete the video and map the alpha channel to the
82      * luma channel of your outputs.
83      */
SetAlphaBehavior(AlphaBehavior && value)84     inline void SetAlphaBehavior(AlphaBehavior&& value) { m_alphaBehaviorHasBeenSet = true; m_alphaBehavior = std::move(value); }
85 
86     /**
87      * Ignore this setting unless this input is a QuickTime animation with an alpha
88      * channel. Use this setting to create separate Key and Fill outputs. In each
89      * output, specify which part of the input MediaConvert uses. Leave this setting at
90      * the default value DISCARD to delete the alpha channel and preserve the video.
91      * Set it to REMAP_TO_LUMA to delete the video and map the alpha channel to the
92      * luma channel of your outputs.
93      */
WithAlphaBehavior(const AlphaBehavior & value)94     inline VideoSelector& WithAlphaBehavior(const AlphaBehavior& value) { SetAlphaBehavior(value); return *this;}
95 
96     /**
97      * Ignore this setting unless this input is a QuickTime animation with an alpha
98      * channel. Use this setting to create separate Key and Fill outputs. In each
99      * output, specify which part of the input MediaConvert uses. Leave this setting at
100      * the default value DISCARD to delete the alpha channel and preserve the video.
101      * Set it to REMAP_TO_LUMA to delete the video and map the alpha channel to the
102      * luma channel of your outputs.
103      */
WithAlphaBehavior(AlphaBehavior && value)104     inline VideoSelector& WithAlphaBehavior(AlphaBehavior&& value) { SetAlphaBehavior(std::move(value)); return *this;}
105 
106 
107     /**
108      * If your input video has accurate color space metadata, or if you don't know
109      * about color space, leave this set to the default value Follow (FOLLOW). The
110      * service will automatically detect your input color space. If your input video
111      * has metadata indicating the wrong color space, specify the accurate color space
112      * here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display
113      * Color Volume static metadata isn't present in your video stream, or if that
114      * metadata is present but not accurate, choose Force HDR 10 (FORCE_HDR10) here and
115      * specify correct values in the input HDR 10 metadata (Hdr10Metadata) settings.
116      * For more information about MediaConvert HDR jobs, see
117      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
118      */
GetColorSpace()119     inline const ColorSpace& GetColorSpace() const{ return m_colorSpace; }
120 
121     /**
122      * If your input video has accurate color space metadata, or if you don't know
123      * about color space, leave this set to the default value Follow (FOLLOW). The
124      * service will automatically detect your input color space. If your input video
125      * has metadata indicating the wrong color space, specify the accurate color space
126      * here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display
127      * Color Volume static metadata isn't present in your video stream, or if that
128      * metadata is present but not accurate, choose Force HDR 10 (FORCE_HDR10) here and
129      * specify correct values in the input HDR 10 metadata (Hdr10Metadata) settings.
130      * For more information about MediaConvert HDR jobs, see
131      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
132      */
ColorSpaceHasBeenSet()133     inline bool ColorSpaceHasBeenSet() const { return m_colorSpaceHasBeenSet; }
134 
135     /**
136      * If your input video has accurate color space metadata, or if you don't know
137      * about color space, leave this set to the default value Follow (FOLLOW). The
138      * service will automatically detect your input color space. If your input video
139      * has metadata indicating the wrong color space, specify the accurate color space
140      * here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display
141      * Color Volume static metadata isn't present in your video stream, or if that
142      * metadata is present but not accurate, choose Force HDR 10 (FORCE_HDR10) here and
143      * specify correct values in the input HDR 10 metadata (Hdr10Metadata) settings.
144      * For more information about MediaConvert HDR jobs, see
145      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
146      */
SetColorSpace(const ColorSpace & value)147     inline void SetColorSpace(const ColorSpace& value) { m_colorSpaceHasBeenSet = true; m_colorSpace = value; }
148 
149     /**
150      * If your input video has accurate color space metadata, or if you don't know
151      * about color space, leave this set to the default value Follow (FOLLOW). The
152      * service will automatically detect your input color space. If your input video
153      * has metadata indicating the wrong color space, specify the accurate color space
154      * here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display
155      * Color Volume static metadata isn't present in your video stream, or if that
156      * metadata is present but not accurate, choose Force HDR 10 (FORCE_HDR10) here and
157      * specify correct values in the input HDR 10 metadata (Hdr10Metadata) settings.
158      * For more information about MediaConvert HDR jobs, see
159      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
160      */
SetColorSpace(ColorSpace && value)161     inline void SetColorSpace(ColorSpace&& value) { m_colorSpaceHasBeenSet = true; m_colorSpace = std::move(value); }
162 
163     /**
164      * If your input video has accurate color space metadata, or if you don't know
165      * about color space, leave this set to the default value Follow (FOLLOW). The
166      * service will automatically detect your input color space. If your input video
167      * has metadata indicating the wrong color space, specify the accurate color space
168      * here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display
169      * Color Volume static metadata isn't present in your video stream, or if that
170      * metadata is present but not accurate, choose Force HDR 10 (FORCE_HDR10) here and
171      * specify correct values in the input HDR 10 metadata (Hdr10Metadata) settings.
172      * For more information about MediaConvert HDR jobs, see
173      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
174      */
WithColorSpace(const ColorSpace & value)175     inline VideoSelector& WithColorSpace(const ColorSpace& value) { SetColorSpace(value); return *this;}
176 
177     /**
178      * If your input video has accurate color space metadata, or if you don't know
179      * about color space, leave this set to the default value Follow (FOLLOW). The
180      * service will automatically detect your input color space. If your input video
181      * has metadata indicating the wrong color space, specify the accurate color space
182      * here. If your input video is HDR 10 and the SMPTE ST 2086 Mastering Display
183      * Color Volume static metadata isn't present in your video stream, or if that
184      * metadata is present but not accurate, choose Force HDR 10 (FORCE_HDR10) here and
185      * specify correct values in the input HDR 10 metadata (Hdr10Metadata) settings.
186      * For more information about MediaConvert HDR jobs, see
187      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
188      */
WithColorSpace(ColorSpace && value)189     inline VideoSelector& WithColorSpace(ColorSpace&& value) { SetColorSpace(std::move(value)); return *this;}
190 
191 
192     /**
193      * There are two sources for color metadata, the input file and the job input
194      * settings Color space (ColorSpace) and HDR master display information
195      * settings(Hdr10Metadata). The Color space usage setting determines which takes
196      * precedence. Choose Force (FORCE) to use color metadata from the input job
197      * settings. If you don't specify values for those settings, the service defaults
198      * to using metadata from your input. FALLBACK - Choose Fallback (FALLBACK) to use
199      * color metadata from the source when it is present. If there's no color metadata
200      * in your input file, the service defaults to using values you specify in the
201      * input settings.
202      */
GetColorSpaceUsage()203     inline const ColorSpaceUsage& GetColorSpaceUsage() const{ return m_colorSpaceUsage; }
204 
205     /**
206      * There are two sources for color metadata, the input file and the job input
207      * settings Color space (ColorSpace) and HDR master display information
208      * settings(Hdr10Metadata). The Color space usage setting determines which takes
209      * precedence. Choose Force (FORCE) to use color metadata from the input job
210      * settings. If you don't specify values for those settings, the service defaults
211      * to using metadata from your input. FALLBACK - Choose Fallback (FALLBACK) to use
212      * color metadata from the source when it is present. If there's no color metadata
213      * in your input file, the service defaults to using values you specify in the
214      * input settings.
215      */
ColorSpaceUsageHasBeenSet()216     inline bool ColorSpaceUsageHasBeenSet() const { return m_colorSpaceUsageHasBeenSet; }
217 
218     /**
219      * There are two sources for color metadata, the input file and the job input
220      * settings Color space (ColorSpace) and HDR master display information
221      * settings(Hdr10Metadata). The Color space usage setting determines which takes
222      * precedence. Choose Force (FORCE) to use color metadata from the input job
223      * settings. If you don't specify values for those settings, the service defaults
224      * to using metadata from your input. FALLBACK - Choose Fallback (FALLBACK) to use
225      * color metadata from the source when it is present. If there's no color metadata
226      * in your input file, the service defaults to using values you specify in the
227      * input settings.
228      */
SetColorSpaceUsage(const ColorSpaceUsage & value)229     inline void SetColorSpaceUsage(const ColorSpaceUsage& value) { m_colorSpaceUsageHasBeenSet = true; m_colorSpaceUsage = value; }
230 
231     /**
232      * There are two sources for color metadata, the input file and the job input
233      * settings Color space (ColorSpace) and HDR master display information
234      * settings(Hdr10Metadata). The Color space usage setting determines which takes
235      * precedence. Choose Force (FORCE) to use color metadata from the input job
236      * settings. If you don't specify values for those settings, the service defaults
237      * to using metadata from your input. FALLBACK - Choose Fallback (FALLBACK) to use
238      * color metadata from the source when it is present. If there's no color metadata
239      * in your input file, the service defaults to using values you specify in the
240      * input settings.
241      */
SetColorSpaceUsage(ColorSpaceUsage && value)242     inline void SetColorSpaceUsage(ColorSpaceUsage&& value) { m_colorSpaceUsageHasBeenSet = true; m_colorSpaceUsage = std::move(value); }
243 
244     /**
245      * There are two sources for color metadata, the input file and the job input
246      * settings Color space (ColorSpace) and HDR master display information
247      * settings(Hdr10Metadata). The Color space usage setting determines which takes
248      * precedence. Choose Force (FORCE) to use color metadata from the input job
249      * settings. If you don't specify values for those settings, the service defaults
250      * to using metadata from your input. FALLBACK - Choose Fallback (FALLBACK) to use
251      * color metadata from the source when it is present. If there's no color metadata
252      * in your input file, the service defaults to using values you specify in the
253      * input settings.
254      */
WithColorSpaceUsage(const ColorSpaceUsage & value)255     inline VideoSelector& WithColorSpaceUsage(const ColorSpaceUsage& value) { SetColorSpaceUsage(value); return *this;}
256 
257     /**
258      * There are two sources for color metadata, the input file and the job input
259      * settings Color space (ColorSpace) and HDR master display information
260      * settings(Hdr10Metadata). The Color space usage setting determines which takes
261      * precedence. Choose Force (FORCE) to use color metadata from the input job
262      * settings. If you don't specify values for those settings, the service defaults
263      * to using metadata from your input. FALLBACK - Choose Fallback (FALLBACK) to use
264      * color metadata from the source when it is present. If there's no color metadata
265      * in your input file, the service defaults to using values you specify in the
266      * input settings.
267      */
WithColorSpaceUsage(ColorSpaceUsage && value)268     inline VideoSelector& WithColorSpaceUsage(ColorSpaceUsage&& value) { SetColorSpaceUsage(std::move(value)); return *this;}
269 
270 
271     /**
272      * Use these settings to provide HDR 10 metadata that is missing or inaccurate in
273      * your input video. Appropriate values vary depending on the input video and must
274      * be provided by a color grader. The color grader generates these values during
275      * the HDR 10 mastering process. The valid range for each of these settings is 0 to
276      * 50,000. Each increment represents 0.00002 in CIE1931 color coordinate. Related
277      * settings - When you specify these values, you must also set Color space
278      * (ColorSpace) to HDR 10 (HDR10). To specify whether the the values you specify
279      * here take precedence over the values in the metadata of your input file, set
280      * Color space usage (ColorSpaceUsage). To specify whether color metadata is
281      * included in an output, set Color metadata (ColorMetadata). For more information
282      * about MediaConvert HDR jobs, see
283      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
284      */
GetHdr10Metadata()285     inline const Hdr10Metadata& GetHdr10Metadata() const{ return m_hdr10Metadata; }
286 
287     /**
288      * Use these settings to provide HDR 10 metadata that is missing or inaccurate in
289      * your input video. Appropriate values vary depending on the input video and must
290      * be provided by a color grader. The color grader generates these values during
291      * the HDR 10 mastering process. The valid range for each of these settings is 0 to
292      * 50,000. Each increment represents 0.00002 in CIE1931 color coordinate. Related
293      * settings - When you specify these values, you must also set Color space
294      * (ColorSpace) to HDR 10 (HDR10). To specify whether the the values you specify
295      * here take precedence over the values in the metadata of your input file, set
296      * Color space usage (ColorSpaceUsage). To specify whether color metadata is
297      * included in an output, set Color metadata (ColorMetadata). For more information
298      * about MediaConvert HDR jobs, see
299      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
300      */
Hdr10MetadataHasBeenSet()301     inline bool Hdr10MetadataHasBeenSet() const { return m_hdr10MetadataHasBeenSet; }
302 
303     /**
304      * Use these settings to provide HDR 10 metadata that is missing or inaccurate in
305      * your input video. Appropriate values vary depending on the input video and must
306      * be provided by a color grader. The color grader generates these values during
307      * the HDR 10 mastering process. The valid range for each of these settings is 0 to
308      * 50,000. Each increment represents 0.00002 in CIE1931 color coordinate. Related
309      * settings - When you specify these values, you must also set Color space
310      * (ColorSpace) to HDR 10 (HDR10). To specify whether the the values you specify
311      * here take precedence over the values in the metadata of your input file, set
312      * Color space usage (ColorSpaceUsage). To specify whether color metadata is
313      * included in an output, set Color metadata (ColorMetadata). For more information
314      * about MediaConvert HDR jobs, see
315      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
316      */
SetHdr10Metadata(const Hdr10Metadata & value)317     inline void SetHdr10Metadata(const Hdr10Metadata& value) { m_hdr10MetadataHasBeenSet = true; m_hdr10Metadata = value; }
318 
319     /**
320      * Use these settings to provide HDR 10 metadata that is missing or inaccurate in
321      * your input video. Appropriate values vary depending on the input video and must
322      * be provided by a color grader. The color grader generates these values during
323      * the HDR 10 mastering process. The valid range for each of these settings is 0 to
324      * 50,000. Each increment represents 0.00002 in CIE1931 color coordinate. Related
325      * settings - When you specify these values, you must also set Color space
326      * (ColorSpace) to HDR 10 (HDR10). To specify whether the the values you specify
327      * here take precedence over the values in the metadata of your input file, set
328      * Color space usage (ColorSpaceUsage). To specify whether color metadata is
329      * included in an output, set Color metadata (ColorMetadata). For more information
330      * about MediaConvert HDR jobs, see
331      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
332      */
SetHdr10Metadata(Hdr10Metadata && value)333     inline void SetHdr10Metadata(Hdr10Metadata&& value) { m_hdr10MetadataHasBeenSet = true; m_hdr10Metadata = std::move(value); }
334 
335     /**
336      * Use these settings to provide HDR 10 metadata that is missing or inaccurate in
337      * your input video. Appropriate values vary depending on the input video and must
338      * be provided by a color grader. The color grader generates these values during
339      * the HDR 10 mastering process. The valid range for each of these settings is 0 to
340      * 50,000. Each increment represents 0.00002 in CIE1931 color coordinate. Related
341      * settings - When you specify these values, you must also set Color space
342      * (ColorSpace) to HDR 10 (HDR10). To specify whether the the values you specify
343      * here take precedence over the values in the metadata of your input file, set
344      * Color space usage (ColorSpaceUsage). To specify whether color metadata is
345      * included in an output, set Color metadata (ColorMetadata). For more information
346      * about MediaConvert HDR jobs, see
347      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
348      */
WithHdr10Metadata(const Hdr10Metadata & value)349     inline VideoSelector& WithHdr10Metadata(const Hdr10Metadata& value) { SetHdr10Metadata(value); return *this;}
350 
351     /**
352      * Use these settings to provide HDR 10 metadata that is missing or inaccurate in
353      * your input video. Appropriate values vary depending on the input video and must
354      * be provided by a color grader. The color grader generates these values during
355      * the HDR 10 mastering process. The valid range for each of these settings is 0 to
356      * 50,000. Each increment represents 0.00002 in CIE1931 color coordinate. Related
357      * settings - When you specify these values, you must also set Color space
358      * (ColorSpace) to HDR 10 (HDR10). To specify whether the the values you specify
359      * here take precedence over the values in the metadata of your input file, set
360      * Color space usage (ColorSpaceUsage). To specify whether color metadata is
361      * included in an output, set Color metadata (ColorMetadata). For more information
362      * about MediaConvert HDR jobs, see
363      * https://docs.aws.amazon.com/console/mediaconvert/hdr.
364      */
WithHdr10Metadata(Hdr10Metadata && value)365     inline VideoSelector& WithHdr10Metadata(Hdr10Metadata&& value) { SetHdr10Metadata(std::move(value)); return *this;}
366 
367 
368     /**
369      * Use PID (Pid) to select specific video data from an input file. Specify this
370      * value as an integer; the system automatically converts it to the hexidecimal
371      * value. For example, 257 selects PID 0x101. A PID, or packet identifier, is an
372      * identifier for a set of data in an MPEG-2 transport stream container.
373      */
GetPid()374     inline int GetPid() const{ return m_pid; }
375 
376     /**
377      * Use PID (Pid) to select specific video data from an input file. Specify this
378      * value as an integer; the system automatically converts it to the hexidecimal
379      * value. For example, 257 selects PID 0x101. A PID, or packet identifier, is an
380      * identifier for a set of data in an MPEG-2 transport stream container.
381      */
PidHasBeenSet()382     inline bool PidHasBeenSet() const { return m_pidHasBeenSet; }
383 
384     /**
385      * Use PID (Pid) to select specific video data from an input file. Specify this
386      * value as an integer; the system automatically converts it to the hexidecimal
387      * value. For example, 257 selects PID 0x101. A PID, or packet identifier, is an
388      * identifier for a set of data in an MPEG-2 transport stream container.
389      */
SetPid(int value)390     inline void SetPid(int value) { m_pidHasBeenSet = true; m_pid = value; }
391 
392     /**
393      * Use PID (Pid) to select specific video data from an input file. Specify this
394      * value as an integer; the system automatically converts it to the hexidecimal
395      * value. For example, 257 selects PID 0x101. A PID, or packet identifier, is an
396      * identifier for a set of data in an MPEG-2 transport stream container.
397      */
WithPid(int value)398     inline VideoSelector& WithPid(int value) { SetPid(value); return *this;}
399 
400 
401     /**
402      * Selects a specific program from within a multi-program transport stream. Note
403      * that Quad 4K is not currently supported.
404      */
GetProgramNumber()405     inline int GetProgramNumber() const{ return m_programNumber; }
406 
407     /**
408      * Selects a specific program from within a multi-program transport stream. Note
409      * that Quad 4K is not currently supported.
410      */
ProgramNumberHasBeenSet()411     inline bool ProgramNumberHasBeenSet() const { return m_programNumberHasBeenSet; }
412 
413     /**
414      * Selects a specific program from within a multi-program transport stream. Note
415      * that Quad 4K is not currently supported.
416      */
SetProgramNumber(int value)417     inline void SetProgramNumber(int value) { m_programNumberHasBeenSet = true; m_programNumber = value; }
418 
419     /**
420      * Selects a specific program from within a multi-program transport stream. Note
421      * that Quad 4K is not currently supported.
422      */
WithProgramNumber(int value)423     inline VideoSelector& WithProgramNumber(int value) { SetProgramNumber(value); return *this;}
424 
425 
426     /**
427      * Use Rotate (InputRotate) to specify how the service rotates your video. You can
428      * choose automatic rotation or specify a rotation. You can specify a clockwise
429      * rotation of 0, 90, 180, or 270 degrees. If your input video container is .mov or
430      * .mp4 and your input has rotation metadata, you can choose Automatic to have the
431      * service rotate your video according to the rotation specified in the metadata.
432      * The rotation must be within one degree of 90, 180, or 270 degrees. If the
433      * rotation metadata specifies any other rotation, the service will default to no
434      * rotation. By default, the service does no rotation, even if your input video has
435      * rotation metadata. The service doesn't pass through rotation metadata.
436      */
GetRotate()437     inline const InputRotate& GetRotate() const{ return m_rotate; }
438 
439     /**
440      * Use Rotate (InputRotate) to specify how the service rotates your video. You can
441      * choose automatic rotation or specify a rotation. You can specify a clockwise
442      * rotation of 0, 90, 180, or 270 degrees. If your input video container is .mov or
443      * .mp4 and your input has rotation metadata, you can choose Automatic to have the
444      * service rotate your video according to the rotation specified in the metadata.
445      * The rotation must be within one degree of 90, 180, or 270 degrees. If the
446      * rotation metadata specifies any other rotation, the service will default to no
447      * rotation. By default, the service does no rotation, even if your input video has
448      * rotation metadata. The service doesn't pass through rotation metadata.
449      */
RotateHasBeenSet()450     inline bool RotateHasBeenSet() const { return m_rotateHasBeenSet; }
451 
452     /**
453      * Use Rotate (InputRotate) to specify how the service rotates your video. You can
454      * choose automatic rotation or specify a rotation. You can specify a clockwise
455      * rotation of 0, 90, 180, or 270 degrees. If your input video container is .mov or
456      * .mp4 and your input has rotation metadata, you can choose Automatic to have the
457      * service rotate your video according to the rotation specified in the metadata.
458      * The rotation must be within one degree of 90, 180, or 270 degrees. If the
459      * rotation metadata specifies any other rotation, the service will default to no
460      * rotation. By default, the service does no rotation, even if your input video has
461      * rotation metadata. The service doesn't pass through rotation metadata.
462      */
SetRotate(const InputRotate & value)463     inline void SetRotate(const InputRotate& value) { m_rotateHasBeenSet = true; m_rotate = value; }
464 
465     /**
466      * Use Rotate (InputRotate) to specify how the service rotates your video. You can
467      * choose automatic rotation or specify a rotation. You can specify a clockwise
468      * rotation of 0, 90, 180, or 270 degrees. If your input video container is .mov or
469      * .mp4 and your input has rotation metadata, you can choose Automatic to have the
470      * service rotate your video according to the rotation specified in the metadata.
471      * The rotation must be within one degree of 90, 180, or 270 degrees. If the
472      * rotation metadata specifies any other rotation, the service will default to no
473      * rotation. By default, the service does no rotation, even if your input video has
474      * rotation metadata. The service doesn't pass through rotation metadata.
475      */
SetRotate(InputRotate && value)476     inline void SetRotate(InputRotate&& value) { m_rotateHasBeenSet = true; m_rotate = std::move(value); }
477 
478     /**
479      * Use Rotate (InputRotate) to specify how the service rotates your video. You can
480      * choose automatic rotation or specify a rotation. You can specify a clockwise
481      * rotation of 0, 90, 180, or 270 degrees. If your input video container is .mov or
482      * .mp4 and your input has rotation metadata, you can choose Automatic to have the
483      * service rotate your video according to the rotation specified in the metadata.
484      * The rotation must be within one degree of 90, 180, or 270 degrees. If the
485      * rotation metadata specifies any other rotation, the service will default to no
486      * rotation. By default, the service does no rotation, even if your input video has
487      * rotation metadata. The service doesn't pass through rotation metadata.
488      */
WithRotate(const InputRotate & value)489     inline VideoSelector& WithRotate(const InputRotate& value) { SetRotate(value); return *this;}
490 
491     /**
492      * Use Rotate (InputRotate) to specify how the service rotates your video. You can
493      * choose automatic rotation or specify a rotation. You can specify a clockwise
494      * rotation of 0, 90, 180, or 270 degrees. If your input video container is .mov or
495      * .mp4 and your input has rotation metadata, you can choose Automatic to have the
496      * service rotate your video according to the rotation specified in the metadata.
497      * The rotation must be within one degree of 90, 180, or 270 degrees. If the
498      * rotation metadata specifies any other rotation, the service will default to no
499      * rotation. By default, the service does no rotation, even if your input video has
500      * rotation metadata. The service doesn't pass through rotation metadata.
501      */
WithRotate(InputRotate && value)502     inline VideoSelector& WithRotate(InputRotate&& value) { SetRotate(std::move(value)); return *this;}
503 
504 
505     /**
506      * If the sample range metadata in your input video is accurate, or if you don't
507      * know about sample range, keep the default value, Follow (FOLLOW), for this
508      * setting. When you do, the service automatically detects your input sample range.
509      * If your input video has metadata indicating the wrong sample range, specify the
510      * accurate sample range here. When you do, MediaConvert ignores any sample range
511      * information in the input metadata. Regardless of whether MediaConvert uses the
512      * input sample range or the sample range that you specify, MediaConvert uses the
513      * sample range for transcoding and also writes it to the output metadata.
514      */
GetSampleRange()515     inline const InputSampleRange& GetSampleRange() const{ return m_sampleRange; }
516 
517     /**
518      * If the sample range metadata in your input video is accurate, or if you don't
519      * know about sample range, keep the default value, Follow (FOLLOW), for this
520      * setting. When you do, the service automatically detects your input sample range.
521      * If your input video has metadata indicating the wrong sample range, specify the
522      * accurate sample range here. When you do, MediaConvert ignores any sample range
523      * information in the input metadata. Regardless of whether MediaConvert uses the
524      * input sample range or the sample range that you specify, MediaConvert uses the
525      * sample range for transcoding and also writes it to the output metadata.
526      */
SampleRangeHasBeenSet()527     inline bool SampleRangeHasBeenSet() const { return m_sampleRangeHasBeenSet; }
528 
529     /**
530      * If the sample range metadata in your input video is accurate, or if you don't
531      * know about sample range, keep the default value, Follow (FOLLOW), for this
532      * setting. When you do, the service automatically detects your input sample range.
533      * If your input video has metadata indicating the wrong sample range, specify the
534      * accurate sample range here. When you do, MediaConvert ignores any sample range
535      * information in the input metadata. Regardless of whether MediaConvert uses the
536      * input sample range or the sample range that you specify, MediaConvert uses the
537      * sample range for transcoding and also writes it to the output metadata.
538      */
SetSampleRange(const InputSampleRange & value)539     inline void SetSampleRange(const InputSampleRange& value) { m_sampleRangeHasBeenSet = true; m_sampleRange = value; }
540 
541     /**
542      * If the sample range metadata in your input video is accurate, or if you don't
543      * know about sample range, keep the default value, Follow (FOLLOW), for this
544      * setting. When you do, the service automatically detects your input sample range.
545      * If your input video has metadata indicating the wrong sample range, specify the
546      * accurate sample range here. When you do, MediaConvert ignores any sample range
547      * information in the input metadata. Regardless of whether MediaConvert uses the
548      * input sample range or the sample range that you specify, MediaConvert uses the
549      * sample range for transcoding and also writes it to the output metadata.
550      */
SetSampleRange(InputSampleRange && value)551     inline void SetSampleRange(InputSampleRange&& value) { m_sampleRangeHasBeenSet = true; m_sampleRange = std::move(value); }
552 
553     /**
554      * If the sample range metadata in your input video is accurate, or if you don't
555      * know about sample range, keep the default value, Follow (FOLLOW), for this
556      * setting. When you do, the service automatically detects your input sample range.
557      * If your input video has metadata indicating the wrong sample range, specify the
558      * accurate sample range here. When you do, MediaConvert ignores any sample range
559      * information in the input metadata. Regardless of whether MediaConvert uses the
560      * input sample range or the sample range that you specify, MediaConvert uses the
561      * sample range for transcoding and also writes it to the output metadata.
562      */
WithSampleRange(const InputSampleRange & value)563     inline VideoSelector& WithSampleRange(const InputSampleRange& value) { SetSampleRange(value); return *this;}
564 
565     /**
566      * If the sample range metadata in your input video is accurate, or if you don't
567      * know about sample range, keep the default value, Follow (FOLLOW), for this
568      * setting. When you do, the service automatically detects your input sample range.
569      * If your input video has metadata indicating the wrong sample range, specify the
570      * accurate sample range here. When you do, MediaConvert ignores any sample range
571      * information in the input metadata. Regardless of whether MediaConvert uses the
572      * input sample range or the sample range that you specify, MediaConvert uses the
573      * sample range for transcoding and also writes it to the output metadata.
574      */
WithSampleRange(InputSampleRange && value)575     inline VideoSelector& WithSampleRange(InputSampleRange&& value) { SetSampleRange(std::move(value)); return *this;}
576 
577   private:
578 
579     AlphaBehavior m_alphaBehavior;
580     bool m_alphaBehaviorHasBeenSet;
581 
582     ColorSpace m_colorSpace;
583     bool m_colorSpaceHasBeenSet;
584 
585     ColorSpaceUsage m_colorSpaceUsage;
586     bool m_colorSpaceUsageHasBeenSet;
587 
588     Hdr10Metadata m_hdr10Metadata;
589     bool m_hdr10MetadataHasBeenSet;
590 
591     int m_pid;
592     bool m_pidHasBeenSet;
593 
594     int m_programNumber;
595     bool m_programNumberHasBeenSet;
596 
597     InputRotate m_rotate;
598     bool m_rotateHasBeenSet;
599 
600     InputSampleRange m_sampleRange;
601     bool m_sampleRangeHasBeenSet;
602   };
603 
604 } // namespace Model
605 } // namespace MediaConvert
606 } // namespace Aws
607