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/core/utils/memory/stl/AWSString.h> 9 #include <aws/medialive/model/InputLocation.h> 10 #include <aws/medialive/model/AudioOnlyHlsTrackType.h> 11 #include <aws/medialive/model/AudioOnlyHlsSegmentType.h> 12 #include <utility> 13 14 namespace Aws 15 { 16 namespace Utils 17 { 18 namespace Json 19 { 20 class JsonValue; 21 class JsonView; 22 } // namespace Json 23 } // namespace Utils 24 namespace MediaLive 25 { 26 namespace Model 27 { 28 29 /** 30 * Audio Only Hls Settings<p><h3>See Also:</h3> <a 31 * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/AudioOnlyHlsSettings">AWS 32 * API Reference</a></p> 33 */ 34 class AWS_MEDIALIVE_API AudioOnlyHlsSettings 35 { 36 public: 37 AudioOnlyHlsSettings(); 38 AudioOnlyHlsSettings(Aws::Utils::Json::JsonView jsonValue); 39 AudioOnlyHlsSettings& operator=(Aws::Utils::Json::JsonView jsonValue); 40 Aws::Utils::Json::JsonValue Jsonize() const; 41 42 43 /** 44 * Specifies the group to which the audio Rendition belongs. 45 */ GetAudioGroupId()46 inline const Aws::String& GetAudioGroupId() const{ return m_audioGroupId; } 47 48 /** 49 * Specifies the group to which the audio Rendition belongs. 50 */ AudioGroupIdHasBeenSet()51 inline bool AudioGroupIdHasBeenSet() const { return m_audioGroupIdHasBeenSet; } 52 53 /** 54 * Specifies the group to which the audio Rendition belongs. 55 */ SetAudioGroupId(const Aws::String & value)56 inline void SetAudioGroupId(const Aws::String& value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId = value; } 57 58 /** 59 * Specifies the group to which the audio Rendition belongs. 60 */ SetAudioGroupId(Aws::String && value)61 inline void SetAudioGroupId(Aws::String&& value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId = std::move(value); } 62 63 /** 64 * Specifies the group to which the audio Rendition belongs. 65 */ SetAudioGroupId(const char * value)66 inline void SetAudioGroupId(const char* value) { m_audioGroupIdHasBeenSet = true; m_audioGroupId.assign(value); } 67 68 /** 69 * Specifies the group to which the audio Rendition belongs. 70 */ WithAudioGroupId(const Aws::String & value)71 inline AudioOnlyHlsSettings& WithAudioGroupId(const Aws::String& value) { SetAudioGroupId(value); return *this;} 72 73 /** 74 * Specifies the group to which the audio Rendition belongs. 75 */ WithAudioGroupId(Aws::String && value)76 inline AudioOnlyHlsSettings& WithAudioGroupId(Aws::String&& value) { SetAudioGroupId(std::move(value)); return *this;} 77 78 /** 79 * Specifies the group to which the audio Rendition belongs. 80 */ WithAudioGroupId(const char * value)81 inline AudioOnlyHlsSettings& WithAudioGroupId(const char* value) { SetAudioGroupId(value); return *this;} 82 83 84 /** 85 * Optional. Specifies the .jpg or .png image to use as the cover art for an 86 * audio-only output. We recommend a low bit-size file because the image increases 87 * the output audio bandwidth. 88 89 The image is attached to the audio as an ID3 tag, 90 * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native 91 * Frames" standard. 92 */ GetAudioOnlyImage()93 inline const InputLocation& GetAudioOnlyImage() const{ return m_audioOnlyImage; } 94 95 /** 96 * Optional. Specifies the .jpg or .png image to use as the cover art for an 97 * audio-only output. We recommend a low bit-size file because the image increases 98 * the output audio bandwidth. 99 100 The image is attached to the audio as an ID3 tag, 101 * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native 102 * Frames" standard. 103 */ AudioOnlyImageHasBeenSet()104 inline bool AudioOnlyImageHasBeenSet() const { return m_audioOnlyImageHasBeenSet; } 105 106 /** 107 * Optional. Specifies the .jpg or .png image to use as the cover art for an 108 * audio-only output. We recommend a low bit-size file because the image increases 109 * the output audio bandwidth. 110 111 The image is attached to the audio as an ID3 tag, 112 * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native 113 * Frames" standard. 114 */ SetAudioOnlyImage(const InputLocation & value)115 inline void SetAudioOnlyImage(const InputLocation& value) { m_audioOnlyImageHasBeenSet = true; m_audioOnlyImage = value; } 116 117 /** 118 * Optional. Specifies the .jpg or .png image to use as the cover art for an 119 * audio-only output. We recommend a low bit-size file because the image increases 120 * the output audio bandwidth. 121 122 The image is attached to the audio as an ID3 tag, 123 * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native 124 * Frames" standard. 125 */ SetAudioOnlyImage(InputLocation && value)126 inline void SetAudioOnlyImage(InputLocation&& value) { m_audioOnlyImageHasBeenSet = true; m_audioOnlyImage = std::move(value); } 127 128 /** 129 * Optional. Specifies the .jpg or .png image to use as the cover art for an 130 * audio-only output. We recommend a low bit-size file because the image increases 131 * the output audio bandwidth. 132 133 The image is attached to the audio as an ID3 tag, 134 * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native 135 * Frames" standard. 136 */ WithAudioOnlyImage(const InputLocation & value)137 inline AudioOnlyHlsSettings& WithAudioOnlyImage(const InputLocation& value) { SetAudioOnlyImage(value); return *this;} 138 139 /** 140 * Optional. Specifies the .jpg or .png image to use as the cover art for an 141 * audio-only output. We recommend a low bit-size file because the image increases 142 * the output audio bandwidth. 143 144 The image is attached to the audio as an ID3 tag, 145 * frame type APIC, picture type 0x10, as per the "ID3 tag version 2.4.0 - Native 146 * Frames" standard. 147 */ WithAudioOnlyImage(InputLocation && value)148 inline AudioOnlyHlsSettings& WithAudioOnlyImage(InputLocation&& value) { SetAudioOnlyImage(std::move(value)); return *this;} 149 150 151 /** 152 * Four types of audio-only tracks are supported: 153 154 Audio-Only Variant Stream 155 The 156 * client can play back this audio-only stream instead of video in low-bandwidth 157 * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. 158 159 Alternate 160 * Audio, Auto Select, Default 161 Alternate rendition that the client should try to 162 * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 163 * DEFAULT=YES, AUTOSELECT=YES 164 165 Alternate Audio, Auto Select, Not Default 166 Alternate 167 * rendition that the client may try to play back by default. Represented as an 168 * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES 169 170 Alternate 171 * Audio, not Auto Select 172 Alternate rendition that the client will not try to play 173 * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 174 * DEFAULT=NO, AUTOSELECT=NO 175 */ GetAudioTrackType()176 inline const AudioOnlyHlsTrackType& GetAudioTrackType() const{ return m_audioTrackType; } 177 178 /** 179 * Four types of audio-only tracks are supported: 180 181 Audio-Only Variant Stream 182 The 183 * client can play back this audio-only stream instead of video in low-bandwidth 184 * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. 185 186 Alternate 187 * Audio, Auto Select, Default 188 Alternate rendition that the client should try to 189 * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 190 * DEFAULT=YES, AUTOSELECT=YES 191 192 Alternate Audio, Auto Select, Not Default 193 Alternate 194 * rendition that the client may try to play back by default. Represented as an 195 * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES 196 197 Alternate 198 * Audio, not Auto Select 199 Alternate rendition that the client will not try to play 200 * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 201 * DEFAULT=NO, AUTOSELECT=NO 202 */ AudioTrackTypeHasBeenSet()203 inline bool AudioTrackTypeHasBeenSet() const { return m_audioTrackTypeHasBeenSet; } 204 205 /** 206 * Four types of audio-only tracks are supported: 207 208 Audio-Only Variant Stream 209 The 210 * client can play back this audio-only stream instead of video in low-bandwidth 211 * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. 212 213 Alternate 214 * Audio, Auto Select, Default 215 Alternate rendition that the client should try to 216 * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 217 * DEFAULT=YES, AUTOSELECT=YES 218 219 Alternate Audio, Auto Select, Not Default 220 Alternate 221 * rendition that the client may try to play back by default. Represented as an 222 * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES 223 224 Alternate 225 * Audio, not Auto Select 226 Alternate rendition that the client will not try to play 227 * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 228 * DEFAULT=NO, AUTOSELECT=NO 229 */ SetAudioTrackType(const AudioOnlyHlsTrackType & value)230 inline void SetAudioTrackType(const AudioOnlyHlsTrackType& value) { m_audioTrackTypeHasBeenSet = true; m_audioTrackType = value; } 231 232 /** 233 * Four types of audio-only tracks are supported: 234 235 Audio-Only Variant Stream 236 The 237 * client can play back this audio-only stream instead of video in low-bandwidth 238 * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. 239 240 Alternate 241 * Audio, Auto Select, Default 242 Alternate rendition that the client should try to 243 * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 244 * DEFAULT=YES, AUTOSELECT=YES 245 246 Alternate Audio, Auto Select, Not Default 247 Alternate 248 * rendition that the client may try to play back by default. Represented as an 249 * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES 250 251 Alternate 252 * Audio, not Auto Select 253 Alternate rendition that the client will not try to play 254 * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 255 * DEFAULT=NO, AUTOSELECT=NO 256 */ SetAudioTrackType(AudioOnlyHlsTrackType && value)257 inline void SetAudioTrackType(AudioOnlyHlsTrackType&& value) { m_audioTrackTypeHasBeenSet = true; m_audioTrackType = std::move(value); } 258 259 /** 260 * Four types of audio-only tracks are supported: 261 262 Audio-Only Variant Stream 263 The 264 * client can play back this audio-only stream instead of video in low-bandwidth 265 * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. 266 267 Alternate 268 * Audio, Auto Select, Default 269 Alternate rendition that the client should try to 270 * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 271 * DEFAULT=YES, AUTOSELECT=YES 272 273 Alternate Audio, Auto Select, Not Default 274 Alternate 275 * rendition that the client may try to play back by default. Represented as an 276 * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES 277 278 Alternate 279 * Audio, not Auto Select 280 Alternate rendition that the client will not try to play 281 * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 282 * DEFAULT=NO, AUTOSELECT=NO 283 */ WithAudioTrackType(const AudioOnlyHlsTrackType & value)284 inline AudioOnlyHlsSettings& WithAudioTrackType(const AudioOnlyHlsTrackType& value) { SetAudioTrackType(value); return *this;} 285 286 /** 287 * Four types of audio-only tracks are supported: 288 289 Audio-Only Variant Stream 290 The 291 * client can play back this audio-only stream instead of video in low-bandwidth 292 * scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. 293 294 Alternate 295 * Audio, Auto Select, Default 296 Alternate rendition that the client should try to 297 * play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 298 * DEFAULT=YES, AUTOSELECT=YES 299 300 Alternate Audio, Auto Select, Not Default 301 Alternate 302 * rendition that the client may try to play back by default. Represented as an 303 * EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES 304 305 Alternate 306 * Audio, not Auto Select 307 Alternate rendition that the client will not try to play 308 * back by default. Represented as an EXT-X-MEDIA in the HLS manifest with 309 * DEFAULT=NO, AUTOSELECT=NO 310 */ WithAudioTrackType(AudioOnlyHlsTrackType && value)311 inline AudioOnlyHlsSettings& WithAudioTrackType(AudioOnlyHlsTrackType&& value) { SetAudioTrackType(std::move(value)); return *this;} 312 313 314 /** 315 * Specifies the segment type. 316 */ GetSegmentType()317 inline const AudioOnlyHlsSegmentType& GetSegmentType() const{ return m_segmentType; } 318 319 /** 320 * Specifies the segment type. 321 */ SegmentTypeHasBeenSet()322 inline bool SegmentTypeHasBeenSet() const { return m_segmentTypeHasBeenSet; } 323 324 /** 325 * Specifies the segment type. 326 */ SetSegmentType(const AudioOnlyHlsSegmentType & value)327 inline void SetSegmentType(const AudioOnlyHlsSegmentType& value) { m_segmentTypeHasBeenSet = true; m_segmentType = value; } 328 329 /** 330 * Specifies the segment type. 331 */ SetSegmentType(AudioOnlyHlsSegmentType && value)332 inline void SetSegmentType(AudioOnlyHlsSegmentType&& value) { m_segmentTypeHasBeenSet = true; m_segmentType = std::move(value); } 333 334 /** 335 * Specifies the segment type. 336 */ WithSegmentType(const AudioOnlyHlsSegmentType & value)337 inline AudioOnlyHlsSettings& WithSegmentType(const AudioOnlyHlsSegmentType& value) { SetSegmentType(value); return *this;} 338 339 /** 340 * Specifies the segment type. 341 */ WithSegmentType(AudioOnlyHlsSegmentType && value)342 inline AudioOnlyHlsSettings& WithSegmentType(AudioOnlyHlsSegmentType&& value) { SetSegmentType(std::move(value)); return *this;} 343 344 private: 345 346 Aws::String m_audioGroupId; 347 bool m_audioGroupIdHasBeenSet; 348 349 InputLocation m_audioOnlyImage; 350 bool m_audioOnlyImageHasBeenSet; 351 352 AudioOnlyHlsTrackType m_audioTrackType; 353 bool m_audioTrackTypeHasBeenSet; 354 355 AudioOnlyHlsSegmentType m_segmentType; 356 bool m_segmentTypeHasBeenSet; 357 }; 358 359 } // namespace Model 360 } // namespace MediaLive 361 } // namespace Aws 362