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/AWSVector.h> 9 #include <aws/medialive/model/InputDeblockFilter.h> 10 #include <aws/medialive/model/InputDenoiseFilter.h> 11 #include <aws/medialive/model/InputFilter.h> 12 #include <aws/medialive/model/NetworkInputSettings.h> 13 #include <aws/medialive/model/Smpte2038DataPreference.h> 14 #include <aws/medialive/model/InputSourceEndBehavior.h> 15 #include <aws/medialive/model/VideoSelector.h> 16 #include <aws/medialive/model/AudioSelector.h> 17 #include <aws/medialive/model/CaptionSelector.h> 18 #include <utility> 19 20 namespace Aws 21 { 22 namespace Utils 23 { 24 namespace Json 25 { 26 class JsonValue; 27 class JsonView; 28 } // namespace Json 29 } // namespace Utils 30 namespace MediaLive 31 { 32 namespace Model 33 { 34 35 /** 36 * Live Event input parameters. There can be multiple inputs in a single Live 37 * Event.<p><h3>See Also:</h3> <a 38 * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/InputSettings">AWS 39 * API Reference</a></p> 40 */ 41 class AWS_MEDIALIVE_API InputSettings 42 { 43 public: 44 InputSettings(); 45 InputSettings(Aws::Utils::Json::JsonView jsonValue); 46 InputSettings& operator=(Aws::Utils::Json::JsonView jsonValue); 47 Aws::Utils::Json::JsonValue Jsonize() const; 48 49 50 /** 51 * Used to select the audio stream to decode for inputs that have multiple 52 * available. 53 */ GetAudioSelectors()54 inline const Aws::Vector<AudioSelector>& GetAudioSelectors() const{ return m_audioSelectors; } 55 56 /** 57 * Used to select the audio stream to decode for inputs that have multiple 58 * available. 59 */ AudioSelectorsHasBeenSet()60 inline bool AudioSelectorsHasBeenSet() const { return m_audioSelectorsHasBeenSet; } 61 62 /** 63 * Used to select the audio stream to decode for inputs that have multiple 64 * available. 65 */ SetAudioSelectors(const Aws::Vector<AudioSelector> & value)66 inline void SetAudioSelectors(const Aws::Vector<AudioSelector>& value) { m_audioSelectorsHasBeenSet = true; m_audioSelectors = value; } 67 68 /** 69 * Used to select the audio stream to decode for inputs that have multiple 70 * available. 71 */ SetAudioSelectors(Aws::Vector<AudioSelector> && value)72 inline void SetAudioSelectors(Aws::Vector<AudioSelector>&& value) { m_audioSelectorsHasBeenSet = true; m_audioSelectors = std::move(value); } 73 74 /** 75 * Used to select the audio stream to decode for inputs that have multiple 76 * available. 77 */ WithAudioSelectors(const Aws::Vector<AudioSelector> & value)78 inline InputSettings& WithAudioSelectors(const Aws::Vector<AudioSelector>& value) { SetAudioSelectors(value); return *this;} 79 80 /** 81 * Used to select the audio stream to decode for inputs that have multiple 82 * available. 83 */ WithAudioSelectors(Aws::Vector<AudioSelector> && value)84 inline InputSettings& WithAudioSelectors(Aws::Vector<AudioSelector>&& value) { SetAudioSelectors(std::move(value)); return *this;} 85 86 /** 87 * Used to select the audio stream to decode for inputs that have multiple 88 * available. 89 */ AddAudioSelectors(const AudioSelector & value)90 inline InputSettings& AddAudioSelectors(const AudioSelector& value) { m_audioSelectorsHasBeenSet = true; m_audioSelectors.push_back(value); return *this; } 91 92 /** 93 * Used to select the audio stream to decode for inputs that have multiple 94 * available. 95 */ AddAudioSelectors(AudioSelector && value)96 inline InputSettings& AddAudioSelectors(AudioSelector&& value) { m_audioSelectorsHasBeenSet = true; m_audioSelectors.push_back(std::move(value)); return *this; } 97 98 99 /** 100 * Used to select the caption input to use for inputs that have multiple available. 101 */ GetCaptionSelectors()102 inline const Aws::Vector<CaptionSelector>& GetCaptionSelectors() const{ return m_captionSelectors; } 103 104 /** 105 * Used to select the caption input to use for inputs that have multiple available. 106 */ CaptionSelectorsHasBeenSet()107 inline bool CaptionSelectorsHasBeenSet() const { return m_captionSelectorsHasBeenSet; } 108 109 /** 110 * Used to select the caption input to use for inputs that have multiple available. 111 */ SetCaptionSelectors(const Aws::Vector<CaptionSelector> & value)112 inline void SetCaptionSelectors(const Aws::Vector<CaptionSelector>& value) { m_captionSelectorsHasBeenSet = true; m_captionSelectors = value; } 113 114 /** 115 * Used to select the caption input to use for inputs that have multiple available. 116 */ SetCaptionSelectors(Aws::Vector<CaptionSelector> && value)117 inline void SetCaptionSelectors(Aws::Vector<CaptionSelector>&& value) { m_captionSelectorsHasBeenSet = true; m_captionSelectors = std::move(value); } 118 119 /** 120 * Used to select the caption input to use for inputs that have multiple available. 121 */ WithCaptionSelectors(const Aws::Vector<CaptionSelector> & value)122 inline InputSettings& WithCaptionSelectors(const Aws::Vector<CaptionSelector>& value) { SetCaptionSelectors(value); return *this;} 123 124 /** 125 * Used to select the caption input to use for inputs that have multiple available. 126 */ WithCaptionSelectors(Aws::Vector<CaptionSelector> && value)127 inline InputSettings& WithCaptionSelectors(Aws::Vector<CaptionSelector>&& value) { SetCaptionSelectors(std::move(value)); return *this;} 128 129 /** 130 * Used to select the caption input to use for inputs that have multiple available. 131 */ AddCaptionSelectors(const CaptionSelector & value)132 inline InputSettings& AddCaptionSelectors(const CaptionSelector& value) { m_captionSelectorsHasBeenSet = true; m_captionSelectors.push_back(value); return *this; } 133 134 /** 135 * Used to select the caption input to use for inputs that have multiple available. 136 */ AddCaptionSelectors(CaptionSelector && value)137 inline InputSettings& AddCaptionSelectors(CaptionSelector&& value) { m_captionSelectorsHasBeenSet = true; m_captionSelectors.push_back(std::move(value)); return *this; } 138 139 140 /** 141 * Enable or disable the deblock filter when filtering. 142 */ GetDeblockFilter()143 inline const InputDeblockFilter& GetDeblockFilter() const{ return m_deblockFilter; } 144 145 /** 146 * Enable or disable the deblock filter when filtering. 147 */ DeblockFilterHasBeenSet()148 inline bool DeblockFilterHasBeenSet() const { return m_deblockFilterHasBeenSet; } 149 150 /** 151 * Enable or disable the deblock filter when filtering. 152 */ SetDeblockFilter(const InputDeblockFilter & value)153 inline void SetDeblockFilter(const InputDeblockFilter& value) { m_deblockFilterHasBeenSet = true; m_deblockFilter = value; } 154 155 /** 156 * Enable or disable the deblock filter when filtering. 157 */ SetDeblockFilter(InputDeblockFilter && value)158 inline void SetDeblockFilter(InputDeblockFilter&& value) { m_deblockFilterHasBeenSet = true; m_deblockFilter = std::move(value); } 159 160 /** 161 * Enable or disable the deblock filter when filtering. 162 */ WithDeblockFilter(const InputDeblockFilter & value)163 inline InputSettings& WithDeblockFilter(const InputDeblockFilter& value) { SetDeblockFilter(value); return *this;} 164 165 /** 166 * Enable or disable the deblock filter when filtering. 167 */ WithDeblockFilter(InputDeblockFilter && value)168 inline InputSettings& WithDeblockFilter(InputDeblockFilter&& value) { SetDeblockFilter(std::move(value)); return *this;} 169 170 171 /** 172 * Enable or disable the denoise filter when filtering. 173 */ GetDenoiseFilter()174 inline const InputDenoiseFilter& GetDenoiseFilter() const{ return m_denoiseFilter; } 175 176 /** 177 * Enable or disable the denoise filter when filtering. 178 */ DenoiseFilterHasBeenSet()179 inline bool DenoiseFilterHasBeenSet() const { return m_denoiseFilterHasBeenSet; } 180 181 /** 182 * Enable or disable the denoise filter when filtering. 183 */ SetDenoiseFilter(const InputDenoiseFilter & value)184 inline void SetDenoiseFilter(const InputDenoiseFilter& value) { m_denoiseFilterHasBeenSet = true; m_denoiseFilter = value; } 185 186 /** 187 * Enable or disable the denoise filter when filtering. 188 */ SetDenoiseFilter(InputDenoiseFilter && value)189 inline void SetDenoiseFilter(InputDenoiseFilter&& value) { m_denoiseFilterHasBeenSet = true; m_denoiseFilter = std::move(value); } 190 191 /** 192 * Enable or disable the denoise filter when filtering. 193 */ WithDenoiseFilter(const InputDenoiseFilter & value)194 inline InputSettings& WithDenoiseFilter(const InputDenoiseFilter& value) { SetDenoiseFilter(value); return *this;} 195 196 /** 197 * Enable or disable the denoise filter when filtering. 198 */ WithDenoiseFilter(InputDenoiseFilter && value)199 inline InputSettings& WithDenoiseFilter(InputDenoiseFilter&& value) { SetDenoiseFilter(std::move(value)); return *this;} 200 201 202 /** 203 * Adjusts the magnitude of filtering from 1 (minimal) to 5 (strongest). 204 */ GetFilterStrength()205 inline int GetFilterStrength() const{ return m_filterStrength; } 206 207 /** 208 * Adjusts the magnitude of filtering from 1 (minimal) to 5 (strongest). 209 */ FilterStrengthHasBeenSet()210 inline bool FilterStrengthHasBeenSet() const { return m_filterStrengthHasBeenSet; } 211 212 /** 213 * Adjusts the magnitude of filtering from 1 (minimal) to 5 (strongest). 214 */ SetFilterStrength(int value)215 inline void SetFilterStrength(int value) { m_filterStrengthHasBeenSet = true; m_filterStrength = value; } 216 217 /** 218 * Adjusts the magnitude of filtering from 1 (minimal) to 5 (strongest). 219 */ WithFilterStrength(int value)220 inline InputSettings& WithFilterStrength(int value) { SetFilterStrength(value); return *this;} 221 222 223 /** 224 * Turns on the filter for this input. MPEG-2 inputs have the deblocking filter 225 * enabled by default. 226 1) auto - filtering will be applied depending on input 227 * type/quality 228 2) disabled - no filtering will be applied to the input 229 3) forced - 230 * filtering will be applied regardless of input type 231 */ GetInputFilter()232 inline const InputFilter& GetInputFilter() const{ return m_inputFilter; } 233 234 /** 235 * Turns on the filter for this input. MPEG-2 inputs have the deblocking filter 236 * enabled by default. 237 1) auto - filtering will be applied depending on input 238 * type/quality 239 2) disabled - no filtering will be applied to the input 240 3) forced - 241 * filtering will be applied regardless of input type 242 */ InputFilterHasBeenSet()243 inline bool InputFilterHasBeenSet() const { return m_inputFilterHasBeenSet; } 244 245 /** 246 * Turns on the filter for this input. MPEG-2 inputs have the deblocking filter 247 * enabled by default. 248 1) auto - filtering will be applied depending on input 249 * type/quality 250 2) disabled - no filtering will be applied to the input 251 3) forced - 252 * filtering will be applied regardless of input type 253 */ SetInputFilter(const InputFilter & value)254 inline void SetInputFilter(const InputFilter& value) { m_inputFilterHasBeenSet = true; m_inputFilter = value; } 255 256 /** 257 * Turns on the filter for this input. MPEG-2 inputs have the deblocking filter 258 * enabled by default. 259 1) auto - filtering will be applied depending on input 260 * type/quality 261 2) disabled - no filtering will be applied to the input 262 3) forced - 263 * filtering will be applied regardless of input type 264 */ SetInputFilter(InputFilter && value)265 inline void SetInputFilter(InputFilter&& value) { m_inputFilterHasBeenSet = true; m_inputFilter = std::move(value); } 266 267 /** 268 * Turns on the filter for this input. MPEG-2 inputs have the deblocking filter 269 * enabled by default. 270 1) auto - filtering will be applied depending on input 271 * type/quality 272 2) disabled - no filtering will be applied to the input 273 3) forced - 274 * filtering will be applied regardless of input type 275 */ WithInputFilter(const InputFilter & value)276 inline InputSettings& WithInputFilter(const InputFilter& value) { SetInputFilter(value); return *this;} 277 278 /** 279 * Turns on the filter for this input. MPEG-2 inputs have the deblocking filter 280 * enabled by default. 281 1) auto - filtering will be applied depending on input 282 * type/quality 283 2) disabled - no filtering will be applied to the input 284 3) forced - 285 * filtering will be applied regardless of input type 286 */ WithInputFilter(InputFilter && value)287 inline InputSettings& WithInputFilter(InputFilter&& value) { SetInputFilter(std::move(value)); return *this;} 288 289 290 /** 291 * Input settings. 292 */ GetNetworkInputSettings()293 inline const NetworkInputSettings& GetNetworkInputSettings() const{ return m_networkInputSettings; } 294 295 /** 296 * Input settings. 297 */ NetworkInputSettingsHasBeenSet()298 inline bool NetworkInputSettingsHasBeenSet() const { return m_networkInputSettingsHasBeenSet; } 299 300 /** 301 * Input settings. 302 */ SetNetworkInputSettings(const NetworkInputSettings & value)303 inline void SetNetworkInputSettings(const NetworkInputSettings& value) { m_networkInputSettingsHasBeenSet = true; m_networkInputSettings = value; } 304 305 /** 306 * Input settings. 307 */ SetNetworkInputSettings(NetworkInputSettings && value)308 inline void SetNetworkInputSettings(NetworkInputSettings&& value) { m_networkInputSettingsHasBeenSet = true; m_networkInputSettings = std::move(value); } 309 310 /** 311 * Input settings. 312 */ WithNetworkInputSettings(const NetworkInputSettings & value)313 inline InputSettings& WithNetworkInputSettings(const NetworkInputSettings& value) { SetNetworkInputSettings(value); return *this;} 314 315 /** 316 * Input settings. 317 */ WithNetworkInputSettings(NetworkInputSettings && value)318 inline InputSettings& WithNetworkInputSettings(NetworkInputSettings&& value) { SetNetworkInputSettings(std::move(value)); return *this;} 319 320 321 /** 322 * Specifies whether to extract applicable ancillary data from a SMPTE-2038 source 323 * in this input. Applicable data types are captions, timecode, AFD, and SCTE-104 324 * messages. 325 - PREFER: Extract from SMPTE-2038 if present in this input, otherwise 326 * extract from another source (if any). 327 - IGNORE: Never extract any ancillary data 328 * from SMPTE-2038. 329 */ GetSmpte2038DataPreference()330 inline const Smpte2038DataPreference& GetSmpte2038DataPreference() const{ return m_smpte2038DataPreference; } 331 332 /** 333 * Specifies whether to extract applicable ancillary data from a SMPTE-2038 source 334 * in this input. Applicable data types are captions, timecode, AFD, and SCTE-104 335 * messages. 336 - PREFER: Extract from SMPTE-2038 if present in this input, otherwise 337 * extract from another source (if any). 338 - IGNORE: Never extract any ancillary data 339 * from SMPTE-2038. 340 */ Smpte2038DataPreferenceHasBeenSet()341 inline bool Smpte2038DataPreferenceHasBeenSet() const { return m_smpte2038DataPreferenceHasBeenSet; } 342 343 /** 344 * Specifies whether to extract applicable ancillary data from a SMPTE-2038 source 345 * in this input. Applicable data types are captions, timecode, AFD, and SCTE-104 346 * messages. 347 - PREFER: Extract from SMPTE-2038 if present in this input, otherwise 348 * extract from another source (if any). 349 - IGNORE: Never extract any ancillary data 350 * from SMPTE-2038. 351 */ SetSmpte2038DataPreference(const Smpte2038DataPreference & value)352 inline void SetSmpte2038DataPreference(const Smpte2038DataPreference& value) { m_smpte2038DataPreferenceHasBeenSet = true; m_smpte2038DataPreference = value; } 353 354 /** 355 * Specifies whether to extract applicable ancillary data from a SMPTE-2038 source 356 * in this input. Applicable data types are captions, timecode, AFD, and SCTE-104 357 * messages. 358 - PREFER: Extract from SMPTE-2038 if present in this input, otherwise 359 * extract from another source (if any). 360 - IGNORE: Never extract any ancillary data 361 * from SMPTE-2038. 362 */ SetSmpte2038DataPreference(Smpte2038DataPreference && value)363 inline void SetSmpte2038DataPreference(Smpte2038DataPreference&& value) { m_smpte2038DataPreferenceHasBeenSet = true; m_smpte2038DataPreference = std::move(value); } 364 365 /** 366 * Specifies whether to extract applicable ancillary data from a SMPTE-2038 source 367 * in this input. Applicable data types are captions, timecode, AFD, and SCTE-104 368 * messages. 369 - PREFER: Extract from SMPTE-2038 if present in this input, otherwise 370 * extract from another source (if any). 371 - IGNORE: Never extract any ancillary data 372 * from SMPTE-2038. 373 */ WithSmpte2038DataPreference(const Smpte2038DataPreference & value)374 inline InputSettings& WithSmpte2038DataPreference(const Smpte2038DataPreference& value) { SetSmpte2038DataPreference(value); return *this;} 375 376 /** 377 * Specifies whether to extract applicable ancillary data from a SMPTE-2038 source 378 * in this input. Applicable data types are captions, timecode, AFD, and SCTE-104 379 * messages. 380 - PREFER: Extract from SMPTE-2038 if present in this input, otherwise 381 * extract from another source (if any). 382 - IGNORE: Never extract any ancillary data 383 * from SMPTE-2038. 384 */ WithSmpte2038DataPreference(Smpte2038DataPreference && value)385 inline InputSettings& WithSmpte2038DataPreference(Smpte2038DataPreference&& value) { SetSmpte2038DataPreference(std::move(value)); return *this;} 386 387 388 /** 389 * Loop input if it is a file. This allows a file input to be streamed 390 * indefinitely. 391 */ GetSourceEndBehavior()392 inline const InputSourceEndBehavior& GetSourceEndBehavior() const{ return m_sourceEndBehavior; } 393 394 /** 395 * Loop input if it is a file. This allows a file input to be streamed 396 * indefinitely. 397 */ SourceEndBehaviorHasBeenSet()398 inline bool SourceEndBehaviorHasBeenSet() const { return m_sourceEndBehaviorHasBeenSet; } 399 400 /** 401 * Loop input if it is a file. This allows a file input to be streamed 402 * indefinitely. 403 */ SetSourceEndBehavior(const InputSourceEndBehavior & value)404 inline void SetSourceEndBehavior(const InputSourceEndBehavior& value) { m_sourceEndBehaviorHasBeenSet = true; m_sourceEndBehavior = value; } 405 406 /** 407 * Loop input if it is a file. This allows a file input to be streamed 408 * indefinitely. 409 */ SetSourceEndBehavior(InputSourceEndBehavior && value)410 inline void SetSourceEndBehavior(InputSourceEndBehavior&& value) { m_sourceEndBehaviorHasBeenSet = true; m_sourceEndBehavior = std::move(value); } 411 412 /** 413 * Loop input if it is a file. This allows a file input to be streamed 414 * indefinitely. 415 */ WithSourceEndBehavior(const InputSourceEndBehavior & value)416 inline InputSettings& WithSourceEndBehavior(const InputSourceEndBehavior& value) { SetSourceEndBehavior(value); return *this;} 417 418 /** 419 * Loop input if it is a file. This allows a file input to be streamed 420 * indefinitely. 421 */ WithSourceEndBehavior(InputSourceEndBehavior && value)422 inline InputSettings& WithSourceEndBehavior(InputSourceEndBehavior&& value) { SetSourceEndBehavior(std::move(value)); return *this;} 423 424 425 /** 426 * Informs which video elementary stream to decode for input types that have 427 * multiple available. 428 */ GetVideoSelector()429 inline const VideoSelector& GetVideoSelector() const{ return m_videoSelector; } 430 431 /** 432 * Informs which video elementary stream to decode for input types that have 433 * multiple available. 434 */ VideoSelectorHasBeenSet()435 inline bool VideoSelectorHasBeenSet() const { return m_videoSelectorHasBeenSet; } 436 437 /** 438 * Informs which video elementary stream to decode for input types that have 439 * multiple available. 440 */ SetVideoSelector(const VideoSelector & value)441 inline void SetVideoSelector(const VideoSelector& value) { m_videoSelectorHasBeenSet = true; m_videoSelector = value; } 442 443 /** 444 * Informs which video elementary stream to decode for input types that have 445 * multiple available. 446 */ SetVideoSelector(VideoSelector && value)447 inline void SetVideoSelector(VideoSelector&& value) { m_videoSelectorHasBeenSet = true; m_videoSelector = std::move(value); } 448 449 /** 450 * Informs which video elementary stream to decode for input types that have 451 * multiple available. 452 */ WithVideoSelector(const VideoSelector & value)453 inline InputSettings& WithVideoSelector(const VideoSelector& value) { SetVideoSelector(value); return *this;} 454 455 /** 456 * Informs which video elementary stream to decode for input types that have 457 * multiple available. 458 */ WithVideoSelector(VideoSelector && value)459 inline InputSettings& WithVideoSelector(VideoSelector&& value) { SetVideoSelector(std::move(value)); return *this;} 460 461 private: 462 463 Aws::Vector<AudioSelector> m_audioSelectors; 464 bool m_audioSelectorsHasBeenSet; 465 466 Aws::Vector<CaptionSelector> m_captionSelectors; 467 bool m_captionSelectorsHasBeenSet; 468 469 InputDeblockFilter m_deblockFilter; 470 bool m_deblockFilterHasBeenSet; 471 472 InputDenoiseFilter m_denoiseFilter; 473 bool m_denoiseFilterHasBeenSet; 474 475 int m_filterStrength; 476 bool m_filterStrengthHasBeenSet; 477 478 InputFilter m_inputFilter; 479 bool m_inputFilterHasBeenSet; 480 481 NetworkInputSettings m_networkInputSettings; 482 bool m_networkInputSettingsHasBeenSet; 483 484 Smpte2038DataPreference m_smpte2038DataPreference; 485 bool m_smpte2038DataPreferenceHasBeenSet; 486 487 InputSourceEndBehavior m_sourceEndBehavior; 488 bool m_sourceEndBehaviorHasBeenSet; 489 490 VideoSelector m_videoSelector; 491 bool m_videoSelectorHasBeenSet; 492 }; 493 494 } // namespace Model 495 } // namespace MediaLive 496 } // namespace Aws 497