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 AudioDescriptions>CodecSettings, to the value
26    * Vorbis.<p><h3>See Also:</h3>   <a
27    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/VorbisSettings">AWS
28    * API Reference</a></p>
29    */
30   class AWS_MEDIACONVERT_API VorbisSettings
31   {
32   public:
33     VorbisSettings();
34     VorbisSettings(Aws::Utils::Json::JsonView jsonValue);
35     VorbisSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
36     Aws::Utils::Json::JsonValue Jsonize() const;
37 
38 
39     /**
40      * Optional. Specify the number of channels in this output audio track. Choosing
41      * Mono on the console gives you 1 output channel; choosing Stereo gives you 2. In
42      * the API, valid values are 1 and 2. The default value is 2.
43      */
GetChannels()44     inline int GetChannels() const{ return m_channels; }
45 
46     /**
47      * Optional. Specify the number of channels in this output audio track. Choosing
48      * Mono on the console gives you 1 output channel; choosing Stereo gives you 2. In
49      * the API, valid values are 1 and 2. The default value is 2.
50      */
ChannelsHasBeenSet()51     inline bool ChannelsHasBeenSet() const { return m_channelsHasBeenSet; }
52 
53     /**
54      * Optional. Specify the number of channels in this output audio track. Choosing
55      * Mono on the console gives you 1 output channel; choosing Stereo gives you 2. In
56      * the API, valid values are 1 and 2. The default value is 2.
57      */
SetChannels(int value)58     inline void SetChannels(int value) { m_channelsHasBeenSet = true; m_channels = value; }
59 
60     /**
61      * Optional. Specify the number of channels in this output audio track. Choosing
62      * Mono on the console gives you 1 output channel; choosing Stereo gives you 2. In
63      * the API, valid values are 1 and 2. The default value is 2.
64      */
WithChannels(int value)65     inline VorbisSettings& WithChannels(int value) { SetChannels(value); return *this;}
66 
67 
68     /**
69      * Optional. Specify the audio sample rate in Hz. Valid values are 22050, 32000,
70      * 44100, and 48000. The default value is 48000.
71      */
GetSampleRate()72     inline int GetSampleRate() const{ return m_sampleRate; }
73 
74     /**
75      * Optional. Specify the audio sample rate in Hz. Valid values are 22050, 32000,
76      * 44100, and 48000. The default value is 48000.
77      */
SampleRateHasBeenSet()78     inline bool SampleRateHasBeenSet() const { return m_sampleRateHasBeenSet; }
79 
80     /**
81      * Optional. Specify the audio sample rate in Hz. Valid values are 22050, 32000,
82      * 44100, and 48000. The default value is 48000.
83      */
SetSampleRate(int value)84     inline void SetSampleRate(int value) { m_sampleRateHasBeenSet = true; m_sampleRate = value; }
85 
86     /**
87      * Optional. Specify the audio sample rate in Hz. Valid values are 22050, 32000,
88      * 44100, and 48000. The default value is 48000.
89      */
WithSampleRate(int value)90     inline VorbisSettings& WithSampleRate(int value) { SetSampleRate(value); return *this;}
91 
92 
93     /**
94      * Optional. Specify the variable audio quality of this Vorbis output from -1
95      * (lowest quality, ~45 kbit/s) to 10 (highest quality, ~500 kbit/s). The default
96      * value is 4 (~128 kbit/s). Values 5 and 6 are approximately 160 and 192 kbit/s,
97      * respectively.
98      */
GetVbrQuality()99     inline int GetVbrQuality() const{ return m_vbrQuality; }
100 
101     /**
102      * Optional. Specify the variable audio quality of this Vorbis output from -1
103      * (lowest quality, ~45 kbit/s) to 10 (highest quality, ~500 kbit/s). The default
104      * value is 4 (~128 kbit/s). Values 5 and 6 are approximately 160 and 192 kbit/s,
105      * respectively.
106      */
VbrQualityHasBeenSet()107     inline bool VbrQualityHasBeenSet() const { return m_vbrQualityHasBeenSet; }
108 
109     /**
110      * Optional. Specify the variable audio quality of this Vorbis output from -1
111      * (lowest quality, ~45 kbit/s) to 10 (highest quality, ~500 kbit/s). The default
112      * value is 4 (~128 kbit/s). Values 5 and 6 are approximately 160 and 192 kbit/s,
113      * respectively.
114      */
SetVbrQuality(int value)115     inline void SetVbrQuality(int value) { m_vbrQualityHasBeenSet = true; m_vbrQuality = value; }
116 
117     /**
118      * Optional. Specify the variable audio quality of this Vorbis output from -1
119      * (lowest quality, ~45 kbit/s) to 10 (highest quality, ~500 kbit/s). The default
120      * value is 4 (~128 kbit/s). Values 5 and 6 are approximately 160 and 192 kbit/s,
121      * respectively.
122      */
WithVbrQuality(int value)123     inline VorbisSettings& WithVbrQuality(int value) { SetVbrQuality(value); return *this;}
124 
125   private:
126 
127     int m_channels;
128     bool m_channelsHasBeenSet;
129 
130     int m_sampleRate;
131     bool m_sampleRateHasBeenSet;
132 
133     int m_vbrQuality;
134     bool m_vbrQualityHasBeenSet;
135   };
136 
137 } // namespace Model
138 } // namespace MediaConvert
139 } // namespace Aws
140