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/M2tsAbsentInputAudioBehavior.h>
9 #include <aws/medialive/model/M2tsArib.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/medialive/model/M2tsAribCaptionsPidControl.h>
12 #include <aws/medialive/model/M2tsAudioBufferModel.h>
13 #include <aws/medialive/model/M2tsAudioStreamType.h>
14 #include <aws/medialive/model/M2tsBufferModel.h>
15 #include <aws/medialive/model/M2tsCcDescriptor.h>
16 #include <aws/medialive/model/DvbNitSettings.h>
17 #include <aws/medialive/model/DvbSdtSettings.h>
18 #include <aws/medialive/model/DvbTdtSettings.h>
19 #include <aws/medialive/model/M2tsEbifControl.h>
20 #include <aws/medialive/model/M2tsAudioInterval.h>
21 #include <aws/medialive/model/M2tsEbpPlacement.h>
22 #include <aws/medialive/model/M2tsEsRateInPes.h>
23 #include <aws/medialive/model/M2tsKlv.h>
24 #include <aws/medialive/model/M2tsNielsenId3Behavior.h>
25 #include <aws/medialive/model/M2tsPcrControl.h>
26 #include <aws/medialive/model/M2tsRateMode.h>
27 #include <aws/medialive/model/M2tsScte35Control.h>
28 #include <aws/medialive/model/M2tsSegmentationMarkers.h>
29 #include <aws/medialive/model/M2tsSegmentationStyle.h>
30 #include <aws/medialive/model/M2tsTimedMetadataBehavior.h>
31 #include <utility>
32 
33 namespace Aws
34 {
35 namespace Utils
36 {
37 namespace Json
38 {
39   class JsonValue;
40   class JsonView;
41 } // namespace Json
42 } // namespace Utils
43 namespace MediaLive
44 {
45 namespace Model
46 {
47 
48   /**
49    * M2ts Settings<p><h3>See Also:</h3>   <a
50    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/M2tsSettings">AWS
51    * API Reference</a></p>
52    */
53   class AWS_MEDIALIVE_API M2tsSettings
54   {
55   public:
56     M2tsSettings();
57     M2tsSettings(Aws::Utils::Json::JsonView jsonValue);
58     M2tsSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
59     Aws::Utils::Json::JsonValue Jsonize() const;
60 
61 
62     /**
63      * When set to drop, output audio streams will be removed from the program if the
64      * selected input audio stream is removed from the input. This allows the output
65      * audio configuration to dynamically change based on input configuration. If this
66      * is set to encodeSilence, all output audio streams will output encoded silence
67      * when not connected to an active input stream.
68      */
GetAbsentInputAudioBehavior()69     inline const M2tsAbsentInputAudioBehavior& GetAbsentInputAudioBehavior() const{ return m_absentInputAudioBehavior; }
70 
71     /**
72      * When set to drop, output audio streams will be removed from the program if the
73      * selected input audio stream is removed from the input. This allows the output
74      * audio configuration to dynamically change based on input configuration. If this
75      * is set to encodeSilence, all output audio streams will output encoded silence
76      * when not connected to an active input stream.
77      */
AbsentInputAudioBehaviorHasBeenSet()78     inline bool AbsentInputAudioBehaviorHasBeenSet() const { return m_absentInputAudioBehaviorHasBeenSet; }
79 
80     /**
81      * When set to drop, output audio streams will be removed from the program if the
82      * selected input audio stream is removed from the input. This allows the output
83      * audio configuration to dynamically change based on input configuration. If this
84      * is set to encodeSilence, all output audio streams will output encoded silence
85      * when not connected to an active input stream.
86      */
SetAbsentInputAudioBehavior(const M2tsAbsentInputAudioBehavior & value)87     inline void SetAbsentInputAudioBehavior(const M2tsAbsentInputAudioBehavior& value) { m_absentInputAudioBehaviorHasBeenSet = true; m_absentInputAudioBehavior = value; }
88 
89     /**
90      * When set to drop, output audio streams will be removed from the program if the
91      * selected input audio stream is removed from the input. This allows the output
92      * audio configuration to dynamically change based on input configuration. If this
93      * is set to encodeSilence, all output audio streams will output encoded silence
94      * when not connected to an active input stream.
95      */
SetAbsentInputAudioBehavior(M2tsAbsentInputAudioBehavior && value)96     inline void SetAbsentInputAudioBehavior(M2tsAbsentInputAudioBehavior&& value) { m_absentInputAudioBehaviorHasBeenSet = true; m_absentInputAudioBehavior = std::move(value); }
97 
98     /**
99      * When set to drop, output audio streams will be removed from the program if the
100      * selected input audio stream is removed from the input. This allows the output
101      * audio configuration to dynamically change based on input configuration. If this
102      * is set to encodeSilence, all output audio streams will output encoded silence
103      * when not connected to an active input stream.
104      */
WithAbsentInputAudioBehavior(const M2tsAbsentInputAudioBehavior & value)105     inline M2tsSettings& WithAbsentInputAudioBehavior(const M2tsAbsentInputAudioBehavior& value) { SetAbsentInputAudioBehavior(value); return *this;}
106 
107     /**
108      * When set to drop, output audio streams will be removed from the program if the
109      * selected input audio stream is removed from the input. This allows the output
110      * audio configuration to dynamically change based on input configuration. If this
111      * is set to encodeSilence, all output audio streams will output encoded silence
112      * when not connected to an active input stream.
113      */
WithAbsentInputAudioBehavior(M2tsAbsentInputAudioBehavior && value)114     inline M2tsSettings& WithAbsentInputAudioBehavior(M2tsAbsentInputAudioBehavior&& value) { SetAbsentInputAudioBehavior(std::move(value)); return *this;}
115 
116 
117     /**
118      * When set to enabled, uses ARIB-compliant field muxing and removes video
119      * descriptor.
120      */
GetArib()121     inline const M2tsArib& GetArib() const{ return m_arib; }
122 
123     /**
124      * When set to enabled, uses ARIB-compliant field muxing and removes video
125      * descriptor.
126      */
AribHasBeenSet()127     inline bool AribHasBeenSet() const { return m_aribHasBeenSet; }
128 
129     /**
130      * When set to enabled, uses ARIB-compliant field muxing and removes video
131      * descriptor.
132      */
SetArib(const M2tsArib & value)133     inline void SetArib(const M2tsArib& value) { m_aribHasBeenSet = true; m_arib = value; }
134 
135     /**
136      * When set to enabled, uses ARIB-compliant field muxing and removes video
137      * descriptor.
138      */
SetArib(M2tsArib && value)139     inline void SetArib(M2tsArib&& value) { m_aribHasBeenSet = true; m_arib = std::move(value); }
140 
141     /**
142      * When set to enabled, uses ARIB-compliant field muxing and removes video
143      * descriptor.
144      */
WithArib(const M2tsArib & value)145     inline M2tsSettings& WithArib(const M2tsArib& value) { SetArib(value); return *this;}
146 
147     /**
148      * When set to enabled, uses ARIB-compliant field muxing and removes video
149      * descriptor.
150      */
WithArib(M2tsArib && value)151     inline M2tsSettings& WithArib(M2tsArib&& value) { SetArib(std::move(value)); return *this;}
152 
153 
154     /**
155      * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be
156      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
157      * (or 0x1ff6).
158      */
GetAribCaptionsPid()159     inline const Aws::String& GetAribCaptionsPid() const{ return m_aribCaptionsPid; }
160 
161     /**
162      * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be
163      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
164      * (or 0x1ff6).
165      */
AribCaptionsPidHasBeenSet()166     inline bool AribCaptionsPidHasBeenSet() const { return m_aribCaptionsPidHasBeenSet; }
167 
168     /**
169      * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be
170      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
171      * (or 0x1ff6).
172      */
SetAribCaptionsPid(const Aws::String & value)173     inline void SetAribCaptionsPid(const Aws::String& value) { m_aribCaptionsPidHasBeenSet = true; m_aribCaptionsPid = value; }
174 
175     /**
176      * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be
177      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
178      * (or 0x1ff6).
179      */
SetAribCaptionsPid(Aws::String && value)180     inline void SetAribCaptionsPid(Aws::String&& value) { m_aribCaptionsPidHasBeenSet = true; m_aribCaptionsPid = std::move(value); }
181 
182     /**
183      * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be
184      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
185      * (or 0x1ff6).
186      */
SetAribCaptionsPid(const char * value)187     inline void SetAribCaptionsPid(const char* value) { m_aribCaptionsPidHasBeenSet = true; m_aribCaptionsPid.assign(value); }
188 
189     /**
190      * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be
191      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
192      * (or 0x1ff6).
193      */
WithAribCaptionsPid(const Aws::String & value)194     inline M2tsSettings& WithAribCaptionsPid(const Aws::String& value) { SetAribCaptionsPid(value); return *this;}
195 
196     /**
197      * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be
198      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
199      * (or 0x1ff6).
200      */
WithAribCaptionsPid(Aws::String && value)201     inline M2tsSettings& WithAribCaptionsPid(Aws::String&& value) { SetAribCaptionsPid(std::move(value)); return *this;}
202 
203     /**
204      * Packet Identifier (PID) for ARIB Captions in the transport stream. Can be
205      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
206      * (or 0x1ff6).
207      */
WithAribCaptionsPid(const char * value)208     inline M2tsSettings& WithAribCaptionsPid(const char* value) { SetAribCaptionsPid(value); return *this;}
209 
210 
211     /**
212      * If set to auto, pid number used for ARIB Captions will be auto-selected from
213      * unused pids.  If set to useConfigured, ARIB Captions will be on the configured
214      * pid number.
215      */
GetAribCaptionsPidControl()216     inline const M2tsAribCaptionsPidControl& GetAribCaptionsPidControl() const{ return m_aribCaptionsPidControl; }
217 
218     /**
219      * If set to auto, pid number used for ARIB Captions will be auto-selected from
220      * unused pids.  If set to useConfigured, ARIB Captions will be on the configured
221      * pid number.
222      */
AribCaptionsPidControlHasBeenSet()223     inline bool AribCaptionsPidControlHasBeenSet() const { return m_aribCaptionsPidControlHasBeenSet; }
224 
225     /**
226      * If set to auto, pid number used for ARIB Captions will be auto-selected from
227      * unused pids.  If set to useConfigured, ARIB Captions will be on the configured
228      * pid number.
229      */
SetAribCaptionsPidControl(const M2tsAribCaptionsPidControl & value)230     inline void SetAribCaptionsPidControl(const M2tsAribCaptionsPidControl& value) { m_aribCaptionsPidControlHasBeenSet = true; m_aribCaptionsPidControl = value; }
231 
232     /**
233      * If set to auto, pid number used for ARIB Captions will be auto-selected from
234      * unused pids.  If set to useConfigured, ARIB Captions will be on the configured
235      * pid number.
236      */
SetAribCaptionsPidControl(M2tsAribCaptionsPidControl && value)237     inline void SetAribCaptionsPidControl(M2tsAribCaptionsPidControl&& value) { m_aribCaptionsPidControlHasBeenSet = true; m_aribCaptionsPidControl = std::move(value); }
238 
239     /**
240      * If set to auto, pid number used for ARIB Captions will be auto-selected from
241      * unused pids.  If set to useConfigured, ARIB Captions will be on the configured
242      * pid number.
243      */
WithAribCaptionsPidControl(const M2tsAribCaptionsPidControl & value)244     inline M2tsSettings& WithAribCaptionsPidControl(const M2tsAribCaptionsPidControl& value) { SetAribCaptionsPidControl(value); return *this;}
245 
246     /**
247      * If set to auto, pid number used for ARIB Captions will be auto-selected from
248      * unused pids.  If set to useConfigured, ARIB Captions will be on the configured
249      * pid number.
250      */
WithAribCaptionsPidControl(M2tsAribCaptionsPidControl && value)251     inline M2tsSettings& WithAribCaptionsPidControl(M2tsAribCaptionsPidControl&& value) { SetAribCaptionsPidControl(std::move(value)); return *this;}
252 
253 
254     /**
255      * When set to dvb, uses DVB buffer model for Dolby Digital audio.  When set to
256      * atsc, the ATSC model is used.
257      */
GetAudioBufferModel()258     inline const M2tsAudioBufferModel& GetAudioBufferModel() const{ return m_audioBufferModel; }
259 
260     /**
261      * When set to dvb, uses DVB buffer model for Dolby Digital audio.  When set to
262      * atsc, the ATSC model is used.
263      */
AudioBufferModelHasBeenSet()264     inline bool AudioBufferModelHasBeenSet() const { return m_audioBufferModelHasBeenSet; }
265 
266     /**
267      * When set to dvb, uses DVB buffer model for Dolby Digital audio.  When set to
268      * atsc, the ATSC model is used.
269      */
SetAudioBufferModel(const M2tsAudioBufferModel & value)270     inline void SetAudioBufferModel(const M2tsAudioBufferModel& value) { m_audioBufferModelHasBeenSet = true; m_audioBufferModel = value; }
271 
272     /**
273      * When set to dvb, uses DVB buffer model for Dolby Digital audio.  When set to
274      * atsc, the ATSC model is used.
275      */
SetAudioBufferModel(M2tsAudioBufferModel && value)276     inline void SetAudioBufferModel(M2tsAudioBufferModel&& value) { m_audioBufferModelHasBeenSet = true; m_audioBufferModel = std::move(value); }
277 
278     /**
279      * When set to dvb, uses DVB buffer model for Dolby Digital audio.  When set to
280      * atsc, the ATSC model is used.
281      */
WithAudioBufferModel(const M2tsAudioBufferModel & value)282     inline M2tsSettings& WithAudioBufferModel(const M2tsAudioBufferModel& value) { SetAudioBufferModel(value); return *this;}
283 
284     /**
285      * When set to dvb, uses DVB buffer model for Dolby Digital audio.  When set to
286      * atsc, the ATSC model is used.
287      */
WithAudioBufferModel(M2tsAudioBufferModel && value)288     inline M2tsSettings& WithAudioBufferModel(M2tsAudioBufferModel&& value) { SetAudioBufferModel(std::move(value)); return *this;}
289 
290 
291     /**
292      * The number of audio frames to insert for each PES packet.
293      */
GetAudioFramesPerPes()294     inline int GetAudioFramesPerPes() const{ return m_audioFramesPerPes; }
295 
296     /**
297      * The number of audio frames to insert for each PES packet.
298      */
AudioFramesPerPesHasBeenSet()299     inline bool AudioFramesPerPesHasBeenSet() const { return m_audioFramesPerPesHasBeenSet; }
300 
301     /**
302      * The number of audio frames to insert for each PES packet.
303      */
SetAudioFramesPerPes(int value)304     inline void SetAudioFramesPerPes(int value) { m_audioFramesPerPesHasBeenSet = true; m_audioFramesPerPes = value; }
305 
306     /**
307      * The number of audio frames to insert for each PES packet.
308      */
WithAudioFramesPerPes(int value)309     inline M2tsSettings& WithAudioFramesPerPes(int value) { SetAudioFramesPerPes(value); return *this;}
310 
311 
312     /**
313      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
314      * stream. Multiple values are accepted, and can be entered in ranges and/or by
315      * comma separation. Can be entered as decimal or hexadecimal values. Each PID
316      * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
317      */
GetAudioPids()318     inline const Aws::String& GetAudioPids() const{ return m_audioPids; }
319 
320     /**
321      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
322      * stream. Multiple values are accepted, and can be entered in ranges and/or by
323      * comma separation. Can be entered as decimal or hexadecimal values. Each PID
324      * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
325      */
AudioPidsHasBeenSet()326     inline bool AudioPidsHasBeenSet() const { return m_audioPidsHasBeenSet; }
327 
328     /**
329      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
330      * stream. Multiple values are accepted, and can be entered in ranges and/or by
331      * comma separation. Can be entered as decimal or hexadecimal values. Each PID
332      * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
333      */
SetAudioPids(const Aws::String & value)334     inline void SetAudioPids(const Aws::String& value) { m_audioPidsHasBeenSet = true; m_audioPids = value; }
335 
336     /**
337      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
338      * stream. Multiple values are accepted, and can be entered in ranges and/or by
339      * comma separation. Can be entered as decimal or hexadecimal values. Each PID
340      * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
341      */
SetAudioPids(Aws::String && value)342     inline void SetAudioPids(Aws::String&& value) { m_audioPidsHasBeenSet = true; m_audioPids = std::move(value); }
343 
344     /**
345      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
346      * stream. Multiple values are accepted, and can be entered in ranges and/or by
347      * comma separation. Can be entered as decimal or hexadecimal values. Each PID
348      * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
349      */
SetAudioPids(const char * value)350     inline void SetAudioPids(const char* value) { m_audioPidsHasBeenSet = true; m_audioPids.assign(value); }
351 
352     /**
353      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
354      * stream. Multiple values are accepted, and can be entered in ranges and/or by
355      * comma separation. Can be entered as decimal or hexadecimal values. Each PID
356      * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
357      */
WithAudioPids(const Aws::String & value)358     inline M2tsSettings& WithAudioPids(const Aws::String& value) { SetAudioPids(value); return *this;}
359 
360     /**
361      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
362      * stream. Multiple values are accepted, and can be entered in ranges and/or by
363      * comma separation. Can be entered as decimal or hexadecimal values. Each PID
364      * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
365      */
WithAudioPids(Aws::String && value)366     inline M2tsSettings& WithAudioPids(Aws::String&& value) { SetAudioPids(std::move(value)); return *this;}
367 
368     /**
369      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
370      * stream. Multiple values are accepted, and can be entered in ranges and/or by
371      * comma separation. Can be entered as decimal or hexadecimal values. Each PID
372      * specified must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
373      */
WithAudioPids(const char * value)374     inline M2tsSettings& WithAudioPids(const char* value) { SetAudioPids(value); return *this;}
375 
376 
377     /**
378      * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for
379      * EAC3. When set to dvb, uses stream type = 0x06.
380      */
GetAudioStreamType()381     inline const M2tsAudioStreamType& GetAudioStreamType() const{ return m_audioStreamType; }
382 
383     /**
384      * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for
385      * EAC3. When set to dvb, uses stream type = 0x06.
386      */
AudioStreamTypeHasBeenSet()387     inline bool AudioStreamTypeHasBeenSet() const { return m_audioStreamTypeHasBeenSet; }
388 
389     /**
390      * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for
391      * EAC3. When set to dvb, uses stream type = 0x06.
392      */
SetAudioStreamType(const M2tsAudioStreamType & value)393     inline void SetAudioStreamType(const M2tsAudioStreamType& value) { m_audioStreamTypeHasBeenSet = true; m_audioStreamType = value; }
394 
395     /**
396      * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for
397      * EAC3. When set to dvb, uses stream type = 0x06.
398      */
SetAudioStreamType(M2tsAudioStreamType && value)399     inline void SetAudioStreamType(M2tsAudioStreamType&& value) { m_audioStreamTypeHasBeenSet = true; m_audioStreamType = std::move(value); }
400 
401     /**
402      * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for
403      * EAC3. When set to dvb, uses stream type = 0x06.
404      */
WithAudioStreamType(const M2tsAudioStreamType & value)405     inline M2tsSettings& WithAudioStreamType(const M2tsAudioStreamType& value) { SetAudioStreamType(value); return *this;}
406 
407     /**
408      * When set to atsc, uses stream type = 0x81 for AC3 and stream type = 0x87 for
409      * EAC3. When set to dvb, uses stream type = 0x06.
410      */
WithAudioStreamType(M2tsAudioStreamType && value)411     inline M2tsSettings& WithAudioStreamType(M2tsAudioStreamType&& value) { SetAudioStreamType(std::move(value)); return *this;}
412 
413 
414     /**
415      * The output bitrate of the transport stream in bits per second. Setting to 0 lets
416      * the muxer automatically determine the appropriate bitrate.
417      */
GetBitrate()418     inline int GetBitrate() const{ return m_bitrate; }
419 
420     /**
421      * The output bitrate of the transport stream in bits per second. Setting to 0 lets
422      * the muxer automatically determine the appropriate bitrate.
423      */
BitrateHasBeenSet()424     inline bool BitrateHasBeenSet() const { return m_bitrateHasBeenSet; }
425 
426     /**
427      * The output bitrate of the transport stream in bits per second. Setting to 0 lets
428      * the muxer automatically determine the appropriate bitrate.
429      */
SetBitrate(int value)430     inline void SetBitrate(int value) { m_bitrateHasBeenSet = true; m_bitrate = value; }
431 
432     /**
433      * The output bitrate of the transport stream in bits per second. Setting to 0 lets
434      * the muxer automatically determine the appropriate bitrate.
435      */
WithBitrate(int value)436     inline M2tsSettings& WithBitrate(int value) { SetBitrate(value); return *this;}
437 
438 
439     /**
440      * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to
441      * ensure accurate network packet timing. Or set to NONE, which might result in
442      * lower latency but will result in more variability in output network packet
443      * timing. This variability might cause interruptions, jitter, or bursty behavior
444      * in your playback or receiving devices.
445      */
GetBufferModel()446     inline const M2tsBufferModel& GetBufferModel() const{ return m_bufferModel; }
447 
448     /**
449      * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to
450      * ensure accurate network packet timing. Or set to NONE, which might result in
451      * lower latency but will result in more variability in output network packet
452      * timing. This variability might cause interruptions, jitter, or bursty behavior
453      * in your playback or receiving devices.
454      */
BufferModelHasBeenSet()455     inline bool BufferModelHasBeenSet() const { return m_bufferModelHasBeenSet; }
456 
457     /**
458      * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to
459      * ensure accurate network packet timing. Or set to NONE, which might result in
460      * lower latency but will result in more variability in output network packet
461      * timing. This variability might cause interruptions, jitter, or bursty behavior
462      * in your playback or receiving devices.
463      */
SetBufferModel(const M2tsBufferModel & value)464     inline void SetBufferModel(const M2tsBufferModel& value) { m_bufferModelHasBeenSet = true; m_bufferModel = value; }
465 
466     /**
467      * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to
468      * ensure accurate network packet timing. Or set to NONE, which might result in
469      * lower latency but will result in more variability in output network packet
470      * timing. This variability might cause interruptions, jitter, or bursty behavior
471      * in your playback or receiving devices.
472      */
SetBufferModel(M2tsBufferModel && value)473     inline void SetBufferModel(M2tsBufferModel&& value) { m_bufferModelHasBeenSet = true; m_bufferModel = std::move(value); }
474 
475     /**
476      * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to
477      * ensure accurate network packet timing. Or set to NONE, which might result in
478      * lower latency but will result in more variability in output network packet
479      * timing. This variability might cause interruptions, jitter, or bursty behavior
480      * in your playback or receiving devices.
481      */
WithBufferModel(const M2tsBufferModel & value)482     inline M2tsSettings& WithBufferModel(const M2tsBufferModel& value) { SetBufferModel(value); return *this;}
483 
484     /**
485      * Controls the timing accuracy for output network traffic. Leave as MULTIPLEX to
486      * ensure accurate network packet timing. Or set to NONE, which might result in
487      * lower latency but will result in more variability in output network packet
488      * timing. This variability might cause interruptions, jitter, or bursty behavior
489      * in your playback or receiving devices.
490      */
WithBufferModel(M2tsBufferModel && value)491     inline M2tsSettings& WithBufferModel(M2tsBufferModel&& value) { SetBufferModel(std::move(value)); return *this;}
492 
493 
494     /**
495      * When set to enabled, generates captionServiceDescriptor in PMT.
496      */
GetCcDescriptor()497     inline const M2tsCcDescriptor& GetCcDescriptor() const{ return m_ccDescriptor; }
498 
499     /**
500      * When set to enabled, generates captionServiceDescriptor in PMT.
501      */
CcDescriptorHasBeenSet()502     inline bool CcDescriptorHasBeenSet() const { return m_ccDescriptorHasBeenSet; }
503 
504     /**
505      * When set to enabled, generates captionServiceDescriptor in PMT.
506      */
SetCcDescriptor(const M2tsCcDescriptor & value)507     inline void SetCcDescriptor(const M2tsCcDescriptor& value) { m_ccDescriptorHasBeenSet = true; m_ccDescriptor = value; }
508 
509     /**
510      * When set to enabled, generates captionServiceDescriptor in PMT.
511      */
SetCcDescriptor(M2tsCcDescriptor && value)512     inline void SetCcDescriptor(M2tsCcDescriptor&& value) { m_ccDescriptorHasBeenSet = true; m_ccDescriptor = std::move(value); }
513 
514     /**
515      * When set to enabled, generates captionServiceDescriptor in PMT.
516      */
WithCcDescriptor(const M2tsCcDescriptor & value)517     inline M2tsSettings& WithCcDescriptor(const M2tsCcDescriptor& value) { SetCcDescriptor(value); return *this;}
518 
519     /**
520      * When set to enabled, generates captionServiceDescriptor in PMT.
521      */
WithCcDescriptor(M2tsCcDescriptor && value)522     inline M2tsSettings& WithCcDescriptor(M2tsCcDescriptor&& value) { SetCcDescriptor(std::move(value)); return *this;}
523 
524 
525     /**
526      * Inserts DVB Network Information Table (NIT) at the specified table repetition
527      * interval.
528      */
GetDvbNitSettings()529     inline const DvbNitSettings& GetDvbNitSettings() const{ return m_dvbNitSettings; }
530 
531     /**
532      * Inserts DVB Network Information Table (NIT) at the specified table repetition
533      * interval.
534      */
DvbNitSettingsHasBeenSet()535     inline bool DvbNitSettingsHasBeenSet() const { return m_dvbNitSettingsHasBeenSet; }
536 
537     /**
538      * Inserts DVB Network Information Table (NIT) at the specified table repetition
539      * interval.
540      */
SetDvbNitSettings(const DvbNitSettings & value)541     inline void SetDvbNitSettings(const DvbNitSettings& value) { m_dvbNitSettingsHasBeenSet = true; m_dvbNitSettings = value; }
542 
543     /**
544      * Inserts DVB Network Information Table (NIT) at the specified table repetition
545      * interval.
546      */
SetDvbNitSettings(DvbNitSettings && value)547     inline void SetDvbNitSettings(DvbNitSettings&& value) { m_dvbNitSettingsHasBeenSet = true; m_dvbNitSettings = std::move(value); }
548 
549     /**
550      * Inserts DVB Network Information Table (NIT) at the specified table repetition
551      * interval.
552      */
WithDvbNitSettings(const DvbNitSettings & value)553     inline M2tsSettings& WithDvbNitSettings(const DvbNitSettings& value) { SetDvbNitSettings(value); return *this;}
554 
555     /**
556      * Inserts DVB Network Information Table (NIT) at the specified table repetition
557      * interval.
558      */
WithDvbNitSettings(DvbNitSettings && value)559     inline M2tsSettings& WithDvbNitSettings(DvbNitSettings&& value) { SetDvbNitSettings(std::move(value)); return *this;}
560 
561 
562     /**
563      * Inserts DVB Service Description Table (SDT) at the specified table repetition
564      * interval.
565      */
GetDvbSdtSettings()566     inline const DvbSdtSettings& GetDvbSdtSettings() const{ return m_dvbSdtSettings; }
567 
568     /**
569      * Inserts DVB Service Description Table (SDT) at the specified table repetition
570      * interval.
571      */
DvbSdtSettingsHasBeenSet()572     inline bool DvbSdtSettingsHasBeenSet() const { return m_dvbSdtSettingsHasBeenSet; }
573 
574     /**
575      * Inserts DVB Service Description Table (SDT) at the specified table repetition
576      * interval.
577      */
SetDvbSdtSettings(const DvbSdtSettings & value)578     inline void SetDvbSdtSettings(const DvbSdtSettings& value) { m_dvbSdtSettingsHasBeenSet = true; m_dvbSdtSettings = value; }
579 
580     /**
581      * Inserts DVB Service Description Table (SDT) at the specified table repetition
582      * interval.
583      */
SetDvbSdtSettings(DvbSdtSettings && value)584     inline void SetDvbSdtSettings(DvbSdtSettings&& value) { m_dvbSdtSettingsHasBeenSet = true; m_dvbSdtSettings = std::move(value); }
585 
586     /**
587      * Inserts DVB Service Description Table (SDT) at the specified table repetition
588      * interval.
589      */
WithDvbSdtSettings(const DvbSdtSettings & value)590     inline M2tsSettings& WithDvbSdtSettings(const DvbSdtSettings& value) { SetDvbSdtSettings(value); return *this;}
591 
592     /**
593      * Inserts DVB Service Description Table (SDT) at the specified table repetition
594      * interval.
595      */
WithDvbSdtSettings(DvbSdtSettings && value)596     inline M2tsSettings& WithDvbSdtSettings(DvbSdtSettings&& value) { SetDvbSdtSettings(std::move(value)); return *this;}
597 
598 
599     /**
600      * Packet Identifier (PID) for input source DVB Subtitle data to this output.
601      * Multiple values are accepted, and can be entered in ranges and/or by comma
602      * separation. Can be entered as decimal or hexadecimal values.  Each PID specified
603      * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
604      */
GetDvbSubPids()605     inline const Aws::String& GetDvbSubPids() const{ return m_dvbSubPids; }
606 
607     /**
608      * Packet Identifier (PID) for input source DVB Subtitle data to this output.
609      * Multiple values are accepted, and can be entered in ranges and/or by comma
610      * separation. Can be entered as decimal or hexadecimal values.  Each PID specified
611      * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
612      */
DvbSubPidsHasBeenSet()613     inline bool DvbSubPidsHasBeenSet() const { return m_dvbSubPidsHasBeenSet; }
614 
615     /**
616      * Packet Identifier (PID) for input source DVB Subtitle data to this output.
617      * Multiple values are accepted, and can be entered in ranges and/or by comma
618      * separation. Can be entered as decimal or hexadecimal values.  Each PID specified
619      * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
620      */
SetDvbSubPids(const Aws::String & value)621     inline void SetDvbSubPids(const Aws::String& value) { m_dvbSubPidsHasBeenSet = true; m_dvbSubPids = value; }
622 
623     /**
624      * Packet Identifier (PID) for input source DVB Subtitle data to this output.
625      * Multiple values are accepted, and can be entered in ranges and/or by comma
626      * separation. Can be entered as decimal or hexadecimal values.  Each PID specified
627      * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
628      */
SetDvbSubPids(Aws::String && value)629     inline void SetDvbSubPids(Aws::String&& value) { m_dvbSubPidsHasBeenSet = true; m_dvbSubPids = std::move(value); }
630 
631     /**
632      * Packet Identifier (PID) for input source DVB Subtitle data to this output.
633      * Multiple values are accepted, and can be entered in ranges and/or by comma
634      * separation. Can be entered as decimal or hexadecimal values.  Each PID specified
635      * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
636      */
SetDvbSubPids(const char * value)637     inline void SetDvbSubPids(const char* value) { m_dvbSubPidsHasBeenSet = true; m_dvbSubPids.assign(value); }
638 
639     /**
640      * Packet Identifier (PID) for input source DVB Subtitle data to this output.
641      * Multiple values are accepted, and can be entered in ranges and/or by comma
642      * separation. Can be entered as decimal or hexadecimal values.  Each PID specified
643      * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
644      */
WithDvbSubPids(const Aws::String & value)645     inline M2tsSettings& WithDvbSubPids(const Aws::String& value) { SetDvbSubPids(value); return *this;}
646 
647     /**
648      * Packet Identifier (PID) for input source DVB Subtitle data to this output.
649      * Multiple values are accepted, and can be entered in ranges and/or by comma
650      * separation. Can be entered as decimal or hexadecimal values.  Each PID specified
651      * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
652      */
WithDvbSubPids(Aws::String && value)653     inline M2tsSettings& WithDvbSubPids(Aws::String&& value) { SetDvbSubPids(std::move(value)); return *this;}
654 
655     /**
656      * Packet Identifier (PID) for input source DVB Subtitle data to this output.
657      * Multiple values are accepted, and can be entered in ranges and/or by comma
658      * separation. Can be entered as decimal or hexadecimal values.  Each PID specified
659      * must be in the range of 32 (or 0x20)..8182 (or 0x1ff6).
660      */
WithDvbSubPids(const char * value)661     inline M2tsSettings& WithDvbSubPids(const char* value) { SetDvbSubPids(value); return *this;}
662 
663 
664     /**
665      * Inserts DVB Time and Date Table (TDT) at the specified table repetition
666      * interval.
667      */
GetDvbTdtSettings()668     inline const DvbTdtSettings& GetDvbTdtSettings() const{ return m_dvbTdtSettings; }
669 
670     /**
671      * Inserts DVB Time and Date Table (TDT) at the specified table repetition
672      * interval.
673      */
DvbTdtSettingsHasBeenSet()674     inline bool DvbTdtSettingsHasBeenSet() const { return m_dvbTdtSettingsHasBeenSet; }
675 
676     /**
677      * Inserts DVB Time and Date Table (TDT) at the specified table repetition
678      * interval.
679      */
SetDvbTdtSettings(const DvbTdtSettings & value)680     inline void SetDvbTdtSettings(const DvbTdtSettings& value) { m_dvbTdtSettingsHasBeenSet = true; m_dvbTdtSettings = value; }
681 
682     /**
683      * Inserts DVB Time and Date Table (TDT) at the specified table repetition
684      * interval.
685      */
SetDvbTdtSettings(DvbTdtSettings && value)686     inline void SetDvbTdtSettings(DvbTdtSettings&& value) { m_dvbTdtSettingsHasBeenSet = true; m_dvbTdtSettings = std::move(value); }
687 
688     /**
689      * Inserts DVB Time and Date Table (TDT) at the specified table repetition
690      * interval.
691      */
WithDvbTdtSettings(const DvbTdtSettings & value)692     inline M2tsSettings& WithDvbTdtSettings(const DvbTdtSettings& value) { SetDvbTdtSettings(value); return *this;}
693 
694     /**
695      * Inserts DVB Time and Date Table (TDT) at the specified table repetition
696      * interval.
697      */
WithDvbTdtSettings(DvbTdtSettings && value)698     inline M2tsSettings& WithDvbTdtSettings(DvbTdtSettings&& value) { SetDvbTdtSettings(std::move(value)); return *this;}
699 
700 
701     /**
702      * Packet Identifier (PID) for input source DVB Teletext data to this output. Can
703      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
704      * 0x20)..8182 (or 0x1ff6).
705      */
GetDvbTeletextPid()706     inline const Aws::String& GetDvbTeletextPid() const{ return m_dvbTeletextPid; }
707 
708     /**
709      * Packet Identifier (PID) for input source DVB Teletext data to this output. Can
710      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
711      * 0x20)..8182 (or 0x1ff6).
712      */
DvbTeletextPidHasBeenSet()713     inline bool DvbTeletextPidHasBeenSet() const { return m_dvbTeletextPidHasBeenSet; }
714 
715     /**
716      * Packet Identifier (PID) for input source DVB Teletext data to this output. Can
717      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
718      * 0x20)..8182 (or 0x1ff6).
719      */
SetDvbTeletextPid(const Aws::String & value)720     inline void SetDvbTeletextPid(const Aws::String& value) { m_dvbTeletextPidHasBeenSet = true; m_dvbTeletextPid = value; }
721 
722     /**
723      * Packet Identifier (PID) for input source DVB Teletext data to this output. Can
724      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
725      * 0x20)..8182 (or 0x1ff6).
726      */
SetDvbTeletextPid(Aws::String && value)727     inline void SetDvbTeletextPid(Aws::String&& value) { m_dvbTeletextPidHasBeenSet = true; m_dvbTeletextPid = std::move(value); }
728 
729     /**
730      * Packet Identifier (PID) for input source DVB Teletext data to this output. Can
731      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
732      * 0x20)..8182 (or 0x1ff6).
733      */
SetDvbTeletextPid(const char * value)734     inline void SetDvbTeletextPid(const char* value) { m_dvbTeletextPidHasBeenSet = true; m_dvbTeletextPid.assign(value); }
735 
736     /**
737      * Packet Identifier (PID) for input source DVB Teletext data to this output. Can
738      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
739      * 0x20)..8182 (or 0x1ff6).
740      */
WithDvbTeletextPid(const Aws::String & value)741     inline M2tsSettings& WithDvbTeletextPid(const Aws::String& value) { SetDvbTeletextPid(value); return *this;}
742 
743     /**
744      * Packet Identifier (PID) for input source DVB Teletext data to this output. Can
745      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
746      * 0x20)..8182 (or 0x1ff6).
747      */
WithDvbTeletextPid(Aws::String && value)748     inline M2tsSettings& WithDvbTeletextPid(Aws::String&& value) { SetDvbTeletextPid(std::move(value)); return *this;}
749 
750     /**
751      * Packet Identifier (PID) for input source DVB Teletext data to this output. Can
752      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
753      * 0x20)..8182 (or 0x1ff6).
754      */
WithDvbTeletextPid(const char * value)755     inline M2tsSettings& WithDvbTeletextPid(const char* value) { SetDvbTeletextPid(value); return *this;}
756 
757 
758     /**
759      * If set to passthrough, passes any EBIF data from the input source to this
760      * output.
761      */
GetEbif()762     inline const M2tsEbifControl& GetEbif() const{ return m_ebif; }
763 
764     /**
765      * If set to passthrough, passes any EBIF data from the input source to this
766      * output.
767      */
EbifHasBeenSet()768     inline bool EbifHasBeenSet() const { return m_ebifHasBeenSet; }
769 
770     /**
771      * If set to passthrough, passes any EBIF data from the input source to this
772      * output.
773      */
SetEbif(const M2tsEbifControl & value)774     inline void SetEbif(const M2tsEbifControl& value) { m_ebifHasBeenSet = true; m_ebif = value; }
775 
776     /**
777      * If set to passthrough, passes any EBIF data from the input source to this
778      * output.
779      */
SetEbif(M2tsEbifControl && value)780     inline void SetEbif(M2tsEbifControl&& value) { m_ebifHasBeenSet = true; m_ebif = std::move(value); }
781 
782     /**
783      * If set to passthrough, passes any EBIF data from the input source to this
784      * output.
785      */
WithEbif(const M2tsEbifControl & value)786     inline M2tsSettings& WithEbif(const M2tsEbifControl& value) { SetEbif(value); return *this;}
787 
788     /**
789      * If set to passthrough, passes any EBIF data from the input source to this
790      * output.
791      */
WithEbif(M2tsEbifControl && value)792     inline M2tsSettings& WithEbif(M2tsEbifControl&& value) { SetEbif(std::move(value)); return *this;}
793 
794 
795     /**
796      * When videoAndFixedIntervals is selected, audio EBP markers will be added to
797      * partitions 3 and 4. The interval between these additional markers will be fixed,
798      * and will be slightly shorter than the video EBP marker interval. Only available
799      * when EBP Cablelabs segmentation markers are selected.  Partitions 1 and 2 will
800      * always follow the video interval.
801      */
GetEbpAudioInterval()802     inline const M2tsAudioInterval& GetEbpAudioInterval() const{ return m_ebpAudioInterval; }
803 
804     /**
805      * When videoAndFixedIntervals is selected, audio EBP markers will be added to
806      * partitions 3 and 4. The interval between these additional markers will be fixed,
807      * and will be slightly shorter than the video EBP marker interval. Only available
808      * when EBP Cablelabs segmentation markers are selected.  Partitions 1 and 2 will
809      * always follow the video interval.
810      */
EbpAudioIntervalHasBeenSet()811     inline bool EbpAudioIntervalHasBeenSet() const { return m_ebpAudioIntervalHasBeenSet; }
812 
813     /**
814      * When videoAndFixedIntervals is selected, audio EBP markers will be added to
815      * partitions 3 and 4. The interval between these additional markers will be fixed,
816      * and will be slightly shorter than the video EBP marker interval. Only available
817      * when EBP Cablelabs segmentation markers are selected.  Partitions 1 and 2 will
818      * always follow the video interval.
819      */
SetEbpAudioInterval(const M2tsAudioInterval & value)820     inline void SetEbpAudioInterval(const M2tsAudioInterval& value) { m_ebpAudioIntervalHasBeenSet = true; m_ebpAudioInterval = value; }
821 
822     /**
823      * When videoAndFixedIntervals is selected, audio EBP markers will be added to
824      * partitions 3 and 4. The interval between these additional markers will be fixed,
825      * and will be slightly shorter than the video EBP marker interval. Only available
826      * when EBP Cablelabs segmentation markers are selected.  Partitions 1 and 2 will
827      * always follow the video interval.
828      */
SetEbpAudioInterval(M2tsAudioInterval && value)829     inline void SetEbpAudioInterval(M2tsAudioInterval&& value) { m_ebpAudioIntervalHasBeenSet = true; m_ebpAudioInterval = std::move(value); }
830 
831     /**
832      * When videoAndFixedIntervals is selected, audio EBP markers will be added to
833      * partitions 3 and 4. The interval between these additional markers will be fixed,
834      * and will be slightly shorter than the video EBP marker interval. Only available
835      * when EBP Cablelabs segmentation markers are selected.  Partitions 1 and 2 will
836      * always follow the video interval.
837      */
WithEbpAudioInterval(const M2tsAudioInterval & value)838     inline M2tsSettings& WithEbpAudioInterval(const M2tsAudioInterval& value) { SetEbpAudioInterval(value); return *this;}
839 
840     /**
841      * When videoAndFixedIntervals is selected, audio EBP markers will be added to
842      * partitions 3 and 4. The interval between these additional markers will be fixed,
843      * and will be slightly shorter than the video EBP marker interval. Only available
844      * when EBP Cablelabs segmentation markers are selected.  Partitions 1 and 2 will
845      * always follow the video interval.
846      */
WithEbpAudioInterval(M2tsAudioInterval && value)847     inline M2tsSettings& WithEbpAudioInterval(M2tsAudioInterval&& value) { SetEbpAudioInterval(std::move(value)); return *this;}
848 
849 
850     /**
851      * When set, enforces that Encoder Boundary Points do not come within the specified
852      * time interval of each other by looking ahead at input video. If another EBP is
853      * going to come in within the specified time interval, the current EBP is not
854      * emitted, and the segment is "stretched" to the next marker.  The lookahead value
855      * does not add latency to the system. The Live Event must be configured elsewhere
856      * to create sufficient latency to make the lookahead accurate.
857      */
GetEbpLookaheadMs()858     inline int GetEbpLookaheadMs() const{ return m_ebpLookaheadMs; }
859 
860     /**
861      * When set, enforces that Encoder Boundary Points do not come within the specified
862      * time interval of each other by looking ahead at input video. If another EBP is
863      * going to come in within the specified time interval, the current EBP is not
864      * emitted, and the segment is "stretched" to the next marker.  The lookahead value
865      * does not add latency to the system. The Live Event must be configured elsewhere
866      * to create sufficient latency to make the lookahead accurate.
867      */
EbpLookaheadMsHasBeenSet()868     inline bool EbpLookaheadMsHasBeenSet() const { return m_ebpLookaheadMsHasBeenSet; }
869 
870     /**
871      * When set, enforces that Encoder Boundary Points do not come within the specified
872      * time interval of each other by looking ahead at input video. If another EBP is
873      * going to come in within the specified time interval, the current EBP is not
874      * emitted, and the segment is "stretched" to the next marker.  The lookahead value
875      * does not add latency to the system. The Live Event must be configured elsewhere
876      * to create sufficient latency to make the lookahead accurate.
877      */
SetEbpLookaheadMs(int value)878     inline void SetEbpLookaheadMs(int value) { m_ebpLookaheadMsHasBeenSet = true; m_ebpLookaheadMs = value; }
879 
880     /**
881      * When set, enforces that Encoder Boundary Points do not come within the specified
882      * time interval of each other by looking ahead at input video. If another EBP is
883      * going to come in within the specified time interval, the current EBP is not
884      * emitted, and the segment is "stretched" to the next marker.  The lookahead value
885      * does not add latency to the system. The Live Event must be configured elsewhere
886      * to create sufficient latency to make the lookahead accurate.
887      */
WithEbpLookaheadMs(int value)888     inline M2tsSettings& WithEbpLookaheadMs(int value) { SetEbpLookaheadMs(value); return *this;}
889 
890 
891     /**
892      * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP
893      * markers will be placed on the video PID and all audio PIDs.  If set to videoPid,
894      * EBP markers will be placed on only the video PID.
895      */
GetEbpPlacement()896     inline const M2tsEbpPlacement& GetEbpPlacement() const{ return m_ebpPlacement; }
897 
898     /**
899      * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP
900      * markers will be placed on the video PID and all audio PIDs.  If set to videoPid,
901      * EBP markers will be placed on only the video PID.
902      */
EbpPlacementHasBeenSet()903     inline bool EbpPlacementHasBeenSet() const { return m_ebpPlacementHasBeenSet; }
904 
905     /**
906      * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP
907      * markers will be placed on the video PID and all audio PIDs.  If set to videoPid,
908      * EBP markers will be placed on only the video PID.
909      */
SetEbpPlacement(const M2tsEbpPlacement & value)910     inline void SetEbpPlacement(const M2tsEbpPlacement& value) { m_ebpPlacementHasBeenSet = true; m_ebpPlacement = value; }
911 
912     /**
913      * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP
914      * markers will be placed on the video PID and all audio PIDs.  If set to videoPid,
915      * EBP markers will be placed on only the video PID.
916      */
SetEbpPlacement(M2tsEbpPlacement && value)917     inline void SetEbpPlacement(M2tsEbpPlacement&& value) { m_ebpPlacementHasBeenSet = true; m_ebpPlacement = std::move(value); }
918 
919     /**
920      * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP
921      * markers will be placed on the video PID and all audio PIDs.  If set to videoPid,
922      * EBP markers will be placed on only the video PID.
923      */
WithEbpPlacement(const M2tsEbpPlacement & value)924     inline M2tsSettings& WithEbpPlacement(const M2tsEbpPlacement& value) { SetEbpPlacement(value); return *this;}
925 
926     /**
927      * Controls placement of EBP on Audio PIDs. If set to videoAndAudioPids, EBP
928      * markers will be placed on the video PID and all audio PIDs.  If set to videoPid,
929      * EBP markers will be placed on only the video PID.
930      */
WithEbpPlacement(M2tsEbpPlacement && value)931     inline M2tsSettings& WithEbpPlacement(M2tsEbpPlacement&& value) { SetEbpPlacement(std::move(value)); return *this;}
932 
933 
934     /**
935      * This field is unused and deprecated.
936      */
GetEcmPid()937     inline const Aws::String& GetEcmPid() const{ return m_ecmPid; }
938 
939     /**
940      * This field is unused and deprecated.
941      */
EcmPidHasBeenSet()942     inline bool EcmPidHasBeenSet() const { return m_ecmPidHasBeenSet; }
943 
944     /**
945      * This field is unused and deprecated.
946      */
SetEcmPid(const Aws::String & value)947     inline void SetEcmPid(const Aws::String& value) { m_ecmPidHasBeenSet = true; m_ecmPid = value; }
948 
949     /**
950      * This field is unused and deprecated.
951      */
SetEcmPid(Aws::String && value)952     inline void SetEcmPid(Aws::String&& value) { m_ecmPidHasBeenSet = true; m_ecmPid = std::move(value); }
953 
954     /**
955      * This field is unused and deprecated.
956      */
SetEcmPid(const char * value)957     inline void SetEcmPid(const char* value) { m_ecmPidHasBeenSet = true; m_ecmPid.assign(value); }
958 
959     /**
960      * This field is unused and deprecated.
961      */
WithEcmPid(const Aws::String & value)962     inline M2tsSettings& WithEcmPid(const Aws::String& value) { SetEcmPid(value); return *this;}
963 
964     /**
965      * This field is unused and deprecated.
966      */
WithEcmPid(Aws::String && value)967     inline M2tsSettings& WithEcmPid(Aws::String&& value) { SetEcmPid(std::move(value)); return *this;}
968 
969     /**
970      * This field is unused and deprecated.
971      */
WithEcmPid(const char * value)972     inline M2tsSettings& WithEcmPid(const char* value) { SetEcmPid(value); return *this;}
973 
974 
975     /**
976      * Include or exclude the ES Rate field in the PES header.
977      */
GetEsRateInPes()978     inline const M2tsEsRateInPes& GetEsRateInPes() const{ return m_esRateInPes; }
979 
980     /**
981      * Include or exclude the ES Rate field in the PES header.
982      */
EsRateInPesHasBeenSet()983     inline bool EsRateInPesHasBeenSet() const { return m_esRateInPesHasBeenSet; }
984 
985     /**
986      * Include or exclude the ES Rate field in the PES header.
987      */
SetEsRateInPes(const M2tsEsRateInPes & value)988     inline void SetEsRateInPes(const M2tsEsRateInPes& value) { m_esRateInPesHasBeenSet = true; m_esRateInPes = value; }
989 
990     /**
991      * Include or exclude the ES Rate field in the PES header.
992      */
SetEsRateInPes(M2tsEsRateInPes && value)993     inline void SetEsRateInPes(M2tsEsRateInPes&& value) { m_esRateInPesHasBeenSet = true; m_esRateInPes = std::move(value); }
994 
995     /**
996      * Include or exclude the ES Rate field in the PES header.
997      */
WithEsRateInPes(const M2tsEsRateInPes & value)998     inline M2tsSettings& WithEsRateInPes(const M2tsEsRateInPes& value) { SetEsRateInPes(value); return *this;}
999 
1000     /**
1001      * Include or exclude the ES Rate field in the PES header.
1002      */
WithEsRateInPes(M2tsEsRateInPes && value)1003     inline M2tsSettings& WithEsRateInPes(M2tsEsRateInPes&& value) { SetEsRateInPes(std::move(value)); return *this;}
1004 
1005 
1006     /**
1007      * Packet Identifier (PID) for input source ETV Platform data to this output. Can
1008      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
1009      * 0x20)..8182 (or 0x1ff6).
1010      */
GetEtvPlatformPid()1011     inline const Aws::String& GetEtvPlatformPid() const{ return m_etvPlatformPid; }
1012 
1013     /**
1014      * Packet Identifier (PID) for input source ETV Platform data to this output. Can
1015      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
1016      * 0x20)..8182 (or 0x1ff6).
1017      */
EtvPlatformPidHasBeenSet()1018     inline bool EtvPlatformPidHasBeenSet() const { return m_etvPlatformPidHasBeenSet; }
1019 
1020     /**
1021      * Packet Identifier (PID) for input source ETV Platform data to this output. Can
1022      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
1023      * 0x20)..8182 (or 0x1ff6).
1024      */
SetEtvPlatformPid(const Aws::String & value)1025     inline void SetEtvPlatformPid(const Aws::String& value) { m_etvPlatformPidHasBeenSet = true; m_etvPlatformPid = value; }
1026 
1027     /**
1028      * Packet Identifier (PID) for input source ETV Platform data to this output. Can
1029      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
1030      * 0x20)..8182 (or 0x1ff6).
1031      */
SetEtvPlatformPid(Aws::String && value)1032     inline void SetEtvPlatformPid(Aws::String&& value) { m_etvPlatformPidHasBeenSet = true; m_etvPlatformPid = std::move(value); }
1033 
1034     /**
1035      * Packet Identifier (PID) for input source ETV Platform data to this output. Can
1036      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
1037      * 0x20)..8182 (or 0x1ff6).
1038      */
SetEtvPlatformPid(const char * value)1039     inline void SetEtvPlatformPid(const char* value) { m_etvPlatformPidHasBeenSet = true; m_etvPlatformPid.assign(value); }
1040 
1041     /**
1042      * Packet Identifier (PID) for input source ETV Platform data to this output. Can
1043      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
1044      * 0x20)..8182 (or 0x1ff6).
1045      */
WithEtvPlatformPid(const Aws::String & value)1046     inline M2tsSettings& WithEtvPlatformPid(const Aws::String& value) { SetEtvPlatformPid(value); return *this;}
1047 
1048     /**
1049      * Packet Identifier (PID) for input source ETV Platform data to this output. Can
1050      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
1051      * 0x20)..8182 (or 0x1ff6).
1052      */
WithEtvPlatformPid(Aws::String && value)1053     inline M2tsSettings& WithEtvPlatformPid(Aws::String&& value) { SetEtvPlatformPid(std::move(value)); return *this;}
1054 
1055     /**
1056      * Packet Identifier (PID) for input source ETV Platform data to this output. Can
1057      * be entered as a decimal or hexadecimal value.  Valid values are 32 (or
1058      * 0x20)..8182 (or 0x1ff6).
1059      */
WithEtvPlatformPid(const char * value)1060     inline M2tsSettings& WithEtvPlatformPid(const char* value) { SetEtvPlatformPid(value); return *this;}
1061 
1062 
1063     /**
1064      * Packet Identifier (PID) for input source ETV Signal data to this output. Can be
1065      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1066      * (or 0x1ff6).
1067      */
GetEtvSignalPid()1068     inline const Aws::String& GetEtvSignalPid() const{ return m_etvSignalPid; }
1069 
1070     /**
1071      * Packet Identifier (PID) for input source ETV Signal data to this output. Can be
1072      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1073      * (or 0x1ff6).
1074      */
EtvSignalPidHasBeenSet()1075     inline bool EtvSignalPidHasBeenSet() const { return m_etvSignalPidHasBeenSet; }
1076 
1077     /**
1078      * Packet Identifier (PID) for input source ETV Signal data to this output. Can be
1079      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1080      * (or 0x1ff6).
1081      */
SetEtvSignalPid(const Aws::String & value)1082     inline void SetEtvSignalPid(const Aws::String& value) { m_etvSignalPidHasBeenSet = true; m_etvSignalPid = value; }
1083 
1084     /**
1085      * Packet Identifier (PID) for input source ETV Signal data to this output. Can be
1086      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1087      * (or 0x1ff6).
1088      */
SetEtvSignalPid(Aws::String && value)1089     inline void SetEtvSignalPid(Aws::String&& value) { m_etvSignalPidHasBeenSet = true; m_etvSignalPid = std::move(value); }
1090 
1091     /**
1092      * Packet Identifier (PID) for input source ETV Signal data to this output. Can be
1093      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1094      * (or 0x1ff6).
1095      */
SetEtvSignalPid(const char * value)1096     inline void SetEtvSignalPid(const char* value) { m_etvSignalPidHasBeenSet = true; m_etvSignalPid.assign(value); }
1097 
1098     /**
1099      * Packet Identifier (PID) for input source ETV Signal data to this output. Can be
1100      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1101      * (or 0x1ff6).
1102      */
WithEtvSignalPid(const Aws::String & value)1103     inline M2tsSettings& WithEtvSignalPid(const Aws::String& value) { SetEtvSignalPid(value); return *this;}
1104 
1105     /**
1106      * Packet Identifier (PID) for input source ETV Signal data to this output. Can be
1107      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1108      * (or 0x1ff6).
1109      */
WithEtvSignalPid(Aws::String && value)1110     inline M2tsSettings& WithEtvSignalPid(Aws::String&& value) { SetEtvSignalPid(std::move(value)); return *this;}
1111 
1112     /**
1113      * Packet Identifier (PID) for input source ETV Signal data to this output. Can be
1114      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1115      * (or 0x1ff6).
1116      */
WithEtvSignalPid(const char * value)1117     inline M2tsSettings& WithEtvSignalPid(const char* value) { SetEtvSignalPid(value); return *this;}
1118 
1119 
1120     /**
1121      * The length in seconds of each fragment. Only used with EBP markers.
1122      */
GetFragmentTime()1123     inline double GetFragmentTime() const{ return m_fragmentTime; }
1124 
1125     /**
1126      * The length in seconds of each fragment. Only used with EBP markers.
1127      */
FragmentTimeHasBeenSet()1128     inline bool FragmentTimeHasBeenSet() const { return m_fragmentTimeHasBeenSet; }
1129 
1130     /**
1131      * The length in seconds of each fragment. Only used with EBP markers.
1132      */
SetFragmentTime(double value)1133     inline void SetFragmentTime(double value) { m_fragmentTimeHasBeenSet = true; m_fragmentTime = value; }
1134 
1135     /**
1136      * The length in seconds of each fragment. Only used with EBP markers.
1137      */
WithFragmentTime(double value)1138     inline M2tsSettings& WithFragmentTime(double value) { SetFragmentTime(value); return *this;}
1139 
1140 
1141     /**
1142      * If set to passthrough, passes any KLV data from the input source to this output.
1143      */
GetKlv()1144     inline const M2tsKlv& GetKlv() const{ return m_klv; }
1145 
1146     /**
1147      * If set to passthrough, passes any KLV data from the input source to this output.
1148      */
KlvHasBeenSet()1149     inline bool KlvHasBeenSet() const { return m_klvHasBeenSet; }
1150 
1151     /**
1152      * If set to passthrough, passes any KLV data from the input source to this output.
1153      */
SetKlv(const M2tsKlv & value)1154     inline void SetKlv(const M2tsKlv& value) { m_klvHasBeenSet = true; m_klv = value; }
1155 
1156     /**
1157      * If set to passthrough, passes any KLV data from the input source to this output.
1158      */
SetKlv(M2tsKlv && value)1159     inline void SetKlv(M2tsKlv&& value) { m_klvHasBeenSet = true; m_klv = std::move(value); }
1160 
1161     /**
1162      * If set to passthrough, passes any KLV data from the input source to this output.
1163      */
WithKlv(const M2tsKlv & value)1164     inline M2tsSettings& WithKlv(const M2tsKlv& value) { SetKlv(value); return *this;}
1165 
1166     /**
1167      * If set to passthrough, passes any KLV data from the input source to this output.
1168      */
WithKlv(M2tsKlv && value)1169     inline M2tsSettings& WithKlv(M2tsKlv&& value) { SetKlv(std::move(value)); return *this;}
1170 
1171 
1172     /**
1173      * Packet Identifier (PID) for input source KLV data to this output. Multiple
1174      * values are accepted, and can be entered in ranges and/or by comma separation.
1175      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1176      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1177      */
GetKlvDataPids()1178     inline const Aws::String& GetKlvDataPids() const{ return m_klvDataPids; }
1179 
1180     /**
1181      * Packet Identifier (PID) for input source KLV data to this output. Multiple
1182      * values are accepted, and can be entered in ranges and/or by comma separation.
1183      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1184      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1185      */
KlvDataPidsHasBeenSet()1186     inline bool KlvDataPidsHasBeenSet() const { return m_klvDataPidsHasBeenSet; }
1187 
1188     /**
1189      * Packet Identifier (PID) for input source KLV data to this output. Multiple
1190      * values are accepted, and can be entered in ranges and/or by comma separation.
1191      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1192      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1193      */
SetKlvDataPids(const Aws::String & value)1194     inline void SetKlvDataPids(const Aws::String& value) { m_klvDataPidsHasBeenSet = true; m_klvDataPids = value; }
1195 
1196     /**
1197      * Packet Identifier (PID) for input source KLV data to this output. Multiple
1198      * values are accepted, and can be entered in ranges and/or by comma separation.
1199      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1200      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1201      */
SetKlvDataPids(Aws::String && value)1202     inline void SetKlvDataPids(Aws::String&& value) { m_klvDataPidsHasBeenSet = true; m_klvDataPids = std::move(value); }
1203 
1204     /**
1205      * Packet Identifier (PID) for input source KLV data to this output. Multiple
1206      * values are accepted, and can be entered in ranges and/or by comma separation.
1207      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1208      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1209      */
SetKlvDataPids(const char * value)1210     inline void SetKlvDataPids(const char* value) { m_klvDataPidsHasBeenSet = true; m_klvDataPids.assign(value); }
1211 
1212     /**
1213      * Packet Identifier (PID) for input source KLV data to this output. Multiple
1214      * values are accepted, and can be entered in ranges and/or by comma separation.
1215      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1216      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1217      */
WithKlvDataPids(const Aws::String & value)1218     inline M2tsSettings& WithKlvDataPids(const Aws::String& value) { SetKlvDataPids(value); return *this;}
1219 
1220     /**
1221      * Packet Identifier (PID) for input source KLV data to this output. Multiple
1222      * values are accepted, and can be entered in ranges and/or by comma separation.
1223      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1224      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1225      */
WithKlvDataPids(Aws::String && value)1226     inline M2tsSettings& WithKlvDataPids(Aws::String&& value) { SetKlvDataPids(std::move(value)); return *this;}
1227 
1228     /**
1229      * Packet Identifier (PID) for input source KLV data to this output. Multiple
1230      * values are accepted, and can be entered in ranges and/or by comma separation.
1231      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1232      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1233      */
WithKlvDataPids(const char * value)1234     inline M2tsSettings& WithKlvDataPids(const char* value) { SetKlvDataPids(value); return *this;}
1235 
1236 
1237     /**
1238      * If set to passthrough, Nielsen inaudible tones for media tracking will be
1239      * detected in the input audio and an equivalent ID3 tag will be inserted in the
1240      * output.
1241      */
GetNielsenId3Behavior()1242     inline const M2tsNielsenId3Behavior& GetNielsenId3Behavior() const{ return m_nielsenId3Behavior; }
1243 
1244     /**
1245      * If set to passthrough, Nielsen inaudible tones for media tracking will be
1246      * detected in the input audio and an equivalent ID3 tag will be inserted in the
1247      * output.
1248      */
NielsenId3BehaviorHasBeenSet()1249     inline bool NielsenId3BehaviorHasBeenSet() const { return m_nielsenId3BehaviorHasBeenSet; }
1250 
1251     /**
1252      * If set to passthrough, Nielsen inaudible tones for media tracking will be
1253      * detected in the input audio and an equivalent ID3 tag will be inserted in the
1254      * output.
1255      */
SetNielsenId3Behavior(const M2tsNielsenId3Behavior & value)1256     inline void SetNielsenId3Behavior(const M2tsNielsenId3Behavior& value) { m_nielsenId3BehaviorHasBeenSet = true; m_nielsenId3Behavior = value; }
1257 
1258     /**
1259      * If set to passthrough, Nielsen inaudible tones for media tracking will be
1260      * detected in the input audio and an equivalent ID3 tag will be inserted in the
1261      * output.
1262      */
SetNielsenId3Behavior(M2tsNielsenId3Behavior && value)1263     inline void SetNielsenId3Behavior(M2tsNielsenId3Behavior&& value) { m_nielsenId3BehaviorHasBeenSet = true; m_nielsenId3Behavior = std::move(value); }
1264 
1265     /**
1266      * If set to passthrough, Nielsen inaudible tones for media tracking will be
1267      * detected in the input audio and an equivalent ID3 tag will be inserted in the
1268      * output.
1269      */
WithNielsenId3Behavior(const M2tsNielsenId3Behavior & value)1270     inline M2tsSettings& WithNielsenId3Behavior(const M2tsNielsenId3Behavior& value) { SetNielsenId3Behavior(value); return *this;}
1271 
1272     /**
1273      * If set to passthrough, Nielsen inaudible tones for media tracking will be
1274      * detected in the input audio and an equivalent ID3 tag will be inserted in the
1275      * output.
1276      */
WithNielsenId3Behavior(M2tsNielsenId3Behavior && value)1277     inline M2tsSettings& WithNielsenId3Behavior(M2tsNielsenId3Behavior&& value) { SetNielsenId3Behavior(std::move(value)); return *this;}
1278 
1279 
1280     /**
1281      * Value in bits per second of extra null packets to insert into the transport
1282      * stream. This can be used if a downstream encryption system requires periodic
1283      * null packets.
1284      */
GetNullPacketBitrate()1285     inline double GetNullPacketBitrate() const{ return m_nullPacketBitrate; }
1286 
1287     /**
1288      * Value in bits per second of extra null packets to insert into the transport
1289      * stream. This can be used if a downstream encryption system requires periodic
1290      * null packets.
1291      */
NullPacketBitrateHasBeenSet()1292     inline bool NullPacketBitrateHasBeenSet() const { return m_nullPacketBitrateHasBeenSet; }
1293 
1294     /**
1295      * Value in bits per second of extra null packets to insert into the transport
1296      * stream. This can be used if a downstream encryption system requires periodic
1297      * null packets.
1298      */
SetNullPacketBitrate(double value)1299     inline void SetNullPacketBitrate(double value) { m_nullPacketBitrateHasBeenSet = true; m_nullPacketBitrate = value; }
1300 
1301     /**
1302      * Value in bits per second of extra null packets to insert into the transport
1303      * stream. This can be used if a downstream encryption system requires periodic
1304      * null packets.
1305      */
WithNullPacketBitrate(double value)1306     inline M2tsSettings& WithNullPacketBitrate(double value) { SetNullPacketBitrate(value); return *this;}
1307 
1308 
1309     /**
1310      * The number of milliseconds between instances of this table in the output
1311      * transport stream.  Valid values are 0, 10..1000.
1312      */
GetPatInterval()1313     inline int GetPatInterval() const{ return m_patInterval; }
1314 
1315     /**
1316      * The number of milliseconds between instances of this table in the output
1317      * transport stream.  Valid values are 0, 10..1000.
1318      */
PatIntervalHasBeenSet()1319     inline bool PatIntervalHasBeenSet() const { return m_patIntervalHasBeenSet; }
1320 
1321     /**
1322      * The number of milliseconds between instances of this table in the output
1323      * transport stream.  Valid values are 0, 10..1000.
1324      */
SetPatInterval(int value)1325     inline void SetPatInterval(int value) { m_patIntervalHasBeenSet = true; m_patInterval = value; }
1326 
1327     /**
1328      * The number of milliseconds between instances of this table in the output
1329      * transport stream.  Valid values are 0, 10..1000.
1330      */
WithPatInterval(int value)1331     inline M2tsSettings& WithPatInterval(int value) { SetPatInterval(value); return *this;}
1332 
1333 
1334     /**
1335      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
1336      * every Packetized Elementary Stream (PES) header. This parameter is effective
1337      * only when the PCR PID is the same as the video or audio elementary stream.
1338      */
GetPcrControl()1339     inline const M2tsPcrControl& GetPcrControl() const{ return m_pcrControl; }
1340 
1341     /**
1342      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
1343      * every Packetized Elementary Stream (PES) header. This parameter is effective
1344      * only when the PCR PID is the same as the video or audio elementary stream.
1345      */
PcrControlHasBeenSet()1346     inline bool PcrControlHasBeenSet() const { return m_pcrControlHasBeenSet; }
1347 
1348     /**
1349      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
1350      * every Packetized Elementary Stream (PES) header. This parameter is effective
1351      * only when the PCR PID is the same as the video or audio elementary stream.
1352      */
SetPcrControl(const M2tsPcrControl & value)1353     inline void SetPcrControl(const M2tsPcrControl& value) { m_pcrControlHasBeenSet = true; m_pcrControl = value; }
1354 
1355     /**
1356      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
1357      * every Packetized Elementary Stream (PES) header. This parameter is effective
1358      * only when the PCR PID is the same as the video or audio elementary stream.
1359      */
SetPcrControl(M2tsPcrControl && value)1360     inline void SetPcrControl(M2tsPcrControl&& value) { m_pcrControlHasBeenSet = true; m_pcrControl = std::move(value); }
1361 
1362     /**
1363      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
1364      * every Packetized Elementary Stream (PES) header. This parameter is effective
1365      * only when the PCR PID is the same as the video or audio elementary stream.
1366      */
WithPcrControl(const M2tsPcrControl & value)1367     inline M2tsSettings& WithPcrControl(const M2tsPcrControl& value) { SetPcrControl(value); return *this;}
1368 
1369     /**
1370      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
1371      * every Packetized Elementary Stream (PES) header. This parameter is effective
1372      * only when the PCR PID is the same as the video or audio elementary stream.
1373      */
WithPcrControl(M2tsPcrControl && value)1374     inline M2tsSettings& WithPcrControl(M2tsPcrControl&& value) { SetPcrControl(std::move(value)); return *this;}
1375 
1376 
1377     /**
1378      * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted
1379      * into the transport stream.
1380      */
GetPcrPeriod()1381     inline int GetPcrPeriod() const{ return m_pcrPeriod; }
1382 
1383     /**
1384      * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted
1385      * into the transport stream.
1386      */
PcrPeriodHasBeenSet()1387     inline bool PcrPeriodHasBeenSet() const { return m_pcrPeriodHasBeenSet; }
1388 
1389     /**
1390      * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted
1391      * into the transport stream.
1392      */
SetPcrPeriod(int value)1393     inline void SetPcrPeriod(int value) { m_pcrPeriodHasBeenSet = true; m_pcrPeriod = value; }
1394 
1395     /**
1396      * Maximum time in milliseconds between Program Clock Reference (PCRs) inserted
1397      * into the transport stream.
1398      */
WithPcrPeriod(int value)1399     inline M2tsSettings& WithPcrPeriod(int value) { SetPcrPeriod(value); return *this;}
1400 
1401 
1402     /**
1403      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
1404      * stream. When no value is given, the encoder will assign the same value as the
1405      * Video PID. Can be entered as a decimal or hexadecimal value.  Valid values are
1406      * 32 (or 0x20)..8182 (or 0x1ff6).
1407      */
GetPcrPid()1408     inline const Aws::String& GetPcrPid() const{ return m_pcrPid; }
1409 
1410     /**
1411      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
1412      * stream. When no value is given, the encoder will assign the same value as the
1413      * Video PID. Can be entered as a decimal or hexadecimal value.  Valid values are
1414      * 32 (or 0x20)..8182 (or 0x1ff6).
1415      */
PcrPidHasBeenSet()1416     inline bool PcrPidHasBeenSet() const { return m_pcrPidHasBeenSet; }
1417 
1418     /**
1419      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
1420      * stream. When no value is given, the encoder will assign the same value as the
1421      * Video PID. Can be entered as a decimal or hexadecimal value.  Valid values are
1422      * 32 (or 0x20)..8182 (or 0x1ff6).
1423      */
SetPcrPid(const Aws::String & value)1424     inline void SetPcrPid(const Aws::String& value) { m_pcrPidHasBeenSet = true; m_pcrPid = value; }
1425 
1426     /**
1427      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
1428      * stream. When no value is given, the encoder will assign the same value as the
1429      * Video PID. Can be entered as a decimal or hexadecimal value.  Valid values are
1430      * 32 (or 0x20)..8182 (or 0x1ff6).
1431      */
SetPcrPid(Aws::String && value)1432     inline void SetPcrPid(Aws::String&& value) { m_pcrPidHasBeenSet = true; m_pcrPid = std::move(value); }
1433 
1434     /**
1435      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
1436      * stream. When no value is given, the encoder will assign the same value as the
1437      * Video PID. Can be entered as a decimal or hexadecimal value.  Valid values are
1438      * 32 (or 0x20)..8182 (or 0x1ff6).
1439      */
SetPcrPid(const char * value)1440     inline void SetPcrPid(const char* value) { m_pcrPidHasBeenSet = true; m_pcrPid.assign(value); }
1441 
1442     /**
1443      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
1444      * stream. When no value is given, the encoder will assign the same value as the
1445      * Video PID. Can be entered as a decimal or hexadecimal value.  Valid values are
1446      * 32 (or 0x20)..8182 (or 0x1ff6).
1447      */
WithPcrPid(const Aws::String & value)1448     inline M2tsSettings& WithPcrPid(const Aws::String& value) { SetPcrPid(value); return *this;}
1449 
1450     /**
1451      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
1452      * stream. When no value is given, the encoder will assign the same value as the
1453      * Video PID. Can be entered as a decimal or hexadecimal value.  Valid values are
1454      * 32 (or 0x20)..8182 (or 0x1ff6).
1455      */
WithPcrPid(Aws::String && value)1456     inline M2tsSettings& WithPcrPid(Aws::String&& value) { SetPcrPid(std::move(value)); return *this;}
1457 
1458     /**
1459      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
1460      * stream. When no value is given, the encoder will assign the same value as the
1461      * Video PID. Can be entered as a decimal or hexadecimal value.  Valid values are
1462      * 32 (or 0x20)..8182 (or 0x1ff6).
1463      */
WithPcrPid(const char * value)1464     inline M2tsSettings& WithPcrPid(const char* value) { SetPcrPid(value); return *this;}
1465 
1466 
1467     /**
1468      * The number of milliseconds between instances of this table in the output
1469      * transport stream. Valid values are 0, 10..1000.
1470      */
GetPmtInterval()1471     inline int GetPmtInterval() const{ return m_pmtInterval; }
1472 
1473     /**
1474      * The number of milliseconds between instances of this table in the output
1475      * transport stream. Valid values are 0, 10..1000.
1476      */
PmtIntervalHasBeenSet()1477     inline bool PmtIntervalHasBeenSet() const { return m_pmtIntervalHasBeenSet; }
1478 
1479     /**
1480      * The number of milliseconds between instances of this table in the output
1481      * transport stream. Valid values are 0, 10..1000.
1482      */
SetPmtInterval(int value)1483     inline void SetPmtInterval(int value) { m_pmtIntervalHasBeenSet = true; m_pmtInterval = value; }
1484 
1485     /**
1486      * The number of milliseconds between instances of this table in the output
1487      * transport stream. Valid values are 0, 10..1000.
1488      */
WithPmtInterval(int value)1489     inline M2tsSettings& WithPmtInterval(int value) { SetPmtInterval(value); return *this;}
1490 
1491 
1492     /**
1493      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
1494      * Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
1495      * 0x20)..8182 (or 0x1ff6).
1496      */
GetPmtPid()1497     inline const Aws::String& GetPmtPid() const{ return m_pmtPid; }
1498 
1499     /**
1500      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
1501      * Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
1502      * 0x20)..8182 (or 0x1ff6).
1503      */
PmtPidHasBeenSet()1504     inline bool PmtPidHasBeenSet() const { return m_pmtPidHasBeenSet; }
1505 
1506     /**
1507      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
1508      * Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
1509      * 0x20)..8182 (or 0x1ff6).
1510      */
SetPmtPid(const Aws::String & value)1511     inline void SetPmtPid(const Aws::String& value) { m_pmtPidHasBeenSet = true; m_pmtPid = value; }
1512 
1513     /**
1514      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
1515      * Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
1516      * 0x20)..8182 (or 0x1ff6).
1517      */
SetPmtPid(Aws::String && value)1518     inline void SetPmtPid(Aws::String&& value) { m_pmtPidHasBeenSet = true; m_pmtPid = std::move(value); }
1519 
1520     /**
1521      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
1522      * Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
1523      * 0x20)..8182 (or 0x1ff6).
1524      */
SetPmtPid(const char * value)1525     inline void SetPmtPid(const char* value) { m_pmtPidHasBeenSet = true; m_pmtPid.assign(value); }
1526 
1527     /**
1528      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
1529      * Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
1530      * 0x20)..8182 (or 0x1ff6).
1531      */
WithPmtPid(const Aws::String & value)1532     inline M2tsSettings& WithPmtPid(const Aws::String& value) { SetPmtPid(value); return *this;}
1533 
1534     /**
1535      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
1536      * Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
1537      * 0x20)..8182 (or 0x1ff6).
1538      */
WithPmtPid(Aws::String && value)1539     inline M2tsSettings& WithPmtPid(Aws::String&& value) { SetPmtPid(std::move(value)); return *this;}
1540 
1541     /**
1542      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
1543      * Can be entered as a decimal or hexadecimal value. Valid values are 32 (or
1544      * 0x20)..8182 (or 0x1ff6).
1545      */
WithPmtPid(const char * value)1546     inline M2tsSettings& WithPmtPid(const char* value) { SetPmtPid(value); return *this;}
1547 
1548 
1549     /**
1550      * The value of the program number field in the Program Map Table.
1551      */
GetProgramNum()1552     inline int GetProgramNum() const{ return m_programNum; }
1553 
1554     /**
1555      * The value of the program number field in the Program Map Table.
1556      */
ProgramNumHasBeenSet()1557     inline bool ProgramNumHasBeenSet() const { return m_programNumHasBeenSet; }
1558 
1559     /**
1560      * The value of the program number field in the Program Map Table.
1561      */
SetProgramNum(int value)1562     inline void SetProgramNum(int value) { m_programNumHasBeenSet = true; m_programNum = value; }
1563 
1564     /**
1565      * The value of the program number field in the Program Map Table.
1566      */
WithProgramNum(int value)1567     inline M2tsSettings& WithProgramNum(int value) { SetProgramNum(value); return *this;}
1568 
1569 
1570     /**
1571      * When vbr, does not insert null packets into transport stream to fill specified
1572      * bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.
1573      */
GetRateMode()1574     inline const M2tsRateMode& GetRateMode() const{ return m_rateMode; }
1575 
1576     /**
1577      * When vbr, does not insert null packets into transport stream to fill specified
1578      * bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.
1579      */
RateModeHasBeenSet()1580     inline bool RateModeHasBeenSet() const { return m_rateModeHasBeenSet; }
1581 
1582     /**
1583      * When vbr, does not insert null packets into transport stream to fill specified
1584      * bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.
1585      */
SetRateMode(const M2tsRateMode & value)1586     inline void SetRateMode(const M2tsRateMode& value) { m_rateModeHasBeenSet = true; m_rateMode = value; }
1587 
1588     /**
1589      * When vbr, does not insert null packets into transport stream to fill specified
1590      * bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.
1591      */
SetRateMode(M2tsRateMode && value)1592     inline void SetRateMode(M2tsRateMode&& value) { m_rateModeHasBeenSet = true; m_rateMode = std::move(value); }
1593 
1594     /**
1595      * When vbr, does not insert null packets into transport stream to fill specified
1596      * bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.
1597      */
WithRateMode(const M2tsRateMode & value)1598     inline M2tsSettings& WithRateMode(const M2tsRateMode& value) { SetRateMode(value); return *this;}
1599 
1600     /**
1601      * When vbr, does not insert null packets into transport stream to fill specified
1602      * bitrate. The bitrate setting acts as the maximum bitrate when vbr is set.
1603      */
WithRateMode(M2tsRateMode && value)1604     inline M2tsSettings& WithRateMode(M2tsRateMode&& value) { SetRateMode(std::move(value)); return *this;}
1605 
1606 
1607     /**
1608      * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple
1609      * values are accepted, and can be entered in ranges and/or by comma separation.
1610      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1611      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1612      */
GetScte27Pids()1613     inline const Aws::String& GetScte27Pids() const{ return m_scte27Pids; }
1614 
1615     /**
1616      * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple
1617      * values are accepted, and can be entered in ranges and/or by comma separation.
1618      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1619      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1620      */
Scte27PidsHasBeenSet()1621     inline bool Scte27PidsHasBeenSet() const { return m_scte27PidsHasBeenSet; }
1622 
1623     /**
1624      * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple
1625      * values are accepted, and can be entered in ranges and/or by comma separation.
1626      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1627      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1628      */
SetScte27Pids(const Aws::String & value)1629     inline void SetScte27Pids(const Aws::String& value) { m_scte27PidsHasBeenSet = true; m_scte27Pids = value; }
1630 
1631     /**
1632      * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple
1633      * values are accepted, and can be entered in ranges and/or by comma separation.
1634      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1635      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1636      */
SetScte27Pids(Aws::String && value)1637     inline void SetScte27Pids(Aws::String&& value) { m_scte27PidsHasBeenSet = true; m_scte27Pids = std::move(value); }
1638 
1639     /**
1640      * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple
1641      * values are accepted, and can be entered in ranges and/or by comma separation.
1642      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1643      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1644      */
SetScte27Pids(const char * value)1645     inline void SetScte27Pids(const char* value) { m_scte27PidsHasBeenSet = true; m_scte27Pids.assign(value); }
1646 
1647     /**
1648      * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple
1649      * values are accepted, and can be entered in ranges and/or by comma separation.
1650      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1651      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1652      */
WithScte27Pids(const Aws::String & value)1653     inline M2tsSettings& WithScte27Pids(const Aws::String& value) { SetScte27Pids(value); return *this;}
1654 
1655     /**
1656      * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple
1657      * values are accepted, and can be entered in ranges and/or by comma separation.
1658      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1659      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1660      */
WithScte27Pids(Aws::String && value)1661     inline M2tsSettings& WithScte27Pids(Aws::String&& value) { SetScte27Pids(std::move(value)); return *this;}
1662 
1663     /**
1664      * Packet Identifier (PID) for input source SCTE-27 data to this output. Multiple
1665      * values are accepted, and can be entered in ranges and/or by comma separation.
1666      * Can be entered as decimal or hexadecimal values.  Each PID specified must be in
1667      * the range of 32 (or 0x20)..8182 (or 0x1ff6).
1668      */
WithScte27Pids(const char * value)1669     inline M2tsSettings& WithScte27Pids(const char* value) { SetScte27Pids(value); return *this;}
1670 
1671 
1672     /**
1673      * Optionally pass SCTE-35 signals from the input source to this output.
1674      */
GetScte35Control()1675     inline const M2tsScte35Control& GetScte35Control() const{ return m_scte35Control; }
1676 
1677     /**
1678      * Optionally pass SCTE-35 signals from the input source to this output.
1679      */
Scte35ControlHasBeenSet()1680     inline bool Scte35ControlHasBeenSet() const { return m_scte35ControlHasBeenSet; }
1681 
1682     /**
1683      * Optionally pass SCTE-35 signals from the input source to this output.
1684      */
SetScte35Control(const M2tsScte35Control & value)1685     inline void SetScte35Control(const M2tsScte35Control& value) { m_scte35ControlHasBeenSet = true; m_scte35Control = value; }
1686 
1687     /**
1688      * Optionally pass SCTE-35 signals from the input source to this output.
1689      */
SetScte35Control(M2tsScte35Control && value)1690     inline void SetScte35Control(M2tsScte35Control&& value) { m_scte35ControlHasBeenSet = true; m_scte35Control = std::move(value); }
1691 
1692     /**
1693      * Optionally pass SCTE-35 signals from the input source to this output.
1694      */
WithScte35Control(const M2tsScte35Control & value)1695     inline M2tsSettings& WithScte35Control(const M2tsScte35Control& value) { SetScte35Control(value); return *this;}
1696 
1697     /**
1698      * Optionally pass SCTE-35 signals from the input source to this output.
1699      */
WithScte35Control(M2tsScte35Control && value)1700     inline M2tsSettings& WithScte35Control(M2tsScte35Control&& value) { SetScte35Control(std::move(value)); return *this;}
1701 
1702 
1703     /**
1704      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
1705      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1706      * (or 0x1ff6).
1707      */
GetScte35Pid()1708     inline const Aws::String& GetScte35Pid() const{ return m_scte35Pid; }
1709 
1710     /**
1711      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
1712      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1713      * (or 0x1ff6).
1714      */
Scte35PidHasBeenSet()1715     inline bool Scte35PidHasBeenSet() const { return m_scte35PidHasBeenSet; }
1716 
1717     /**
1718      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
1719      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1720      * (or 0x1ff6).
1721      */
SetScte35Pid(const Aws::String & value)1722     inline void SetScte35Pid(const Aws::String& value) { m_scte35PidHasBeenSet = true; m_scte35Pid = value; }
1723 
1724     /**
1725      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
1726      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1727      * (or 0x1ff6).
1728      */
SetScte35Pid(Aws::String && value)1729     inline void SetScte35Pid(Aws::String&& value) { m_scte35PidHasBeenSet = true; m_scte35Pid = std::move(value); }
1730 
1731     /**
1732      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
1733      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1734      * (or 0x1ff6).
1735      */
SetScte35Pid(const char * value)1736     inline void SetScte35Pid(const char* value) { m_scte35PidHasBeenSet = true; m_scte35Pid.assign(value); }
1737 
1738     /**
1739      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
1740      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1741      * (or 0x1ff6).
1742      */
WithScte35Pid(const Aws::String & value)1743     inline M2tsSettings& WithScte35Pid(const Aws::String& value) { SetScte35Pid(value); return *this;}
1744 
1745     /**
1746      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
1747      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1748      * (or 0x1ff6).
1749      */
WithScte35Pid(Aws::String && value)1750     inline M2tsSettings& WithScte35Pid(Aws::String&& value) { SetScte35Pid(std::move(value)); return *this;}
1751 
1752     /**
1753      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
1754      * entered as a decimal or hexadecimal value.  Valid values are 32 (or 0x20)..8182
1755      * (or 0x1ff6).
1756      */
WithScte35Pid(const char * value)1757     inline M2tsSettings& WithScte35Pid(const char* value) { SetScte35Pid(value); return *this;}
1758 
1759 
1760     /**
1761      * Inserts segmentation markers at each segmentationTime period. raiSegstart sets
1762      * the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI
1763      * bit and adds the current timecode in the private data bytes. psiSegstart inserts
1764      * PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point
1765      * information to the adaptation field as per OpenCable specification
1766      * OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the
1767      * adaptation field using a legacy proprietary format.
1768      */
GetSegmentationMarkers()1769     inline const M2tsSegmentationMarkers& GetSegmentationMarkers() const{ return m_segmentationMarkers; }
1770 
1771     /**
1772      * Inserts segmentation markers at each segmentationTime period. raiSegstart sets
1773      * the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI
1774      * bit and adds the current timecode in the private data bytes. psiSegstart inserts
1775      * PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point
1776      * information to the adaptation field as per OpenCable specification
1777      * OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the
1778      * adaptation field using a legacy proprietary format.
1779      */
SegmentationMarkersHasBeenSet()1780     inline bool SegmentationMarkersHasBeenSet() const { return m_segmentationMarkersHasBeenSet; }
1781 
1782     /**
1783      * Inserts segmentation markers at each segmentationTime period. raiSegstart sets
1784      * the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI
1785      * bit and adds the current timecode in the private data bytes. psiSegstart inserts
1786      * PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point
1787      * information to the adaptation field as per OpenCable specification
1788      * OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the
1789      * adaptation field using a legacy proprietary format.
1790      */
SetSegmentationMarkers(const M2tsSegmentationMarkers & value)1791     inline void SetSegmentationMarkers(const M2tsSegmentationMarkers& value) { m_segmentationMarkersHasBeenSet = true; m_segmentationMarkers = value; }
1792 
1793     /**
1794      * Inserts segmentation markers at each segmentationTime period. raiSegstart sets
1795      * the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI
1796      * bit and adds the current timecode in the private data bytes. psiSegstart inserts
1797      * PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point
1798      * information to the adaptation field as per OpenCable specification
1799      * OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the
1800      * adaptation field using a legacy proprietary format.
1801      */
SetSegmentationMarkers(M2tsSegmentationMarkers && value)1802     inline void SetSegmentationMarkers(M2tsSegmentationMarkers&& value) { m_segmentationMarkersHasBeenSet = true; m_segmentationMarkers = std::move(value); }
1803 
1804     /**
1805      * Inserts segmentation markers at each segmentationTime period. raiSegstart sets
1806      * the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI
1807      * bit and adds the current timecode in the private data bytes. psiSegstart inserts
1808      * PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point
1809      * information to the adaptation field as per OpenCable specification
1810      * OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the
1811      * adaptation field using a legacy proprietary format.
1812      */
WithSegmentationMarkers(const M2tsSegmentationMarkers & value)1813     inline M2tsSettings& WithSegmentationMarkers(const M2tsSegmentationMarkers& value) { SetSegmentationMarkers(value); return *this;}
1814 
1815     /**
1816      * Inserts segmentation markers at each segmentationTime period. raiSegstart sets
1817      * the Random Access Indicator bit in the adaptation field. raiAdapt sets the RAI
1818      * bit and adds the current timecode in the private data bytes. psiSegstart inserts
1819      * PAT and PMT tables at the start of segments. ebp adds Encoder Boundary Point
1820      * information to the adaptation field as per OpenCable specification
1821      * OC-SP-EBP-I01-130118. ebpLegacy adds Encoder Boundary Point information to the
1822      * adaptation field using a legacy proprietary format.
1823      */
WithSegmentationMarkers(M2tsSegmentationMarkers && value)1824     inline M2tsSettings& WithSegmentationMarkers(M2tsSegmentationMarkers&& value) { SetSegmentationMarkers(std::move(value)); return *this;}
1825 
1826 
1827     /**
1828      * The segmentation style parameter controls how segmentation markers are inserted
1829      * into the transport stream. With avails, it is possible that segments may be
1830      * truncated, which can influence where future segmentation markers are
1831      * inserted.
1832 
1833 When a segmentation style of "resetCadence" is selected and a segment
1834      * is truncated due to an avail, we will reset the segmentation cadence. This means
1835      * the subsequent segment will have a duration of $segmentationTime seconds.
1836 
1837 When
1838      * a segmentation style of "maintainCadence" is selected and a segment is truncated
1839      * due to an avail, we will not reset the segmentation cadence. This means the
1840      * subsequent segment will likely be truncated as well. However, all segments after
1841      * that will have a duration of $segmentationTime seconds. Note that EBP lookahead
1842      * is a slight exception to this rule.
1843      */
GetSegmentationStyle()1844     inline const M2tsSegmentationStyle& GetSegmentationStyle() const{ return m_segmentationStyle; }
1845 
1846     /**
1847      * The segmentation style parameter controls how segmentation markers are inserted
1848      * into the transport stream. With avails, it is possible that segments may be
1849      * truncated, which can influence where future segmentation markers are
1850      * inserted.
1851 
1852 When a segmentation style of "resetCadence" is selected and a segment
1853      * is truncated due to an avail, we will reset the segmentation cadence. This means
1854      * the subsequent segment will have a duration of $segmentationTime seconds.
1855 
1856 When
1857      * a segmentation style of "maintainCadence" is selected and a segment is truncated
1858      * due to an avail, we will not reset the segmentation cadence. This means the
1859      * subsequent segment will likely be truncated as well. However, all segments after
1860      * that will have a duration of $segmentationTime seconds. Note that EBP lookahead
1861      * is a slight exception to this rule.
1862      */
SegmentationStyleHasBeenSet()1863     inline bool SegmentationStyleHasBeenSet() const { return m_segmentationStyleHasBeenSet; }
1864 
1865     /**
1866      * The segmentation style parameter controls how segmentation markers are inserted
1867      * into the transport stream. With avails, it is possible that segments may be
1868      * truncated, which can influence where future segmentation markers are
1869      * inserted.
1870 
1871 When a segmentation style of "resetCadence" is selected and a segment
1872      * is truncated due to an avail, we will reset the segmentation cadence. This means
1873      * the subsequent segment will have a duration of $segmentationTime seconds.
1874 
1875 When
1876      * a segmentation style of "maintainCadence" is selected and a segment is truncated
1877      * due to an avail, we will not reset the segmentation cadence. This means the
1878      * subsequent segment will likely be truncated as well. However, all segments after
1879      * that will have a duration of $segmentationTime seconds. Note that EBP lookahead
1880      * is a slight exception to this rule.
1881      */
SetSegmentationStyle(const M2tsSegmentationStyle & value)1882     inline void SetSegmentationStyle(const M2tsSegmentationStyle& value) { m_segmentationStyleHasBeenSet = true; m_segmentationStyle = value; }
1883 
1884     /**
1885      * The segmentation style parameter controls how segmentation markers are inserted
1886      * into the transport stream. With avails, it is possible that segments may be
1887      * truncated, which can influence where future segmentation markers are
1888      * inserted.
1889 
1890 When a segmentation style of "resetCadence" is selected and a segment
1891      * is truncated due to an avail, we will reset the segmentation cadence. This means
1892      * the subsequent segment will have a duration of $segmentationTime seconds.
1893 
1894 When
1895      * a segmentation style of "maintainCadence" is selected and a segment is truncated
1896      * due to an avail, we will not reset the segmentation cadence. This means the
1897      * subsequent segment will likely be truncated as well. However, all segments after
1898      * that will have a duration of $segmentationTime seconds. Note that EBP lookahead
1899      * is a slight exception to this rule.
1900      */
SetSegmentationStyle(M2tsSegmentationStyle && value)1901     inline void SetSegmentationStyle(M2tsSegmentationStyle&& value) { m_segmentationStyleHasBeenSet = true; m_segmentationStyle = std::move(value); }
1902 
1903     /**
1904      * The segmentation style parameter controls how segmentation markers are inserted
1905      * into the transport stream. With avails, it is possible that segments may be
1906      * truncated, which can influence where future segmentation markers are
1907      * inserted.
1908 
1909 When a segmentation style of "resetCadence" is selected and a segment
1910      * is truncated due to an avail, we will reset the segmentation cadence. This means
1911      * the subsequent segment will have a duration of $segmentationTime seconds.
1912 
1913 When
1914      * a segmentation style of "maintainCadence" is selected and a segment is truncated
1915      * due to an avail, we will not reset the segmentation cadence. This means the
1916      * subsequent segment will likely be truncated as well. However, all segments after
1917      * that will have a duration of $segmentationTime seconds. Note that EBP lookahead
1918      * is a slight exception to this rule.
1919      */
WithSegmentationStyle(const M2tsSegmentationStyle & value)1920     inline M2tsSettings& WithSegmentationStyle(const M2tsSegmentationStyle& value) { SetSegmentationStyle(value); return *this;}
1921 
1922     /**
1923      * The segmentation style parameter controls how segmentation markers are inserted
1924      * into the transport stream. With avails, it is possible that segments may be
1925      * truncated, which can influence where future segmentation markers are
1926      * inserted.
1927 
1928 When a segmentation style of "resetCadence" is selected and a segment
1929      * is truncated due to an avail, we will reset the segmentation cadence. This means
1930      * the subsequent segment will have a duration of $segmentationTime seconds.
1931 
1932 When
1933      * a segmentation style of "maintainCadence" is selected and a segment is truncated
1934      * due to an avail, we will not reset the segmentation cadence. This means the
1935      * subsequent segment will likely be truncated as well. However, all segments after
1936      * that will have a duration of $segmentationTime seconds. Note that EBP lookahead
1937      * is a slight exception to this rule.
1938      */
WithSegmentationStyle(M2tsSegmentationStyle && value)1939     inline M2tsSettings& WithSegmentationStyle(M2tsSegmentationStyle&& value) { SetSegmentationStyle(std::move(value)); return *this;}
1940 
1941 
1942     /**
1943      * The length in seconds of each segment. Required unless markers is set to _none_.
1944      */
GetSegmentationTime()1945     inline double GetSegmentationTime() const{ return m_segmentationTime; }
1946 
1947     /**
1948      * The length in seconds of each segment. Required unless markers is set to _none_.
1949      */
SegmentationTimeHasBeenSet()1950     inline bool SegmentationTimeHasBeenSet() const { return m_segmentationTimeHasBeenSet; }
1951 
1952     /**
1953      * The length in seconds of each segment. Required unless markers is set to _none_.
1954      */
SetSegmentationTime(double value)1955     inline void SetSegmentationTime(double value) { m_segmentationTimeHasBeenSet = true; m_segmentationTime = value; }
1956 
1957     /**
1958      * The length in seconds of each segment. Required unless markers is set to _none_.
1959      */
WithSegmentationTime(double value)1960     inline M2tsSettings& WithSegmentationTime(double value) { SetSegmentationTime(value); return *this;}
1961 
1962 
1963     /**
1964      * When set to passthrough, timed metadata will be passed through from input to
1965      * output.
1966      */
GetTimedMetadataBehavior()1967     inline const M2tsTimedMetadataBehavior& GetTimedMetadataBehavior() const{ return m_timedMetadataBehavior; }
1968 
1969     /**
1970      * When set to passthrough, timed metadata will be passed through from input to
1971      * output.
1972      */
TimedMetadataBehaviorHasBeenSet()1973     inline bool TimedMetadataBehaviorHasBeenSet() const { return m_timedMetadataBehaviorHasBeenSet; }
1974 
1975     /**
1976      * When set to passthrough, timed metadata will be passed through from input to
1977      * output.
1978      */
SetTimedMetadataBehavior(const M2tsTimedMetadataBehavior & value)1979     inline void SetTimedMetadataBehavior(const M2tsTimedMetadataBehavior& value) { m_timedMetadataBehaviorHasBeenSet = true; m_timedMetadataBehavior = value; }
1980 
1981     /**
1982      * When set to passthrough, timed metadata will be passed through from input to
1983      * output.
1984      */
SetTimedMetadataBehavior(M2tsTimedMetadataBehavior && value)1985     inline void SetTimedMetadataBehavior(M2tsTimedMetadataBehavior&& value) { m_timedMetadataBehaviorHasBeenSet = true; m_timedMetadataBehavior = std::move(value); }
1986 
1987     /**
1988      * When set to passthrough, timed metadata will be passed through from input to
1989      * output.
1990      */
WithTimedMetadataBehavior(const M2tsTimedMetadataBehavior & value)1991     inline M2tsSettings& WithTimedMetadataBehavior(const M2tsTimedMetadataBehavior& value) { SetTimedMetadataBehavior(value); return *this;}
1992 
1993     /**
1994      * When set to passthrough, timed metadata will be passed through from input to
1995      * output.
1996      */
WithTimedMetadataBehavior(M2tsTimedMetadataBehavior && value)1997     inline M2tsSettings& WithTimedMetadataBehavior(M2tsTimedMetadataBehavior&& value) { SetTimedMetadataBehavior(std::move(value)); return *this;}
1998 
1999 
2000     /**
2001      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
2002      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2003      * 0x20)..8182 (or 0x1ff6).
2004      */
GetTimedMetadataPid()2005     inline const Aws::String& GetTimedMetadataPid() const{ return m_timedMetadataPid; }
2006 
2007     /**
2008      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
2009      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2010      * 0x20)..8182 (or 0x1ff6).
2011      */
TimedMetadataPidHasBeenSet()2012     inline bool TimedMetadataPidHasBeenSet() const { return m_timedMetadataPidHasBeenSet; }
2013 
2014     /**
2015      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
2016      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2017      * 0x20)..8182 (or 0x1ff6).
2018      */
SetTimedMetadataPid(const Aws::String & value)2019     inline void SetTimedMetadataPid(const Aws::String& value) { m_timedMetadataPidHasBeenSet = true; m_timedMetadataPid = value; }
2020 
2021     /**
2022      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
2023      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2024      * 0x20)..8182 (or 0x1ff6).
2025      */
SetTimedMetadataPid(Aws::String && value)2026     inline void SetTimedMetadataPid(Aws::String&& value) { m_timedMetadataPidHasBeenSet = true; m_timedMetadataPid = std::move(value); }
2027 
2028     /**
2029      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
2030      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2031      * 0x20)..8182 (or 0x1ff6).
2032      */
SetTimedMetadataPid(const char * value)2033     inline void SetTimedMetadataPid(const char* value) { m_timedMetadataPidHasBeenSet = true; m_timedMetadataPid.assign(value); }
2034 
2035     /**
2036      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
2037      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2038      * 0x20)..8182 (or 0x1ff6).
2039      */
WithTimedMetadataPid(const Aws::String & value)2040     inline M2tsSettings& WithTimedMetadataPid(const Aws::String& value) { SetTimedMetadataPid(value); return *this;}
2041 
2042     /**
2043      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
2044      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2045      * 0x20)..8182 (or 0x1ff6).
2046      */
WithTimedMetadataPid(Aws::String && value)2047     inline M2tsSettings& WithTimedMetadataPid(Aws::String&& value) { SetTimedMetadataPid(std::move(value)); return *this;}
2048 
2049     /**
2050      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
2051      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2052      * 0x20)..8182 (or 0x1ff6).
2053      */
WithTimedMetadataPid(const char * value)2054     inline M2tsSettings& WithTimedMetadataPid(const char* value) { SetTimedMetadataPid(value); return *this;}
2055 
2056 
2057     /**
2058      * The value of the transport stream ID field in the Program Map Table.
2059      */
GetTransportStreamId()2060     inline int GetTransportStreamId() const{ return m_transportStreamId; }
2061 
2062     /**
2063      * The value of the transport stream ID field in the Program Map Table.
2064      */
TransportStreamIdHasBeenSet()2065     inline bool TransportStreamIdHasBeenSet() const { return m_transportStreamIdHasBeenSet; }
2066 
2067     /**
2068      * The value of the transport stream ID field in the Program Map Table.
2069      */
SetTransportStreamId(int value)2070     inline void SetTransportStreamId(int value) { m_transportStreamIdHasBeenSet = true; m_transportStreamId = value; }
2071 
2072     /**
2073      * The value of the transport stream ID field in the Program Map Table.
2074      */
WithTransportStreamId(int value)2075     inline M2tsSettings& WithTransportStreamId(int value) { SetTransportStreamId(value); return *this;}
2076 
2077 
2078     /**
2079      * Packet Identifier (PID) of the elementary video stream in the transport stream.
2080      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2081      * 0x20)..8182 (or 0x1ff6).
2082      */
GetVideoPid()2083     inline const Aws::String& GetVideoPid() const{ return m_videoPid; }
2084 
2085     /**
2086      * Packet Identifier (PID) of the elementary video stream in the transport stream.
2087      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2088      * 0x20)..8182 (or 0x1ff6).
2089      */
VideoPidHasBeenSet()2090     inline bool VideoPidHasBeenSet() const { return m_videoPidHasBeenSet; }
2091 
2092     /**
2093      * Packet Identifier (PID) of the elementary video stream in the transport stream.
2094      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2095      * 0x20)..8182 (or 0x1ff6).
2096      */
SetVideoPid(const Aws::String & value)2097     inline void SetVideoPid(const Aws::String& value) { m_videoPidHasBeenSet = true; m_videoPid = value; }
2098 
2099     /**
2100      * Packet Identifier (PID) of the elementary video stream in the transport stream.
2101      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2102      * 0x20)..8182 (or 0x1ff6).
2103      */
SetVideoPid(Aws::String && value)2104     inline void SetVideoPid(Aws::String&& value) { m_videoPidHasBeenSet = true; m_videoPid = std::move(value); }
2105 
2106     /**
2107      * Packet Identifier (PID) of the elementary video stream in the transport stream.
2108      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2109      * 0x20)..8182 (or 0x1ff6).
2110      */
SetVideoPid(const char * value)2111     inline void SetVideoPid(const char* value) { m_videoPidHasBeenSet = true; m_videoPid.assign(value); }
2112 
2113     /**
2114      * Packet Identifier (PID) of the elementary video stream in the transport stream.
2115      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2116      * 0x20)..8182 (or 0x1ff6).
2117      */
WithVideoPid(const Aws::String & value)2118     inline M2tsSettings& WithVideoPid(const Aws::String& value) { SetVideoPid(value); return *this;}
2119 
2120     /**
2121      * Packet Identifier (PID) of the elementary video stream in the transport stream.
2122      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2123      * 0x20)..8182 (or 0x1ff6).
2124      */
WithVideoPid(Aws::String && value)2125     inline M2tsSettings& WithVideoPid(Aws::String&& value) { SetVideoPid(std::move(value)); return *this;}
2126 
2127     /**
2128      * Packet Identifier (PID) of the elementary video stream in the transport stream.
2129      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
2130      * 0x20)..8182 (or 0x1ff6).
2131      */
WithVideoPid(const char * value)2132     inline M2tsSettings& WithVideoPid(const char* value) { SetVideoPid(value); return *this;}
2133 
2134   private:
2135 
2136     M2tsAbsentInputAudioBehavior m_absentInputAudioBehavior;
2137     bool m_absentInputAudioBehaviorHasBeenSet;
2138 
2139     M2tsArib m_arib;
2140     bool m_aribHasBeenSet;
2141 
2142     Aws::String m_aribCaptionsPid;
2143     bool m_aribCaptionsPidHasBeenSet;
2144 
2145     M2tsAribCaptionsPidControl m_aribCaptionsPidControl;
2146     bool m_aribCaptionsPidControlHasBeenSet;
2147 
2148     M2tsAudioBufferModel m_audioBufferModel;
2149     bool m_audioBufferModelHasBeenSet;
2150 
2151     int m_audioFramesPerPes;
2152     bool m_audioFramesPerPesHasBeenSet;
2153 
2154     Aws::String m_audioPids;
2155     bool m_audioPidsHasBeenSet;
2156 
2157     M2tsAudioStreamType m_audioStreamType;
2158     bool m_audioStreamTypeHasBeenSet;
2159 
2160     int m_bitrate;
2161     bool m_bitrateHasBeenSet;
2162 
2163     M2tsBufferModel m_bufferModel;
2164     bool m_bufferModelHasBeenSet;
2165 
2166     M2tsCcDescriptor m_ccDescriptor;
2167     bool m_ccDescriptorHasBeenSet;
2168 
2169     DvbNitSettings m_dvbNitSettings;
2170     bool m_dvbNitSettingsHasBeenSet;
2171 
2172     DvbSdtSettings m_dvbSdtSettings;
2173     bool m_dvbSdtSettingsHasBeenSet;
2174 
2175     Aws::String m_dvbSubPids;
2176     bool m_dvbSubPidsHasBeenSet;
2177 
2178     DvbTdtSettings m_dvbTdtSettings;
2179     bool m_dvbTdtSettingsHasBeenSet;
2180 
2181     Aws::String m_dvbTeletextPid;
2182     bool m_dvbTeletextPidHasBeenSet;
2183 
2184     M2tsEbifControl m_ebif;
2185     bool m_ebifHasBeenSet;
2186 
2187     M2tsAudioInterval m_ebpAudioInterval;
2188     bool m_ebpAudioIntervalHasBeenSet;
2189 
2190     int m_ebpLookaheadMs;
2191     bool m_ebpLookaheadMsHasBeenSet;
2192 
2193     M2tsEbpPlacement m_ebpPlacement;
2194     bool m_ebpPlacementHasBeenSet;
2195 
2196     Aws::String m_ecmPid;
2197     bool m_ecmPidHasBeenSet;
2198 
2199     M2tsEsRateInPes m_esRateInPes;
2200     bool m_esRateInPesHasBeenSet;
2201 
2202     Aws::String m_etvPlatformPid;
2203     bool m_etvPlatformPidHasBeenSet;
2204 
2205     Aws::String m_etvSignalPid;
2206     bool m_etvSignalPidHasBeenSet;
2207 
2208     double m_fragmentTime;
2209     bool m_fragmentTimeHasBeenSet;
2210 
2211     M2tsKlv m_klv;
2212     bool m_klvHasBeenSet;
2213 
2214     Aws::String m_klvDataPids;
2215     bool m_klvDataPidsHasBeenSet;
2216 
2217     M2tsNielsenId3Behavior m_nielsenId3Behavior;
2218     bool m_nielsenId3BehaviorHasBeenSet;
2219 
2220     double m_nullPacketBitrate;
2221     bool m_nullPacketBitrateHasBeenSet;
2222 
2223     int m_patInterval;
2224     bool m_patIntervalHasBeenSet;
2225 
2226     M2tsPcrControl m_pcrControl;
2227     bool m_pcrControlHasBeenSet;
2228 
2229     int m_pcrPeriod;
2230     bool m_pcrPeriodHasBeenSet;
2231 
2232     Aws::String m_pcrPid;
2233     bool m_pcrPidHasBeenSet;
2234 
2235     int m_pmtInterval;
2236     bool m_pmtIntervalHasBeenSet;
2237 
2238     Aws::String m_pmtPid;
2239     bool m_pmtPidHasBeenSet;
2240 
2241     int m_programNum;
2242     bool m_programNumHasBeenSet;
2243 
2244     M2tsRateMode m_rateMode;
2245     bool m_rateModeHasBeenSet;
2246 
2247     Aws::String m_scte27Pids;
2248     bool m_scte27PidsHasBeenSet;
2249 
2250     M2tsScte35Control m_scte35Control;
2251     bool m_scte35ControlHasBeenSet;
2252 
2253     Aws::String m_scte35Pid;
2254     bool m_scte35PidHasBeenSet;
2255 
2256     M2tsSegmentationMarkers m_segmentationMarkers;
2257     bool m_segmentationMarkersHasBeenSet;
2258 
2259     M2tsSegmentationStyle m_segmentationStyle;
2260     bool m_segmentationStyleHasBeenSet;
2261 
2262     double m_segmentationTime;
2263     bool m_segmentationTimeHasBeenSet;
2264 
2265     M2tsTimedMetadataBehavior m_timedMetadataBehavior;
2266     bool m_timedMetadataBehaviorHasBeenSet;
2267 
2268     Aws::String m_timedMetadataPid;
2269     bool m_timedMetadataPidHasBeenSet;
2270 
2271     int m_transportStreamId;
2272     bool m_transportStreamIdHasBeenSet;
2273 
2274     Aws::String m_videoPid;
2275     bool m_videoPidHasBeenSet;
2276   };
2277 
2278 } // namespace Model
2279 } // namespace MediaLive
2280 } // namespace Aws
2281