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/UdpContainerSettings.h> 9 #include <aws/medialive/model/OutputLocationRef.h> 10 #include <aws/medialive/model/FecOutputSettings.h> 11 #include <utility> 12 13 namespace Aws 14 { 15 namespace Utils 16 { 17 namespace Json 18 { 19 class JsonValue; 20 class JsonView; 21 } // namespace Json 22 } // namespace Utils 23 namespace MediaLive 24 { 25 namespace Model 26 { 27 28 /** 29 * Udp Output Settings<p><h3>See Also:</h3> <a 30 * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/UdpOutputSettings">AWS 31 * API Reference</a></p> 32 */ 33 class AWS_MEDIALIVE_API UdpOutputSettings 34 { 35 public: 36 UdpOutputSettings(); 37 UdpOutputSettings(Aws::Utils::Json::JsonView jsonValue); 38 UdpOutputSettings& operator=(Aws::Utils::Json::JsonView jsonValue); 39 Aws::Utils::Json::JsonValue Jsonize() const; 40 41 42 /** 43 * UDP output buffering in milliseconds. Larger values increase latency through the 44 * transcoder but simultaneously assist the transcoder in maintaining a constant, 45 * low-jitter UDP/RTP output while accommodating clock recovery, input switching, 46 * input disruptions, picture reordering, etc. 47 */ GetBufferMsec()48 inline int GetBufferMsec() const{ return m_bufferMsec; } 49 50 /** 51 * UDP output buffering in milliseconds. Larger values increase latency through the 52 * transcoder but simultaneously assist the transcoder in maintaining a constant, 53 * low-jitter UDP/RTP output while accommodating clock recovery, input switching, 54 * input disruptions, picture reordering, etc. 55 */ BufferMsecHasBeenSet()56 inline bool BufferMsecHasBeenSet() const { return m_bufferMsecHasBeenSet; } 57 58 /** 59 * UDP output buffering in milliseconds. Larger values increase latency through the 60 * transcoder but simultaneously assist the transcoder in maintaining a constant, 61 * low-jitter UDP/RTP output while accommodating clock recovery, input switching, 62 * input disruptions, picture reordering, etc. 63 */ SetBufferMsec(int value)64 inline void SetBufferMsec(int value) { m_bufferMsecHasBeenSet = true; m_bufferMsec = value; } 65 66 /** 67 * UDP output buffering in milliseconds. Larger values increase latency through the 68 * transcoder but simultaneously assist the transcoder in maintaining a constant, 69 * low-jitter UDP/RTP output while accommodating clock recovery, input switching, 70 * input disruptions, picture reordering, etc. 71 */ WithBufferMsec(int value)72 inline UdpOutputSettings& WithBufferMsec(int value) { SetBufferMsec(value); return *this;} 73 74 75 GetContainerSettings()76 inline const UdpContainerSettings& GetContainerSettings() const{ return m_containerSettings; } 77 78 ContainerSettingsHasBeenSet()79 inline bool ContainerSettingsHasBeenSet() const { return m_containerSettingsHasBeenSet; } 80 81 SetContainerSettings(const UdpContainerSettings & value)82 inline void SetContainerSettings(const UdpContainerSettings& value) { m_containerSettingsHasBeenSet = true; m_containerSettings = value; } 83 84 SetContainerSettings(UdpContainerSettings && value)85 inline void SetContainerSettings(UdpContainerSettings&& value) { m_containerSettingsHasBeenSet = true; m_containerSettings = std::move(value); } 86 87 WithContainerSettings(const UdpContainerSettings & value)88 inline UdpOutputSettings& WithContainerSettings(const UdpContainerSettings& value) { SetContainerSettings(value); return *this;} 89 90 WithContainerSettings(UdpContainerSettings && value)91 inline UdpOutputSettings& WithContainerSettings(UdpContainerSettings&& value) { SetContainerSettings(std::move(value)); return *this;} 92 93 94 /** 95 * Destination address and port number for RTP or UDP packets. Can be unicast or 96 * multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002). 97 */ GetDestination()98 inline const OutputLocationRef& GetDestination() const{ return m_destination; } 99 100 /** 101 * Destination address and port number for RTP or UDP packets. Can be unicast or 102 * multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002). 103 */ DestinationHasBeenSet()104 inline bool DestinationHasBeenSet() const { return m_destinationHasBeenSet; } 105 106 /** 107 * Destination address and port number for RTP or UDP packets. Can be unicast or 108 * multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002). 109 */ SetDestination(const OutputLocationRef & value)110 inline void SetDestination(const OutputLocationRef& value) { m_destinationHasBeenSet = true; m_destination = value; } 111 112 /** 113 * Destination address and port number for RTP or UDP packets. Can be unicast or 114 * multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002). 115 */ SetDestination(OutputLocationRef && value)116 inline void SetDestination(OutputLocationRef&& value) { m_destinationHasBeenSet = true; m_destination = std::move(value); } 117 118 /** 119 * Destination address and port number for RTP or UDP packets. Can be unicast or 120 * multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002). 121 */ WithDestination(const OutputLocationRef & value)122 inline UdpOutputSettings& WithDestination(const OutputLocationRef& value) { SetDestination(value); return *this;} 123 124 /** 125 * Destination address and port number for RTP or UDP packets. Can be unicast or 126 * multicast RTP or UDP (eg. rtp://239.10.10.10:5001 or udp://10.100.100.100:5002). 127 */ WithDestination(OutputLocationRef && value)128 inline UdpOutputSettings& WithDestination(OutputLocationRef&& value) { SetDestination(std::move(value)); return *this;} 129 130 131 /** 132 * Settings for enabling and adjusting Forward Error Correction on UDP outputs. 133 */ GetFecOutputSettings()134 inline const FecOutputSettings& GetFecOutputSettings() const{ return m_fecOutputSettings; } 135 136 /** 137 * Settings for enabling and adjusting Forward Error Correction on UDP outputs. 138 */ FecOutputSettingsHasBeenSet()139 inline bool FecOutputSettingsHasBeenSet() const { return m_fecOutputSettingsHasBeenSet; } 140 141 /** 142 * Settings for enabling and adjusting Forward Error Correction on UDP outputs. 143 */ SetFecOutputSettings(const FecOutputSettings & value)144 inline void SetFecOutputSettings(const FecOutputSettings& value) { m_fecOutputSettingsHasBeenSet = true; m_fecOutputSettings = value; } 145 146 /** 147 * Settings for enabling and adjusting Forward Error Correction on UDP outputs. 148 */ SetFecOutputSettings(FecOutputSettings && value)149 inline void SetFecOutputSettings(FecOutputSettings&& value) { m_fecOutputSettingsHasBeenSet = true; m_fecOutputSettings = std::move(value); } 150 151 /** 152 * Settings for enabling and adjusting Forward Error Correction on UDP outputs. 153 */ WithFecOutputSettings(const FecOutputSettings & value)154 inline UdpOutputSettings& WithFecOutputSettings(const FecOutputSettings& value) { SetFecOutputSettings(value); return *this;} 155 156 /** 157 * Settings for enabling and adjusting Forward Error Correction on UDP outputs. 158 */ WithFecOutputSettings(FecOutputSettings && value)159 inline UdpOutputSettings& WithFecOutputSettings(FecOutputSettings&& value) { SetFecOutputSettings(std::move(value)); return *this;} 160 161 private: 162 163 int m_bufferMsec; 164 bool m_bufferMsecHasBeenSet; 165 166 UdpContainerSettings m_containerSettings; 167 bool m_containerSettingsHasBeenSet; 168 169 OutputLocationRef m_destination; 170 bool m_destinationHasBeenSet; 171 172 FecOutputSettings m_fecOutputSettings; 173 bool m_fecOutputSettingsHasBeenSet; 174 }; 175 176 } // namespace Model 177 } // namespace MediaLive 178 } // namespace Aws 179