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/MultiplexStatmuxVideoSettings.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace MediaLive
22 {
23 namespace Model
24 {
25 
26   /**
27    * The video configuration for each program in a multiplex.<p><h3>See Also:</h3>
28    * <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/MultiplexVideoSettings">AWS
30    * API Reference</a></p>
31    */
32   class AWS_MEDIALIVE_API MultiplexVideoSettings
33   {
34   public:
35     MultiplexVideoSettings();
36     MultiplexVideoSettings(Aws::Utils::Json::JsonView jsonValue);
37     MultiplexVideoSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * The constant bitrate configuration for the video encode.
43 When this field is
44      * defined, StatmuxSettings must be undefined.
45      */
GetConstantBitrate()46     inline int GetConstantBitrate() const{ return m_constantBitrate; }
47 
48     /**
49      * The constant bitrate configuration for the video encode.
50 When this field is
51      * defined, StatmuxSettings must be undefined.
52      */
ConstantBitrateHasBeenSet()53     inline bool ConstantBitrateHasBeenSet() const { return m_constantBitrateHasBeenSet; }
54 
55     /**
56      * The constant bitrate configuration for the video encode.
57 When this field is
58      * defined, StatmuxSettings must be undefined.
59      */
SetConstantBitrate(int value)60     inline void SetConstantBitrate(int value) { m_constantBitrateHasBeenSet = true; m_constantBitrate = value; }
61 
62     /**
63      * The constant bitrate configuration for the video encode.
64 When this field is
65      * defined, StatmuxSettings must be undefined.
66      */
WithConstantBitrate(int value)67     inline MultiplexVideoSettings& WithConstantBitrate(int value) { SetConstantBitrate(value); return *this;}
68 
69 
70     /**
71      * Statmux rate control settings.
72 When this field is defined, ConstantBitrate must
73      * be undefined.
74      */
GetStatmuxSettings()75     inline const MultiplexStatmuxVideoSettings& GetStatmuxSettings() const{ return m_statmuxSettings; }
76 
77     /**
78      * Statmux rate control settings.
79 When this field is defined, ConstantBitrate must
80      * be undefined.
81      */
StatmuxSettingsHasBeenSet()82     inline bool StatmuxSettingsHasBeenSet() const { return m_statmuxSettingsHasBeenSet; }
83 
84     /**
85      * Statmux rate control settings.
86 When this field is defined, ConstantBitrate must
87      * be undefined.
88      */
SetStatmuxSettings(const MultiplexStatmuxVideoSettings & value)89     inline void SetStatmuxSettings(const MultiplexStatmuxVideoSettings& value) { m_statmuxSettingsHasBeenSet = true; m_statmuxSettings = value; }
90 
91     /**
92      * Statmux rate control settings.
93 When this field is defined, ConstantBitrate must
94      * be undefined.
95      */
SetStatmuxSettings(MultiplexStatmuxVideoSettings && value)96     inline void SetStatmuxSettings(MultiplexStatmuxVideoSettings&& value) { m_statmuxSettingsHasBeenSet = true; m_statmuxSettings = std::move(value); }
97 
98     /**
99      * Statmux rate control settings.
100 When this field is defined, ConstantBitrate must
101      * be undefined.
102      */
WithStatmuxSettings(const MultiplexStatmuxVideoSettings & value)103     inline MultiplexVideoSettings& WithStatmuxSettings(const MultiplexStatmuxVideoSettings& value) { SetStatmuxSettings(value); return *this;}
104 
105     /**
106      * Statmux rate control settings.
107 When this field is defined, ConstantBitrate must
108      * be undefined.
109      */
WithStatmuxSettings(MultiplexStatmuxVideoSettings && value)110     inline MultiplexVideoSettings& WithStatmuxSettings(MultiplexStatmuxVideoSettings&& value) { SetStatmuxSettings(std::move(value)); return *this;}
111 
112   private:
113 
114     int m_constantBitrate;
115     bool m_constantBitrateHasBeenSet;
116 
117     MultiplexStatmuxVideoSettings m_statmuxSettings;
118     bool m_statmuxSettingsHasBeenSet;
119   };
120 
121 } // namespace Model
122 } // namespace MediaLive
123 } // namespace Aws
124