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/NoiseReducerFilter.h>
9 #include <aws/mediaconvert/model/NoiseReducerFilterSettings.h>
10 #include <aws/mediaconvert/model/NoiseReducerSpatialFilterSettings.h>
11 #include <aws/mediaconvert/model/NoiseReducerTemporalFilterSettings.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace MediaConvert
25 {
26 namespace Model
27 {
28 
29   /**
30    * Enable the Noise reducer (NoiseReducer) feature to remove noise from your video
31    * output if necessary. Enable or disable this feature for each output
32    * individually. This setting is disabled by default. When you enable Noise reducer
33    * (NoiseReducer), you must also select a value for Noise reducer filter
34    * (NoiseReducerFilter).<p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/NoiseReducer">AWS
36    * API Reference</a></p>
37    */
38   class AWS_MEDIACONVERT_API NoiseReducer
39   {
40   public:
41     NoiseReducer();
42     NoiseReducer(Aws::Utils::Json::JsonView jsonValue);
43     NoiseReducer& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * Use Noise reducer filter (NoiseReducerFilter) to select one of the following
49      * spatial image filtering functions. To use this setting, you must also enable
50      * Noise reducer (NoiseReducer). * Bilateral preserves edges while reducing noise.
51      * * Mean (softest), Gaussian, Lanczos, and Sharpen (sharpest) do convolution
52      * filtering. * Conserve does min/max noise reduction. * Spatial does
53      * frequency-domain filtering based on JND principles. * Temporal optimizes video
54      * quality for complex motion.
55      */
GetFilter()56     inline const NoiseReducerFilter& GetFilter() const{ return m_filter; }
57 
58     /**
59      * Use Noise reducer filter (NoiseReducerFilter) to select one of the following
60      * spatial image filtering functions. To use this setting, you must also enable
61      * Noise reducer (NoiseReducer). * Bilateral preserves edges while reducing noise.
62      * * Mean (softest), Gaussian, Lanczos, and Sharpen (sharpest) do convolution
63      * filtering. * Conserve does min/max noise reduction. * Spatial does
64      * frequency-domain filtering based on JND principles. * Temporal optimizes video
65      * quality for complex motion.
66      */
FilterHasBeenSet()67     inline bool FilterHasBeenSet() const { return m_filterHasBeenSet; }
68 
69     /**
70      * Use Noise reducer filter (NoiseReducerFilter) to select one of the following
71      * spatial image filtering functions. To use this setting, you must also enable
72      * Noise reducer (NoiseReducer). * Bilateral preserves edges while reducing noise.
73      * * Mean (softest), Gaussian, Lanczos, and Sharpen (sharpest) do convolution
74      * filtering. * Conserve does min/max noise reduction. * Spatial does
75      * frequency-domain filtering based on JND principles. * Temporal optimizes video
76      * quality for complex motion.
77      */
SetFilter(const NoiseReducerFilter & value)78     inline void SetFilter(const NoiseReducerFilter& value) { m_filterHasBeenSet = true; m_filter = value; }
79 
80     /**
81      * Use Noise reducer filter (NoiseReducerFilter) to select one of the following
82      * spatial image filtering functions. To use this setting, you must also enable
83      * Noise reducer (NoiseReducer). * Bilateral preserves edges while reducing noise.
84      * * Mean (softest), Gaussian, Lanczos, and Sharpen (sharpest) do convolution
85      * filtering. * Conserve does min/max noise reduction. * Spatial does
86      * frequency-domain filtering based on JND principles. * Temporal optimizes video
87      * quality for complex motion.
88      */
SetFilter(NoiseReducerFilter && value)89     inline void SetFilter(NoiseReducerFilter&& value) { m_filterHasBeenSet = true; m_filter = std::move(value); }
90 
91     /**
92      * Use Noise reducer filter (NoiseReducerFilter) to select one of the following
93      * spatial image filtering functions. To use this setting, you must also enable
94      * Noise reducer (NoiseReducer). * Bilateral preserves edges while reducing noise.
95      * * Mean (softest), Gaussian, Lanczos, and Sharpen (sharpest) do convolution
96      * filtering. * Conserve does min/max noise reduction. * Spatial does
97      * frequency-domain filtering based on JND principles. * Temporal optimizes video
98      * quality for complex motion.
99      */
WithFilter(const NoiseReducerFilter & value)100     inline NoiseReducer& WithFilter(const NoiseReducerFilter& value) { SetFilter(value); return *this;}
101 
102     /**
103      * Use Noise reducer filter (NoiseReducerFilter) to select one of the following
104      * spatial image filtering functions. To use this setting, you must also enable
105      * Noise reducer (NoiseReducer). * Bilateral preserves edges while reducing noise.
106      * * Mean (softest), Gaussian, Lanczos, and Sharpen (sharpest) do convolution
107      * filtering. * Conserve does min/max noise reduction. * Spatial does
108      * frequency-domain filtering based on JND principles. * Temporal optimizes video
109      * quality for complex motion.
110      */
WithFilter(NoiseReducerFilter && value)111     inline NoiseReducer& WithFilter(NoiseReducerFilter&& value) { SetFilter(std::move(value)); return *this;}
112 
113 
114     /**
115      * Settings for a noise reducer filter
116      */
GetFilterSettings()117     inline const NoiseReducerFilterSettings& GetFilterSettings() const{ return m_filterSettings; }
118 
119     /**
120      * Settings for a noise reducer filter
121      */
FilterSettingsHasBeenSet()122     inline bool FilterSettingsHasBeenSet() const { return m_filterSettingsHasBeenSet; }
123 
124     /**
125      * Settings for a noise reducer filter
126      */
SetFilterSettings(const NoiseReducerFilterSettings & value)127     inline void SetFilterSettings(const NoiseReducerFilterSettings& value) { m_filterSettingsHasBeenSet = true; m_filterSettings = value; }
128 
129     /**
130      * Settings for a noise reducer filter
131      */
SetFilterSettings(NoiseReducerFilterSettings && value)132     inline void SetFilterSettings(NoiseReducerFilterSettings&& value) { m_filterSettingsHasBeenSet = true; m_filterSettings = std::move(value); }
133 
134     /**
135      * Settings for a noise reducer filter
136      */
WithFilterSettings(const NoiseReducerFilterSettings & value)137     inline NoiseReducer& WithFilterSettings(const NoiseReducerFilterSettings& value) { SetFilterSettings(value); return *this;}
138 
139     /**
140      * Settings for a noise reducer filter
141      */
WithFilterSettings(NoiseReducerFilterSettings && value)142     inline NoiseReducer& WithFilterSettings(NoiseReducerFilterSettings&& value) { SetFilterSettings(std::move(value)); return *this;}
143 
144 
145     /**
146      * Noise reducer filter settings for spatial filter.
147      */
GetSpatialFilterSettings()148     inline const NoiseReducerSpatialFilterSettings& GetSpatialFilterSettings() const{ return m_spatialFilterSettings; }
149 
150     /**
151      * Noise reducer filter settings for spatial filter.
152      */
SpatialFilterSettingsHasBeenSet()153     inline bool SpatialFilterSettingsHasBeenSet() const { return m_spatialFilterSettingsHasBeenSet; }
154 
155     /**
156      * Noise reducer filter settings for spatial filter.
157      */
SetSpatialFilterSettings(const NoiseReducerSpatialFilterSettings & value)158     inline void SetSpatialFilterSettings(const NoiseReducerSpatialFilterSettings& value) { m_spatialFilterSettingsHasBeenSet = true; m_spatialFilterSettings = value; }
159 
160     /**
161      * Noise reducer filter settings for spatial filter.
162      */
SetSpatialFilterSettings(NoiseReducerSpatialFilterSettings && value)163     inline void SetSpatialFilterSettings(NoiseReducerSpatialFilterSettings&& value) { m_spatialFilterSettingsHasBeenSet = true; m_spatialFilterSettings = std::move(value); }
164 
165     /**
166      * Noise reducer filter settings for spatial filter.
167      */
WithSpatialFilterSettings(const NoiseReducerSpatialFilterSettings & value)168     inline NoiseReducer& WithSpatialFilterSettings(const NoiseReducerSpatialFilterSettings& value) { SetSpatialFilterSettings(value); return *this;}
169 
170     /**
171      * Noise reducer filter settings for spatial filter.
172      */
WithSpatialFilterSettings(NoiseReducerSpatialFilterSettings && value)173     inline NoiseReducer& WithSpatialFilterSettings(NoiseReducerSpatialFilterSettings&& value) { SetSpatialFilterSettings(std::move(value)); return *this;}
174 
175 
176     /**
177      * Noise reducer filter settings for temporal filter.
178      */
GetTemporalFilterSettings()179     inline const NoiseReducerTemporalFilterSettings& GetTemporalFilterSettings() const{ return m_temporalFilterSettings; }
180 
181     /**
182      * Noise reducer filter settings for temporal filter.
183      */
TemporalFilterSettingsHasBeenSet()184     inline bool TemporalFilterSettingsHasBeenSet() const { return m_temporalFilterSettingsHasBeenSet; }
185 
186     /**
187      * Noise reducer filter settings for temporal filter.
188      */
SetTemporalFilterSettings(const NoiseReducerTemporalFilterSettings & value)189     inline void SetTemporalFilterSettings(const NoiseReducerTemporalFilterSettings& value) { m_temporalFilterSettingsHasBeenSet = true; m_temporalFilterSettings = value; }
190 
191     /**
192      * Noise reducer filter settings for temporal filter.
193      */
SetTemporalFilterSettings(NoiseReducerTemporalFilterSettings && value)194     inline void SetTemporalFilterSettings(NoiseReducerTemporalFilterSettings&& value) { m_temporalFilterSettingsHasBeenSet = true; m_temporalFilterSettings = std::move(value); }
195 
196     /**
197      * Noise reducer filter settings for temporal filter.
198      */
WithTemporalFilterSettings(const NoiseReducerTemporalFilterSettings & value)199     inline NoiseReducer& WithTemporalFilterSettings(const NoiseReducerTemporalFilterSettings& value) { SetTemporalFilterSettings(value); return *this;}
200 
201     /**
202      * Noise reducer filter settings for temporal filter.
203      */
WithTemporalFilterSettings(NoiseReducerTemporalFilterSettings && value)204     inline NoiseReducer& WithTemporalFilterSettings(NoiseReducerTemporalFilterSettings&& value) { SetTemporalFilterSettings(std::move(value)); return *this;}
205 
206   private:
207 
208     NoiseReducerFilter m_filter;
209     bool m_filterHasBeenSet;
210 
211     NoiseReducerFilterSettings m_filterSettings;
212     bool m_filterSettingsHasBeenSet;
213 
214     NoiseReducerSpatialFilterSettings m_spatialFilterSettings;
215     bool m_spatialFilterSettingsHasBeenSet;
216 
217     NoiseReducerTemporalFilterSettings m_temporalFilterSettings;
218     bool m_temporalFilterSettingsHasBeenSet;
219   };
220 
221 } // namespace Model
222 } // namespace MediaConvert
223 } // namespace Aws
224