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