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 
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 MediaLive
20 {
21 namespace Model
22 {
23 
24   /**
25    * Statmux rate control settings<p><h3>See Also:</h3>   <a
26    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/MultiplexStatmuxVideoSettings">AWS
27    * API Reference</a></p>
28    */
29   class AWS_MEDIALIVE_API MultiplexStatmuxVideoSettings
30   {
31   public:
32     MultiplexStatmuxVideoSettings();
33     MultiplexStatmuxVideoSettings(Aws::Utils::Json::JsonView jsonValue);
34     MultiplexStatmuxVideoSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
35     Aws::Utils::Json::JsonValue Jsonize() const;
36 
37 
38     /**
39      * Maximum statmux bitrate.
40      */
GetMaximumBitrate()41     inline int GetMaximumBitrate() const{ return m_maximumBitrate; }
42 
43     /**
44      * Maximum statmux bitrate.
45      */
MaximumBitrateHasBeenSet()46     inline bool MaximumBitrateHasBeenSet() const { return m_maximumBitrateHasBeenSet; }
47 
48     /**
49      * Maximum statmux bitrate.
50      */
SetMaximumBitrate(int value)51     inline void SetMaximumBitrate(int value) { m_maximumBitrateHasBeenSet = true; m_maximumBitrate = value; }
52 
53     /**
54      * Maximum statmux bitrate.
55      */
WithMaximumBitrate(int value)56     inline MultiplexStatmuxVideoSettings& WithMaximumBitrate(int value) { SetMaximumBitrate(value); return *this;}
57 
58 
59     /**
60      * Minimum statmux bitrate.
61      */
GetMinimumBitrate()62     inline int GetMinimumBitrate() const{ return m_minimumBitrate; }
63 
64     /**
65      * Minimum statmux bitrate.
66      */
MinimumBitrateHasBeenSet()67     inline bool MinimumBitrateHasBeenSet() const { return m_minimumBitrateHasBeenSet; }
68 
69     /**
70      * Minimum statmux bitrate.
71      */
SetMinimumBitrate(int value)72     inline void SetMinimumBitrate(int value) { m_minimumBitrateHasBeenSet = true; m_minimumBitrate = value; }
73 
74     /**
75      * Minimum statmux bitrate.
76      */
WithMinimumBitrate(int value)77     inline MultiplexStatmuxVideoSettings& WithMinimumBitrate(int value) { SetMinimumBitrate(value); return *this;}
78 
79 
80     /**
81      * The purpose of the priority is to use a combination of the\nmultiplex rate
82      * control algorithm and the QVBR capability of the\nencoder to prioritize the
83      * video quality of some channels in a\nmultiplex over others.  Channels that have
84      * a higher priority will\nget higher video quality at the expense of the video
85      * quality of\nother channels in the multiplex with lower priority.
86      */
GetPriority()87     inline int GetPriority() const{ return m_priority; }
88 
89     /**
90      * The purpose of the priority is to use a combination of the\nmultiplex rate
91      * control algorithm and the QVBR capability of the\nencoder to prioritize the
92      * video quality of some channels in a\nmultiplex over others.  Channels that have
93      * a higher priority will\nget higher video quality at the expense of the video
94      * quality of\nother channels in the multiplex with lower priority.
95      */
PriorityHasBeenSet()96     inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; }
97 
98     /**
99      * The purpose of the priority is to use a combination of the\nmultiplex rate
100      * control algorithm and the QVBR capability of the\nencoder to prioritize the
101      * video quality of some channels in a\nmultiplex over others.  Channels that have
102      * a higher priority will\nget higher video quality at the expense of the video
103      * quality of\nother channels in the multiplex with lower priority.
104      */
SetPriority(int value)105     inline void SetPriority(int value) { m_priorityHasBeenSet = true; m_priority = value; }
106 
107     /**
108      * The purpose of the priority is to use a combination of the\nmultiplex rate
109      * control algorithm and the QVBR capability of the\nencoder to prioritize the
110      * video quality of some channels in a\nmultiplex over others.  Channels that have
111      * a higher priority will\nget higher video quality at the expense of the video
112      * quality of\nother channels in the multiplex with lower priority.
113      */
WithPriority(int value)114     inline MultiplexStatmuxVideoSettings& WithPriority(int value) { SetPriority(value); return *this;}
115 
116   private:
117 
118     int m_maximumBitrate;
119     bool m_maximumBitrateHasBeenSet;
120 
121     int m_minimumBitrate;
122     bool m_minimumBitrateHasBeenSet;
123 
124     int m_priority;
125     bool m_priorityHasBeenSet;
126   };
127 
128 } // namespace Model
129 } // namespace MediaLive
130 } // namespace Aws
131