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