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 
9 namespace Aws
10 {
11 namespace Utils
12 {
13 namespace Json
14 {
15   class JsonValue;
16   class JsonView;
17 } // namespace Json
18 } // namespace Utils
19 namespace MediaConvert
20 {
21 namespace Model
22 {
23 
24   /**
25    * Required when you set (Codec) under (VideoDescription)>(CodecSettings) to the
26    * value FRAME_CAPTURE.<p><h3>See Also:</h3>   <a
27    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/FrameCaptureSettings">AWS
28    * API Reference</a></p>
29    */
30   class AWS_MEDIACONVERT_API FrameCaptureSettings
31   {
32   public:
33     FrameCaptureSettings();
34     FrameCaptureSettings(Aws::Utils::Json::JsonView jsonValue);
35     FrameCaptureSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
36     Aws::Utils::Json::JsonValue Jsonize() const;
37 
38 
39     /**
40      * Frame capture will encode the first frame of the output stream, then one frame
41      * every framerateDenominator/framerateNumerator seconds. For example, settings of
42      * framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per
43      * second) will capture the first frame, then 1 frame every 3s. Files will be named
44      * as filename.n.jpg where n is the 0-based sequence number of each Capture.
45      */
GetFramerateDenominator()46     inline int GetFramerateDenominator() const{ return m_framerateDenominator; }
47 
48     /**
49      * Frame capture will encode the first frame of the output stream, then one frame
50      * every framerateDenominator/framerateNumerator seconds. For example, settings of
51      * framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per
52      * second) will capture the first frame, then 1 frame every 3s. Files will be named
53      * as filename.n.jpg where n is the 0-based sequence number of each Capture.
54      */
FramerateDenominatorHasBeenSet()55     inline bool FramerateDenominatorHasBeenSet() const { return m_framerateDenominatorHasBeenSet; }
56 
57     /**
58      * Frame capture will encode the first frame of the output stream, then one frame
59      * every framerateDenominator/framerateNumerator seconds. For example, settings of
60      * framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per
61      * second) will capture the first frame, then 1 frame every 3s. Files will be named
62      * as filename.n.jpg where n is the 0-based sequence number of each Capture.
63      */
SetFramerateDenominator(int value)64     inline void SetFramerateDenominator(int value) { m_framerateDenominatorHasBeenSet = true; m_framerateDenominator = value; }
65 
66     /**
67      * Frame capture will encode the first frame of the output stream, then one frame
68      * every framerateDenominator/framerateNumerator seconds. For example, settings of
69      * framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per
70      * second) will capture the first frame, then 1 frame every 3s. Files will be named
71      * as filename.n.jpg where n is the 0-based sequence number of each Capture.
72      */
WithFramerateDenominator(int value)73     inline FrameCaptureSettings& WithFramerateDenominator(int value) { SetFramerateDenominator(value); return *this;}
74 
75 
76     /**
77      * Frame capture will encode the first frame of the output stream, then one frame
78      * every framerateDenominator/framerateNumerator seconds. For example, settings of
79      * framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per
80      * second) will capture the first frame, then 1 frame every 3s. Files will be named
81      * as filename.NNNNNNN.jpg where N is the 0-based frame sequence number zero padded
82      * to 7 decimal places.
83      */
GetFramerateNumerator()84     inline int GetFramerateNumerator() const{ return m_framerateNumerator; }
85 
86     /**
87      * Frame capture will encode the first frame of the output stream, then one frame
88      * every framerateDenominator/framerateNumerator seconds. For example, settings of
89      * framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per
90      * second) will capture the first frame, then 1 frame every 3s. Files will be named
91      * as filename.NNNNNNN.jpg where N is the 0-based frame sequence number zero padded
92      * to 7 decimal places.
93      */
FramerateNumeratorHasBeenSet()94     inline bool FramerateNumeratorHasBeenSet() const { return m_framerateNumeratorHasBeenSet; }
95 
96     /**
97      * Frame capture will encode the first frame of the output stream, then one frame
98      * every framerateDenominator/framerateNumerator seconds. For example, settings of
99      * framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per
100      * second) will capture the first frame, then 1 frame every 3s. Files will be named
101      * as filename.NNNNNNN.jpg where N is the 0-based frame sequence number zero padded
102      * to 7 decimal places.
103      */
SetFramerateNumerator(int value)104     inline void SetFramerateNumerator(int value) { m_framerateNumeratorHasBeenSet = true; m_framerateNumerator = value; }
105 
106     /**
107      * Frame capture will encode the first frame of the output stream, then one frame
108      * every framerateDenominator/framerateNumerator seconds. For example, settings of
109      * framerateNumerator = 1 and framerateDenominator = 3 (a rate of 1/3 frame per
110      * second) will capture the first frame, then 1 frame every 3s. Files will be named
111      * as filename.NNNNNNN.jpg where N is the 0-based frame sequence number zero padded
112      * to 7 decimal places.
113      */
WithFramerateNumerator(int value)114     inline FrameCaptureSettings& WithFramerateNumerator(int value) { SetFramerateNumerator(value); return *this;}
115 
116 
117     /**
118      * Maximum number of captures (encoded jpg output files).
119      */
GetMaxCaptures()120     inline int GetMaxCaptures() const{ return m_maxCaptures; }
121 
122     /**
123      * Maximum number of captures (encoded jpg output files).
124      */
MaxCapturesHasBeenSet()125     inline bool MaxCapturesHasBeenSet() const { return m_maxCapturesHasBeenSet; }
126 
127     /**
128      * Maximum number of captures (encoded jpg output files).
129      */
SetMaxCaptures(int value)130     inline void SetMaxCaptures(int value) { m_maxCapturesHasBeenSet = true; m_maxCaptures = value; }
131 
132     /**
133      * Maximum number of captures (encoded jpg output files).
134      */
WithMaxCaptures(int value)135     inline FrameCaptureSettings& WithMaxCaptures(int value) { SetMaxCaptures(value); return *this;}
136 
137 
138     /**
139      * JPEG Quality - a higher value equals higher quality.
140      */
GetQuality()141     inline int GetQuality() const{ return m_quality; }
142 
143     /**
144      * JPEG Quality - a higher value equals higher quality.
145      */
QualityHasBeenSet()146     inline bool QualityHasBeenSet() const { return m_qualityHasBeenSet; }
147 
148     /**
149      * JPEG Quality - a higher value equals higher quality.
150      */
SetQuality(int value)151     inline void SetQuality(int value) { m_qualityHasBeenSet = true; m_quality = value; }
152 
153     /**
154      * JPEG Quality - a higher value equals higher quality.
155      */
WithQuality(int value)156     inline FrameCaptureSettings& WithQuality(int value) { SetQuality(value); return *this;}
157 
158   private:
159 
160     int m_framerateDenominator;
161     bool m_framerateDenominatorHasBeenSet;
162 
163     int m_framerateNumerator;
164     bool m_framerateNumeratorHasBeenSet;
165 
166     int m_maxCaptures;
167     bool m_maxCapturesHasBeenSet;
168 
169     int m_quality;
170     bool m_qualityHasBeenSet;
171   };
172 
173 } // namespace Model
174 } // namespace MediaConvert
175 } // namespace Aws
176