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/medialive/MediaLive_EXPORTS.h>
8 #include <aws/medialive/model/Eac3AttenuationControl.h>
9 #include <aws/medialive/model/Eac3BitstreamMode.h>
10 #include <aws/medialive/model/Eac3CodingMode.h>
11 #include <aws/medialive/model/Eac3DcFilter.h>
12 #include <aws/medialive/model/Eac3DrcLine.h>
13 #include <aws/medialive/model/Eac3DrcRf.h>
14 #include <aws/medialive/model/Eac3LfeControl.h>
15 #include <aws/medialive/model/Eac3LfeFilter.h>
16 #include <aws/medialive/model/Eac3MetadataControl.h>
17 #include <aws/medialive/model/Eac3PassthroughControl.h>
18 #include <aws/medialive/model/Eac3PhaseControl.h>
19 #include <aws/medialive/model/Eac3StereoDownmix.h>
20 #include <aws/medialive/model/Eac3SurroundExMode.h>
21 #include <aws/medialive/model/Eac3SurroundMode.h>
22 #include <utility>
23 
24 namespace Aws
25 {
26 namespace Utils
27 {
28 namespace Json
29 {
30   class JsonValue;
31   class JsonView;
32 } // namespace Json
33 } // namespace Utils
34 namespace MediaLive
35 {
36 namespace Model
37 {
38 
39   /**
40    * Eac3 Settings<p><h3>See Also:</h3>   <a
41    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/Eac3Settings">AWS
42    * API Reference</a></p>
43    */
44   class AWS_MEDIALIVE_API Eac3Settings
45   {
46   public:
47     Eac3Settings();
48     Eac3Settings(Aws::Utils::Json::JsonView jsonValue);
49     Eac3Settings& operator=(Aws::Utils::Json::JsonView jsonValue);
50     Aws::Utils::Json::JsonValue Jsonize() const;
51 
52 
53     /**
54      * When set to attenuate3Db, applies a 3 dB attenuation to the surround channels.
55      * Only used for 3/2 coding mode.
56      */
GetAttenuationControl()57     inline const Eac3AttenuationControl& GetAttenuationControl() const{ return m_attenuationControl; }
58 
59     /**
60      * When set to attenuate3Db, applies a 3 dB attenuation to the surround channels.
61      * Only used for 3/2 coding mode.
62      */
AttenuationControlHasBeenSet()63     inline bool AttenuationControlHasBeenSet() const { return m_attenuationControlHasBeenSet; }
64 
65     /**
66      * When set to attenuate3Db, applies a 3 dB attenuation to the surround channels.
67      * Only used for 3/2 coding mode.
68      */
SetAttenuationControl(const Eac3AttenuationControl & value)69     inline void SetAttenuationControl(const Eac3AttenuationControl& value) { m_attenuationControlHasBeenSet = true; m_attenuationControl = value; }
70 
71     /**
72      * When set to attenuate3Db, applies a 3 dB attenuation to the surround channels.
73      * Only used for 3/2 coding mode.
74      */
SetAttenuationControl(Eac3AttenuationControl && value)75     inline void SetAttenuationControl(Eac3AttenuationControl&& value) { m_attenuationControlHasBeenSet = true; m_attenuationControl = std::move(value); }
76 
77     /**
78      * When set to attenuate3Db, applies a 3 dB attenuation to the surround channels.
79      * Only used for 3/2 coding mode.
80      */
WithAttenuationControl(const Eac3AttenuationControl & value)81     inline Eac3Settings& WithAttenuationControl(const Eac3AttenuationControl& value) { SetAttenuationControl(value); return *this;}
82 
83     /**
84      * When set to attenuate3Db, applies a 3 dB attenuation to the surround channels.
85      * Only used for 3/2 coding mode.
86      */
WithAttenuationControl(Eac3AttenuationControl && value)87     inline Eac3Settings& WithAttenuationControl(Eac3AttenuationControl&& value) { SetAttenuationControl(std::move(value)); return *this;}
88 
89 
90     /**
91      * Average bitrate in bits/second. Valid bitrates depend on the coding mode.
92      */
GetBitrate()93     inline double GetBitrate() const{ return m_bitrate; }
94 
95     /**
96      * Average bitrate in bits/second. Valid bitrates depend on the coding mode.
97      */
BitrateHasBeenSet()98     inline bool BitrateHasBeenSet() const { return m_bitrateHasBeenSet; }
99 
100     /**
101      * Average bitrate in bits/second. Valid bitrates depend on the coding mode.
102      */
SetBitrate(double value)103     inline void SetBitrate(double value) { m_bitrateHasBeenSet = true; m_bitrate = value; }
104 
105     /**
106      * Average bitrate in bits/second. Valid bitrates depend on the coding mode.
107      */
WithBitrate(double value)108     inline Eac3Settings& WithBitrate(double value) { SetBitrate(value); return *this;}
109 
110 
111     /**
112      * Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC
113      * A/52-2012 (Annex E) for background on these values.
114      */
GetBitstreamMode()115     inline const Eac3BitstreamMode& GetBitstreamMode() const{ return m_bitstreamMode; }
116 
117     /**
118      * Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC
119      * A/52-2012 (Annex E) for background on these values.
120      */
BitstreamModeHasBeenSet()121     inline bool BitstreamModeHasBeenSet() const { return m_bitstreamModeHasBeenSet; }
122 
123     /**
124      * Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC
125      * A/52-2012 (Annex E) for background on these values.
126      */
SetBitstreamMode(const Eac3BitstreamMode & value)127     inline void SetBitstreamMode(const Eac3BitstreamMode& value) { m_bitstreamModeHasBeenSet = true; m_bitstreamMode = value; }
128 
129     /**
130      * Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC
131      * A/52-2012 (Annex E) for background on these values.
132      */
SetBitstreamMode(Eac3BitstreamMode && value)133     inline void SetBitstreamMode(Eac3BitstreamMode&& value) { m_bitstreamModeHasBeenSet = true; m_bitstreamMode = std::move(value); }
134 
135     /**
136      * Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC
137      * A/52-2012 (Annex E) for background on these values.
138      */
WithBitstreamMode(const Eac3BitstreamMode & value)139     inline Eac3Settings& WithBitstreamMode(const Eac3BitstreamMode& value) { SetBitstreamMode(value); return *this;}
140 
141     /**
142      * Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC
143      * A/52-2012 (Annex E) for background on these values.
144      */
WithBitstreamMode(Eac3BitstreamMode && value)145     inline Eac3Settings& WithBitstreamMode(Eac3BitstreamMode&& value) { SetBitstreamMode(std::move(value)); return *this;}
146 
147 
148     /**
149      * Dolby Digital Plus coding mode. Determines number of channels.
150      */
GetCodingMode()151     inline const Eac3CodingMode& GetCodingMode() const{ return m_codingMode; }
152 
153     /**
154      * Dolby Digital Plus coding mode. Determines number of channels.
155      */
CodingModeHasBeenSet()156     inline bool CodingModeHasBeenSet() const { return m_codingModeHasBeenSet; }
157 
158     /**
159      * Dolby Digital Plus coding mode. Determines number of channels.
160      */
SetCodingMode(const Eac3CodingMode & value)161     inline void SetCodingMode(const Eac3CodingMode& value) { m_codingModeHasBeenSet = true; m_codingMode = value; }
162 
163     /**
164      * Dolby Digital Plus coding mode. Determines number of channels.
165      */
SetCodingMode(Eac3CodingMode && value)166     inline void SetCodingMode(Eac3CodingMode&& value) { m_codingModeHasBeenSet = true; m_codingMode = std::move(value); }
167 
168     /**
169      * Dolby Digital Plus coding mode. Determines number of channels.
170      */
WithCodingMode(const Eac3CodingMode & value)171     inline Eac3Settings& WithCodingMode(const Eac3CodingMode& value) { SetCodingMode(value); return *this;}
172 
173     /**
174      * Dolby Digital Plus coding mode. Determines number of channels.
175      */
WithCodingMode(Eac3CodingMode && value)176     inline Eac3Settings& WithCodingMode(Eac3CodingMode&& value) { SetCodingMode(std::move(value)); return *this;}
177 
178 
179     /**
180      * When set to enabled, activates a DC highpass filter for all input channels.
181      */
GetDcFilter()182     inline const Eac3DcFilter& GetDcFilter() const{ return m_dcFilter; }
183 
184     /**
185      * When set to enabled, activates a DC highpass filter for all input channels.
186      */
DcFilterHasBeenSet()187     inline bool DcFilterHasBeenSet() const { return m_dcFilterHasBeenSet; }
188 
189     /**
190      * When set to enabled, activates a DC highpass filter for all input channels.
191      */
SetDcFilter(const Eac3DcFilter & value)192     inline void SetDcFilter(const Eac3DcFilter& value) { m_dcFilterHasBeenSet = true; m_dcFilter = value; }
193 
194     /**
195      * When set to enabled, activates a DC highpass filter for all input channels.
196      */
SetDcFilter(Eac3DcFilter && value)197     inline void SetDcFilter(Eac3DcFilter&& value) { m_dcFilterHasBeenSet = true; m_dcFilter = std::move(value); }
198 
199     /**
200      * When set to enabled, activates a DC highpass filter for all input channels.
201      */
WithDcFilter(const Eac3DcFilter & value)202     inline Eac3Settings& WithDcFilter(const Eac3DcFilter& value) { SetDcFilter(value); return *this;}
203 
204     /**
205      * When set to enabled, activates a DC highpass filter for all input channels.
206      */
WithDcFilter(Eac3DcFilter && value)207     inline Eac3Settings& WithDcFilter(Eac3DcFilter&& value) { SetDcFilter(std::move(value)); return *this;}
208 
209 
210     /**
211      * Sets the dialnorm for the output. If blank and input audio is Dolby Digital
212      * Plus, dialnorm will be passed through.
213      */
GetDialnorm()214     inline int GetDialnorm() const{ return m_dialnorm; }
215 
216     /**
217      * Sets the dialnorm for the output. If blank and input audio is Dolby Digital
218      * Plus, dialnorm will be passed through.
219      */
DialnormHasBeenSet()220     inline bool DialnormHasBeenSet() const { return m_dialnormHasBeenSet; }
221 
222     /**
223      * Sets the dialnorm for the output. If blank and input audio is Dolby Digital
224      * Plus, dialnorm will be passed through.
225      */
SetDialnorm(int value)226     inline void SetDialnorm(int value) { m_dialnormHasBeenSet = true; m_dialnorm = value; }
227 
228     /**
229      * Sets the dialnorm for the output. If blank and input audio is Dolby Digital
230      * Plus, dialnorm will be passed through.
231      */
WithDialnorm(int value)232     inline Eac3Settings& WithDialnorm(int value) { SetDialnorm(value); return *this;}
233 
234 
235     /**
236      * Sets the Dolby dynamic range compression profile.
237      */
GetDrcLine()238     inline const Eac3DrcLine& GetDrcLine() const{ return m_drcLine; }
239 
240     /**
241      * Sets the Dolby dynamic range compression profile.
242      */
DrcLineHasBeenSet()243     inline bool DrcLineHasBeenSet() const { return m_drcLineHasBeenSet; }
244 
245     /**
246      * Sets the Dolby dynamic range compression profile.
247      */
SetDrcLine(const Eac3DrcLine & value)248     inline void SetDrcLine(const Eac3DrcLine& value) { m_drcLineHasBeenSet = true; m_drcLine = value; }
249 
250     /**
251      * Sets the Dolby dynamic range compression profile.
252      */
SetDrcLine(Eac3DrcLine && value)253     inline void SetDrcLine(Eac3DrcLine&& value) { m_drcLineHasBeenSet = true; m_drcLine = std::move(value); }
254 
255     /**
256      * Sets the Dolby dynamic range compression profile.
257      */
WithDrcLine(const Eac3DrcLine & value)258     inline Eac3Settings& WithDrcLine(const Eac3DrcLine& value) { SetDrcLine(value); return *this;}
259 
260     /**
261      * Sets the Dolby dynamic range compression profile.
262      */
WithDrcLine(Eac3DrcLine && value)263     inline Eac3Settings& WithDrcLine(Eac3DrcLine&& value) { SetDrcLine(std::move(value)); return *this;}
264 
265 
266     /**
267      * Sets the profile for heavy Dolby dynamic range compression, ensures that the
268      * instantaneous signal peaks do not exceed specified levels.
269      */
GetDrcRf()270     inline const Eac3DrcRf& GetDrcRf() const{ return m_drcRf; }
271 
272     /**
273      * Sets the profile for heavy Dolby dynamic range compression, ensures that the
274      * instantaneous signal peaks do not exceed specified levels.
275      */
DrcRfHasBeenSet()276     inline bool DrcRfHasBeenSet() const { return m_drcRfHasBeenSet; }
277 
278     /**
279      * Sets the profile for heavy Dolby dynamic range compression, ensures that the
280      * instantaneous signal peaks do not exceed specified levels.
281      */
SetDrcRf(const Eac3DrcRf & value)282     inline void SetDrcRf(const Eac3DrcRf& value) { m_drcRfHasBeenSet = true; m_drcRf = value; }
283 
284     /**
285      * Sets the profile for heavy Dolby dynamic range compression, ensures that the
286      * instantaneous signal peaks do not exceed specified levels.
287      */
SetDrcRf(Eac3DrcRf && value)288     inline void SetDrcRf(Eac3DrcRf&& value) { m_drcRfHasBeenSet = true; m_drcRf = std::move(value); }
289 
290     /**
291      * Sets the profile for heavy Dolby dynamic range compression, ensures that the
292      * instantaneous signal peaks do not exceed specified levels.
293      */
WithDrcRf(const Eac3DrcRf & value)294     inline Eac3Settings& WithDrcRf(const Eac3DrcRf& value) { SetDrcRf(value); return *this;}
295 
296     /**
297      * Sets the profile for heavy Dolby dynamic range compression, ensures that the
298      * instantaneous signal peaks do not exceed specified levels.
299      */
WithDrcRf(Eac3DrcRf && value)300     inline Eac3Settings& WithDrcRf(Eac3DrcRf&& value) { SetDrcRf(std::move(value)); return *this;}
301 
302 
303     /**
304      * When encoding 3/2 audio, setting to lfe enables the LFE channel
305      */
GetLfeControl()306     inline const Eac3LfeControl& GetLfeControl() const{ return m_lfeControl; }
307 
308     /**
309      * When encoding 3/2 audio, setting to lfe enables the LFE channel
310      */
LfeControlHasBeenSet()311     inline bool LfeControlHasBeenSet() const { return m_lfeControlHasBeenSet; }
312 
313     /**
314      * When encoding 3/2 audio, setting to lfe enables the LFE channel
315      */
SetLfeControl(const Eac3LfeControl & value)316     inline void SetLfeControl(const Eac3LfeControl& value) { m_lfeControlHasBeenSet = true; m_lfeControl = value; }
317 
318     /**
319      * When encoding 3/2 audio, setting to lfe enables the LFE channel
320      */
SetLfeControl(Eac3LfeControl && value)321     inline void SetLfeControl(Eac3LfeControl&& value) { m_lfeControlHasBeenSet = true; m_lfeControl = std::move(value); }
322 
323     /**
324      * When encoding 3/2 audio, setting to lfe enables the LFE channel
325      */
WithLfeControl(const Eac3LfeControl & value)326     inline Eac3Settings& WithLfeControl(const Eac3LfeControl& value) { SetLfeControl(value); return *this;}
327 
328     /**
329      * When encoding 3/2 audio, setting to lfe enables the LFE channel
330      */
WithLfeControl(Eac3LfeControl && value)331     inline Eac3Settings& WithLfeControl(Eac3LfeControl&& value) { SetLfeControl(std::move(value)); return *this;}
332 
333 
334     /**
335      * When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to
336      * encoding. Only valid with codingMode32 coding mode.
337      */
GetLfeFilter()338     inline const Eac3LfeFilter& GetLfeFilter() const{ return m_lfeFilter; }
339 
340     /**
341      * When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to
342      * encoding. Only valid with codingMode32 coding mode.
343      */
LfeFilterHasBeenSet()344     inline bool LfeFilterHasBeenSet() const { return m_lfeFilterHasBeenSet; }
345 
346     /**
347      * When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to
348      * encoding. Only valid with codingMode32 coding mode.
349      */
SetLfeFilter(const Eac3LfeFilter & value)350     inline void SetLfeFilter(const Eac3LfeFilter& value) { m_lfeFilterHasBeenSet = true; m_lfeFilter = value; }
351 
352     /**
353      * When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to
354      * encoding. Only valid with codingMode32 coding mode.
355      */
SetLfeFilter(Eac3LfeFilter && value)356     inline void SetLfeFilter(Eac3LfeFilter&& value) { m_lfeFilterHasBeenSet = true; m_lfeFilter = std::move(value); }
357 
358     /**
359      * When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to
360      * encoding. Only valid with codingMode32 coding mode.
361      */
WithLfeFilter(const Eac3LfeFilter & value)362     inline Eac3Settings& WithLfeFilter(const Eac3LfeFilter& value) { SetLfeFilter(value); return *this;}
363 
364     /**
365      * When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to
366      * encoding. Only valid with codingMode32 coding mode.
367      */
WithLfeFilter(Eac3LfeFilter && value)368     inline Eac3Settings& WithLfeFilter(Eac3LfeFilter&& value) { SetLfeFilter(std::move(value)); return *this;}
369 
370 
371     /**
372      * Left only/Right only center mix level. Only used for 3/2 coding mode.
373      */
GetLoRoCenterMixLevel()374     inline double GetLoRoCenterMixLevel() const{ return m_loRoCenterMixLevel; }
375 
376     /**
377      * Left only/Right only center mix level. Only used for 3/2 coding mode.
378      */
LoRoCenterMixLevelHasBeenSet()379     inline bool LoRoCenterMixLevelHasBeenSet() const { return m_loRoCenterMixLevelHasBeenSet; }
380 
381     /**
382      * Left only/Right only center mix level. Only used for 3/2 coding mode.
383      */
SetLoRoCenterMixLevel(double value)384     inline void SetLoRoCenterMixLevel(double value) { m_loRoCenterMixLevelHasBeenSet = true; m_loRoCenterMixLevel = value; }
385 
386     /**
387      * Left only/Right only center mix level. Only used for 3/2 coding mode.
388      */
WithLoRoCenterMixLevel(double value)389     inline Eac3Settings& WithLoRoCenterMixLevel(double value) { SetLoRoCenterMixLevel(value); return *this;}
390 
391 
392     /**
393      * Left only/Right only surround mix level. Only used for 3/2 coding mode.
394      */
GetLoRoSurroundMixLevel()395     inline double GetLoRoSurroundMixLevel() const{ return m_loRoSurroundMixLevel; }
396 
397     /**
398      * Left only/Right only surround mix level. Only used for 3/2 coding mode.
399      */
LoRoSurroundMixLevelHasBeenSet()400     inline bool LoRoSurroundMixLevelHasBeenSet() const { return m_loRoSurroundMixLevelHasBeenSet; }
401 
402     /**
403      * Left only/Right only surround mix level. Only used for 3/2 coding mode.
404      */
SetLoRoSurroundMixLevel(double value)405     inline void SetLoRoSurroundMixLevel(double value) { m_loRoSurroundMixLevelHasBeenSet = true; m_loRoSurroundMixLevel = value; }
406 
407     /**
408      * Left only/Right only surround mix level. Only used for 3/2 coding mode.
409      */
WithLoRoSurroundMixLevel(double value)410     inline Eac3Settings& WithLoRoSurroundMixLevel(double value) { SetLoRoSurroundMixLevel(value); return *this;}
411 
412 
413     /**
414      * Left total/Right total center mix level. Only used for 3/2 coding mode.
415      */
GetLtRtCenterMixLevel()416     inline double GetLtRtCenterMixLevel() const{ return m_ltRtCenterMixLevel; }
417 
418     /**
419      * Left total/Right total center mix level. Only used for 3/2 coding mode.
420      */
LtRtCenterMixLevelHasBeenSet()421     inline bool LtRtCenterMixLevelHasBeenSet() const { return m_ltRtCenterMixLevelHasBeenSet; }
422 
423     /**
424      * Left total/Right total center mix level. Only used for 3/2 coding mode.
425      */
SetLtRtCenterMixLevel(double value)426     inline void SetLtRtCenterMixLevel(double value) { m_ltRtCenterMixLevelHasBeenSet = true; m_ltRtCenterMixLevel = value; }
427 
428     /**
429      * Left total/Right total center mix level. Only used for 3/2 coding mode.
430      */
WithLtRtCenterMixLevel(double value)431     inline Eac3Settings& WithLtRtCenterMixLevel(double value) { SetLtRtCenterMixLevel(value); return *this;}
432 
433 
434     /**
435      * Left total/Right total surround mix level. Only used for 3/2 coding mode.
436      */
GetLtRtSurroundMixLevel()437     inline double GetLtRtSurroundMixLevel() const{ return m_ltRtSurroundMixLevel; }
438 
439     /**
440      * Left total/Right total surround mix level. Only used for 3/2 coding mode.
441      */
LtRtSurroundMixLevelHasBeenSet()442     inline bool LtRtSurroundMixLevelHasBeenSet() const { return m_ltRtSurroundMixLevelHasBeenSet; }
443 
444     /**
445      * Left total/Right total surround mix level. Only used for 3/2 coding mode.
446      */
SetLtRtSurroundMixLevel(double value)447     inline void SetLtRtSurroundMixLevel(double value) { m_ltRtSurroundMixLevelHasBeenSet = true; m_ltRtSurroundMixLevel = value; }
448 
449     /**
450      * Left total/Right total surround mix level. Only used for 3/2 coding mode.
451      */
WithLtRtSurroundMixLevel(double value)452     inline Eac3Settings& WithLtRtSurroundMixLevel(double value) { SetLtRtSurroundMixLevel(value); return *this;}
453 
454 
455     /**
456      * When set to followInput, encoder metadata will be sourced from the DD, DD+, or
457      * DolbyE decoder that supplied this audio data. If audio was not supplied from one
458      * of these streams, then the static metadata settings will be used.
459      */
GetMetadataControl()460     inline const Eac3MetadataControl& GetMetadataControl() const{ return m_metadataControl; }
461 
462     /**
463      * When set to followInput, encoder metadata will be sourced from the DD, DD+, or
464      * DolbyE decoder that supplied this audio data. If audio was not supplied from one
465      * of these streams, then the static metadata settings will be used.
466      */
MetadataControlHasBeenSet()467     inline bool MetadataControlHasBeenSet() const { return m_metadataControlHasBeenSet; }
468 
469     /**
470      * When set to followInput, encoder metadata will be sourced from the DD, DD+, or
471      * DolbyE decoder that supplied this audio data. If audio was not supplied from one
472      * of these streams, then the static metadata settings will be used.
473      */
SetMetadataControl(const Eac3MetadataControl & value)474     inline void SetMetadataControl(const Eac3MetadataControl& value) { m_metadataControlHasBeenSet = true; m_metadataControl = value; }
475 
476     /**
477      * When set to followInput, encoder metadata will be sourced from the DD, DD+, or
478      * DolbyE decoder that supplied this audio data. If audio was not supplied from one
479      * of these streams, then the static metadata settings will be used.
480      */
SetMetadataControl(Eac3MetadataControl && value)481     inline void SetMetadataControl(Eac3MetadataControl&& value) { m_metadataControlHasBeenSet = true; m_metadataControl = std::move(value); }
482 
483     /**
484      * When set to followInput, encoder metadata will be sourced from the DD, DD+, or
485      * DolbyE decoder that supplied this audio data. If audio was not supplied from one
486      * of these streams, then the static metadata settings will be used.
487      */
WithMetadataControl(const Eac3MetadataControl & value)488     inline Eac3Settings& WithMetadataControl(const Eac3MetadataControl& value) { SetMetadataControl(value); return *this;}
489 
490     /**
491      * When set to followInput, encoder metadata will be sourced from the DD, DD+, or
492      * DolbyE decoder that supplied this audio data. If audio was not supplied from one
493      * of these streams, then the static metadata settings will be used.
494      */
WithMetadataControl(Eac3MetadataControl && value)495     inline Eac3Settings& WithMetadataControl(Eac3MetadataControl&& value) { SetMetadataControl(std::move(value)); return *this;}
496 
497 
498     /**
499      * When set to whenPossible, input DD+ audio will be passed through if it is
500      * present on the input. This detection is dynamic over the life of the transcode.
501      * Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
502      * output as the system alternates between passthrough and encoding.
503      */
GetPassthroughControl()504     inline const Eac3PassthroughControl& GetPassthroughControl() const{ return m_passthroughControl; }
505 
506     /**
507      * When set to whenPossible, input DD+ audio will be passed through if it is
508      * present on the input. This detection is dynamic over the life of the transcode.
509      * Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
510      * output as the system alternates between passthrough and encoding.
511      */
PassthroughControlHasBeenSet()512     inline bool PassthroughControlHasBeenSet() const { return m_passthroughControlHasBeenSet; }
513 
514     /**
515      * When set to whenPossible, input DD+ audio will be passed through if it is
516      * present on the input. This detection is dynamic over the life of the transcode.
517      * Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
518      * output as the system alternates between passthrough and encoding.
519      */
SetPassthroughControl(const Eac3PassthroughControl & value)520     inline void SetPassthroughControl(const Eac3PassthroughControl& value) { m_passthroughControlHasBeenSet = true; m_passthroughControl = value; }
521 
522     /**
523      * When set to whenPossible, input DD+ audio will be passed through if it is
524      * present on the input. This detection is dynamic over the life of the transcode.
525      * Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
526      * output as the system alternates between passthrough and encoding.
527      */
SetPassthroughControl(Eac3PassthroughControl && value)528     inline void SetPassthroughControl(Eac3PassthroughControl&& value) { m_passthroughControlHasBeenSet = true; m_passthroughControl = std::move(value); }
529 
530     /**
531      * When set to whenPossible, input DD+ audio will be passed through if it is
532      * present on the input. This detection is dynamic over the life of the transcode.
533      * Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
534      * output as the system alternates between passthrough and encoding.
535      */
WithPassthroughControl(const Eac3PassthroughControl & value)536     inline Eac3Settings& WithPassthroughControl(const Eac3PassthroughControl& value) { SetPassthroughControl(value); return *this;}
537 
538     /**
539      * When set to whenPossible, input DD+ audio will be passed through if it is
540      * present on the input. This detection is dynamic over the life of the transcode.
541      * Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+
542      * output as the system alternates between passthrough and encoding.
543      */
WithPassthroughControl(Eac3PassthroughControl && value)544     inline Eac3Settings& WithPassthroughControl(Eac3PassthroughControl&& value) { SetPassthroughControl(std::move(value)); return *this;}
545 
546 
547     /**
548      * When set to shift90Degrees, applies a 90-degree phase shift to the surround
549      * channels. Only used for 3/2 coding mode.
550      */
GetPhaseControl()551     inline const Eac3PhaseControl& GetPhaseControl() const{ return m_phaseControl; }
552 
553     /**
554      * When set to shift90Degrees, applies a 90-degree phase shift to the surround
555      * channels. Only used for 3/2 coding mode.
556      */
PhaseControlHasBeenSet()557     inline bool PhaseControlHasBeenSet() const { return m_phaseControlHasBeenSet; }
558 
559     /**
560      * When set to shift90Degrees, applies a 90-degree phase shift to the surround
561      * channels. Only used for 3/2 coding mode.
562      */
SetPhaseControl(const Eac3PhaseControl & value)563     inline void SetPhaseControl(const Eac3PhaseControl& value) { m_phaseControlHasBeenSet = true; m_phaseControl = value; }
564 
565     /**
566      * When set to shift90Degrees, applies a 90-degree phase shift to the surround
567      * channels. Only used for 3/2 coding mode.
568      */
SetPhaseControl(Eac3PhaseControl && value)569     inline void SetPhaseControl(Eac3PhaseControl&& value) { m_phaseControlHasBeenSet = true; m_phaseControl = std::move(value); }
570 
571     /**
572      * When set to shift90Degrees, applies a 90-degree phase shift to the surround
573      * channels. Only used for 3/2 coding mode.
574      */
WithPhaseControl(const Eac3PhaseControl & value)575     inline Eac3Settings& WithPhaseControl(const Eac3PhaseControl& value) { SetPhaseControl(value); return *this;}
576 
577     /**
578      * When set to shift90Degrees, applies a 90-degree phase shift to the surround
579      * channels. Only used for 3/2 coding mode.
580      */
WithPhaseControl(Eac3PhaseControl && value)581     inline Eac3Settings& WithPhaseControl(Eac3PhaseControl&& value) { SetPhaseControl(std::move(value)); return *this;}
582 
583 
584     /**
585      * Stereo downmix preference. Only used for 3/2 coding mode.
586      */
GetStereoDownmix()587     inline const Eac3StereoDownmix& GetStereoDownmix() const{ return m_stereoDownmix; }
588 
589     /**
590      * Stereo downmix preference. Only used for 3/2 coding mode.
591      */
StereoDownmixHasBeenSet()592     inline bool StereoDownmixHasBeenSet() const { return m_stereoDownmixHasBeenSet; }
593 
594     /**
595      * Stereo downmix preference. Only used for 3/2 coding mode.
596      */
SetStereoDownmix(const Eac3StereoDownmix & value)597     inline void SetStereoDownmix(const Eac3StereoDownmix& value) { m_stereoDownmixHasBeenSet = true; m_stereoDownmix = value; }
598 
599     /**
600      * Stereo downmix preference. Only used for 3/2 coding mode.
601      */
SetStereoDownmix(Eac3StereoDownmix && value)602     inline void SetStereoDownmix(Eac3StereoDownmix&& value) { m_stereoDownmixHasBeenSet = true; m_stereoDownmix = std::move(value); }
603 
604     /**
605      * Stereo downmix preference. Only used for 3/2 coding mode.
606      */
WithStereoDownmix(const Eac3StereoDownmix & value)607     inline Eac3Settings& WithStereoDownmix(const Eac3StereoDownmix& value) { SetStereoDownmix(value); return *this;}
608 
609     /**
610      * Stereo downmix preference. Only used for 3/2 coding mode.
611      */
WithStereoDownmix(Eac3StereoDownmix && value)612     inline Eac3Settings& WithStereoDownmix(Eac3StereoDownmix&& value) { SetStereoDownmix(std::move(value)); return *this;}
613 
614 
615     /**
616      * When encoding 3/2 audio, sets whether an extra center back surround channel is
617      * matrix encoded into the left and right surround channels.
618      */
GetSurroundExMode()619     inline const Eac3SurroundExMode& GetSurroundExMode() const{ return m_surroundExMode; }
620 
621     /**
622      * When encoding 3/2 audio, sets whether an extra center back surround channel is
623      * matrix encoded into the left and right surround channels.
624      */
SurroundExModeHasBeenSet()625     inline bool SurroundExModeHasBeenSet() const { return m_surroundExModeHasBeenSet; }
626 
627     /**
628      * When encoding 3/2 audio, sets whether an extra center back surround channel is
629      * matrix encoded into the left and right surround channels.
630      */
SetSurroundExMode(const Eac3SurroundExMode & value)631     inline void SetSurroundExMode(const Eac3SurroundExMode& value) { m_surroundExModeHasBeenSet = true; m_surroundExMode = value; }
632 
633     /**
634      * When encoding 3/2 audio, sets whether an extra center back surround channel is
635      * matrix encoded into the left and right surround channels.
636      */
SetSurroundExMode(Eac3SurroundExMode && value)637     inline void SetSurroundExMode(Eac3SurroundExMode&& value) { m_surroundExModeHasBeenSet = true; m_surroundExMode = std::move(value); }
638 
639     /**
640      * When encoding 3/2 audio, sets whether an extra center back surround channel is
641      * matrix encoded into the left and right surround channels.
642      */
WithSurroundExMode(const Eac3SurroundExMode & value)643     inline Eac3Settings& WithSurroundExMode(const Eac3SurroundExMode& value) { SetSurroundExMode(value); return *this;}
644 
645     /**
646      * When encoding 3/2 audio, sets whether an extra center back surround channel is
647      * matrix encoded into the left and right surround channels.
648      */
WithSurroundExMode(Eac3SurroundExMode && value)649     inline Eac3Settings& WithSurroundExMode(Eac3SurroundExMode&& value) { SetSurroundExMode(std::move(value)); return *this;}
650 
651 
652     /**
653      * When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the
654      * two channels.
655      */
GetSurroundMode()656     inline const Eac3SurroundMode& GetSurroundMode() const{ return m_surroundMode; }
657 
658     /**
659      * When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the
660      * two channels.
661      */
SurroundModeHasBeenSet()662     inline bool SurroundModeHasBeenSet() const { return m_surroundModeHasBeenSet; }
663 
664     /**
665      * When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the
666      * two channels.
667      */
SetSurroundMode(const Eac3SurroundMode & value)668     inline void SetSurroundMode(const Eac3SurroundMode& value) { m_surroundModeHasBeenSet = true; m_surroundMode = value; }
669 
670     /**
671      * When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the
672      * two channels.
673      */
SetSurroundMode(Eac3SurroundMode && value)674     inline void SetSurroundMode(Eac3SurroundMode&& value) { m_surroundModeHasBeenSet = true; m_surroundMode = std::move(value); }
675 
676     /**
677      * When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the
678      * two channels.
679      */
WithSurroundMode(const Eac3SurroundMode & value)680     inline Eac3Settings& WithSurroundMode(const Eac3SurroundMode& value) { SetSurroundMode(value); return *this;}
681 
682     /**
683      * When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the
684      * two channels.
685      */
WithSurroundMode(Eac3SurroundMode && value)686     inline Eac3Settings& WithSurroundMode(Eac3SurroundMode&& value) { SetSurroundMode(std::move(value)); return *this;}
687 
688   private:
689 
690     Eac3AttenuationControl m_attenuationControl;
691     bool m_attenuationControlHasBeenSet;
692 
693     double m_bitrate;
694     bool m_bitrateHasBeenSet;
695 
696     Eac3BitstreamMode m_bitstreamMode;
697     bool m_bitstreamModeHasBeenSet;
698 
699     Eac3CodingMode m_codingMode;
700     bool m_codingModeHasBeenSet;
701 
702     Eac3DcFilter m_dcFilter;
703     bool m_dcFilterHasBeenSet;
704 
705     int m_dialnorm;
706     bool m_dialnormHasBeenSet;
707 
708     Eac3DrcLine m_drcLine;
709     bool m_drcLineHasBeenSet;
710 
711     Eac3DrcRf m_drcRf;
712     bool m_drcRfHasBeenSet;
713 
714     Eac3LfeControl m_lfeControl;
715     bool m_lfeControlHasBeenSet;
716 
717     Eac3LfeFilter m_lfeFilter;
718     bool m_lfeFilterHasBeenSet;
719 
720     double m_loRoCenterMixLevel;
721     bool m_loRoCenterMixLevelHasBeenSet;
722 
723     double m_loRoSurroundMixLevel;
724     bool m_loRoSurroundMixLevelHasBeenSet;
725 
726     double m_ltRtCenterMixLevel;
727     bool m_ltRtCenterMixLevelHasBeenSet;
728 
729     double m_ltRtSurroundMixLevel;
730     bool m_ltRtSurroundMixLevelHasBeenSet;
731 
732     Eac3MetadataControl m_metadataControl;
733     bool m_metadataControlHasBeenSet;
734 
735     Eac3PassthroughControl m_passthroughControl;
736     bool m_passthroughControlHasBeenSet;
737 
738     Eac3PhaseControl m_phaseControl;
739     bool m_phaseControlHasBeenSet;
740 
741     Eac3StereoDownmix m_stereoDownmix;
742     bool m_stereoDownmixHasBeenSet;
743 
744     Eac3SurroundExMode m_surroundExMode;
745     bool m_surroundExModeHasBeenSet;
746 
747     Eac3SurroundMode m_surroundMode;
748     bool m_surroundModeHasBeenSet;
749   };
750 
751 } // namespace Model
752 } // namespace MediaLive
753 } // namespace Aws
754