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/mediaconvert/MediaConvert_EXPORTS.h>
8 #include <aws/mediaconvert/model/M2tsAudioBufferModel.h>
9 #include <aws/mediaconvert/model/M2tsAudioDuration.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/mediaconvert/model/M2tsBufferModel.h>
12 #include <aws/mediaconvert/model/M2tsDataPtsControl.h>
13 #include <aws/mediaconvert/model/DvbNitSettings.h>
14 #include <aws/mediaconvert/model/DvbSdtSettings.h>
15 #include <aws/mediaconvert/model/DvbTdtSettings.h>
16 #include <aws/mediaconvert/model/M2tsEbpAudioInterval.h>
17 #include <aws/mediaconvert/model/M2tsEbpPlacement.h>
18 #include <aws/mediaconvert/model/M2tsEsRateInPes.h>
19 #include <aws/mediaconvert/model/M2tsForceTsVideoEbpOrder.h>
20 #include <aws/mediaconvert/model/M2tsNielsenId3.h>
21 #include <aws/mediaconvert/model/M2tsPcrControl.h>
22 #include <aws/mediaconvert/model/M2tsRateMode.h>
23 #include <aws/mediaconvert/model/M2tsScte35Esam.h>
24 #include <aws/mediaconvert/model/M2tsScte35Source.h>
25 #include <aws/mediaconvert/model/M2tsSegmentationMarkers.h>
26 #include <aws/mediaconvert/model/M2tsSegmentationStyle.h>
27 #include <utility>
28 
29 namespace Aws
30 {
31 namespace Utils
32 {
33 namespace Json
34 {
35   class JsonValue;
36   class JsonView;
37 } // namespace Json
38 } // namespace Utils
39 namespace MediaConvert
40 {
41 namespace Model
42 {
43 
44   /**
45    * MPEG-2 TS container settings. These apply to outputs in a File output group when
46    * the output's container (ContainerType) is MPEG-2 Transport Stream (M2TS). In
47    * these assets, data is organized by the program map table (PMT). Each transport
48    * stream program contains subsets of data, including audio, video, and metadata.
49    * Each of these subsets of data has a numerical label called a packet identifier
50    * (PID). Each transport stream program corresponds to one MediaConvert output. The
51    * PMT lists the types of data in a program along with their PID. Downstream
52    * systems and players use the program map table to look up the PID for each type
53    * of data it accesses and then uses the PIDs to locate specific data within the
54    * asset.<p><h3>See Also:</h3>   <a
55    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/M2tsSettings">AWS
56    * API Reference</a></p>
57    */
58   class AWS_MEDIACONVERT_API M2tsSettings
59   {
60   public:
61     M2tsSettings();
62     M2tsSettings(Aws::Utils::Json::JsonView jsonValue);
63     M2tsSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
64     Aws::Utils::Json::JsonValue Jsonize() const;
65 
66 
67     /**
68      * Selects between the DVB and ATSC buffer models for Dolby Digital audio.
69      */
GetAudioBufferModel()70     inline const M2tsAudioBufferModel& GetAudioBufferModel() const{ return m_audioBufferModel; }
71 
72     /**
73      * Selects between the DVB and ATSC buffer models for Dolby Digital audio.
74      */
AudioBufferModelHasBeenSet()75     inline bool AudioBufferModelHasBeenSet() const { return m_audioBufferModelHasBeenSet; }
76 
77     /**
78      * Selects between the DVB and ATSC buffer models for Dolby Digital audio.
79      */
SetAudioBufferModel(const M2tsAudioBufferModel & value)80     inline void SetAudioBufferModel(const M2tsAudioBufferModel& value) { m_audioBufferModelHasBeenSet = true; m_audioBufferModel = value; }
81 
82     /**
83      * Selects between the DVB and ATSC buffer models for Dolby Digital audio.
84      */
SetAudioBufferModel(M2tsAudioBufferModel && value)85     inline void SetAudioBufferModel(M2tsAudioBufferModel&& value) { m_audioBufferModelHasBeenSet = true; m_audioBufferModel = std::move(value); }
86 
87     /**
88      * Selects between the DVB and ATSC buffer models for Dolby Digital audio.
89      */
WithAudioBufferModel(const M2tsAudioBufferModel & value)90     inline M2tsSettings& WithAudioBufferModel(const M2tsAudioBufferModel& value) { SetAudioBufferModel(value); return *this;}
91 
92     /**
93      * Selects between the DVB and ATSC buffer models for Dolby Digital audio.
94      */
WithAudioBufferModel(M2tsAudioBufferModel && value)95     inline M2tsSettings& WithAudioBufferModel(M2tsAudioBufferModel&& value) { SetAudioBufferModel(std::move(value)); return *this;}
96 
97 
98     /**
99      * Specify this setting only when your output will be consumed by a downstream
100      * repackaging workflow that is sensitive to very small duration differences
101      * between video and audio. For this situation, choose Match video duration
102      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
103      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
104      * MediaConvert pads the output audio streams with silence or trims them to ensure
105      * that the total duration of each audio stream is at least as long as the total
106      * duration of the video stream. After padding or trimming, the audio stream
107      * duration is no more than one frame longer than the video stream. MediaConvert
108      * applies audio padding or trimming only to the end of the last segment of the
109      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
110      * the file. When you keep the default value, any minor discrepancies between audio
111      * and video duration will depend on your output audio codec.
112      */
GetAudioDuration()113     inline const M2tsAudioDuration& GetAudioDuration() const{ return m_audioDuration; }
114 
115     /**
116      * Specify this setting only when your output will be consumed by a downstream
117      * repackaging workflow that is sensitive to very small duration differences
118      * between video and audio. For this situation, choose Match video duration
119      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
120      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
121      * MediaConvert pads the output audio streams with silence or trims them to ensure
122      * that the total duration of each audio stream is at least as long as the total
123      * duration of the video stream. After padding or trimming, the audio stream
124      * duration is no more than one frame longer than the video stream. MediaConvert
125      * applies audio padding or trimming only to the end of the last segment of the
126      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
127      * the file. When you keep the default value, any minor discrepancies between audio
128      * and video duration will depend on your output audio codec.
129      */
AudioDurationHasBeenSet()130     inline bool AudioDurationHasBeenSet() const { return m_audioDurationHasBeenSet; }
131 
132     /**
133      * Specify this setting only when your output will be consumed by a downstream
134      * repackaging workflow that is sensitive to very small duration differences
135      * between video and audio. For this situation, choose Match video duration
136      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
137      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
138      * MediaConvert pads the output audio streams with silence or trims them to ensure
139      * that the total duration of each audio stream is at least as long as the total
140      * duration of the video stream. After padding or trimming, the audio stream
141      * duration is no more than one frame longer than the video stream. MediaConvert
142      * applies audio padding or trimming only to the end of the last segment of the
143      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
144      * the file. When you keep the default value, any minor discrepancies between audio
145      * and video duration will depend on your output audio codec.
146      */
SetAudioDuration(const M2tsAudioDuration & value)147     inline void SetAudioDuration(const M2tsAudioDuration& value) { m_audioDurationHasBeenSet = true; m_audioDuration = value; }
148 
149     /**
150      * Specify this setting only when your output will be consumed by a downstream
151      * repackaging workflow that is sensitive to very small duration differences
152      * between video and audio. For this situation, choose Match video duration
153      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
154      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
155      * MediaConvert pads the output audio streams with silence or trims them to ensure
156      * that the total duration of each audio stream is at least as long as the total
157      * duration of the video stream. After padding or trimming, the audio stream
158      * duration is no more than one frame longer than the video stream. MediaConvert
159      * applies audio padding or trimming only to the end of the last segment of the
160      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
161      * the file. When you keep the default value, any minor discrepancies between audio
162      * and video duration will depend on your output audio codec.
163      */
SetAudioDuration(M2tsAudioDuration && value)164     inline void SetAudioDuration(M2tsAudioDuration&& value) { m_audioDurationHasBeenSet = true; m_audioDuration = std::move(value); }
165 
166     /**
167      * Specify this setting only when your output will be consumed by a downstream
168      * repackaging workflow that is sensitive to very small duration differences
169      * between video and audio. For this situation, choose Match video duration
170      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
171      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
172      * MediaConvert pads the output audio streams with silence or trims them to ensure
173      * that the total duration of each audio stream is at least as long as the total
174      * duration of the video stream. After padding or trimming, the audio stream
175      * duration is no more than one frame longer than the video stream. MediaConvert
176      * applies audio padding or trimming only to the end of the last segment of the
177      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
178      * the file. When you keep the default value, any minor discrepancies between audio
179      * and video duration will depend on your output audio codec.
180      */
WithAudioDuration(const M2tsAudioDuration & value)181     inline M2tsSettings& WithAudioDuration(const M2tsAudioDuration& value) { SetAudioDuration(value); return *this;}
182 
183     /**
184      * Specify this setting only when your output will be consumed by a downstream
185      * repackaging workflow that is sensitive to very small duration differences
186      * between video and audio. For this situation, choose Match video duration
187      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
188      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
189      * MediaConvert pads the output audio streams with silence or trims them to ensure
190      * that the total duration of each audio stream is at least as long as the total
191      * duration of the video stream. After padding or trimming, the audio stream
192      * duration is no more than one frame longer than the video stream. MediaConvert
193      * applies audio padding or trimming only to the end of the last segment of the
194      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
195      * the file. When you keep the default value, any minor discrepancies between audio
196      * and video duration will depend on your output audio codec.
197      */
WithAudioDuration(M2tsAudioDuration && value)198     inline M2tsSettings& WithAudioDuration(M2tsAudioDuration&& value) { SetAudioDuration(std::move(value)); return *this;}
199 
200 
201     /**
202      * The number of audio frames to insert for each PES packet.
203      */
GetAudioFramesPerPes()204     inline int GetAudioFramesPerPes() const{ return m_audioFramesPerPes; }
205 
206     /**
207      * The number of audio frames to insert for each PES packet.
208      */
AudioFramesPerPesHasBeenSet()209     inline bool AudioFramesPerPesHasBeenSet() const { return m_audioFramesPerPesHasBeenSet; }
210 
211     /**
212      * The number of audio frames to insert for each PES packet.
213      */
SetAudioFramesPerPes(int value)214     inline void SetAudioFramesPerPes(int value) { m_audioFramesPerPesHasBeenSet = true; m_audioFramesPerPes = value; }
215 
216     /**
217      * The number of audio frames to insert for each PES packet.
218      */
WithAudioFramesPerPes(int value)219     inline M2tsSettings& WithAudioFramesPerPes(int value) { SetAudioFramesPerPes(value); return *this;}
220 
221 
222     /**
223      * Specify the packet identifiers (PIDs) for any elementary audio streams you
224      * include in this output. Specify multiple PIDs as a JSON array. Default is the
225      * range 482-492.
226      */
GetAudioPids()227     inline const Aws::Vector<int>& GetAudioPids() const{ return m_audioPids; }
228 
229     /**
230      * Specify the packet identifiers (PIDs) for any elementary audio streams you
231      * include in this output. Specify multiple PIDs as a JSON array. Default is the
232      * range 482-492.
233      */
AudioPidsHasBeenSet()234     inline bool AudioPidsHasBeenSet() const { return m_audioPidsHasBeenSet; }
235 
236     /**
237      * Specify the packet identifiers (PIDs) for any elementary audio streams you
238      * include in this output. Specify multiple PIDs as a JSON array. Default is the
239      * range 482-492.
240      */
SetAudioPids(const Aws::Vector<int> & value)241     inline void SetAudioPids(const Aws::Vector<int>& value) { m_audioPidsHasBeenSet = true; m_audioPids = value; }
242 
243     /**
244      * Specify the packet identifiers (PIDs) for any elementary audio streams you
245      * include in this output. Specify multiple PIDs as a JSON array. Default is the
246      * range 482-492.
247      */
SetAudioPids(Aws::Vector<int> && value)248     inline void SetAudioPids(Aws::Vector<int>&& value) { m_audioPidsHasBeenSet = true; m_audioPids = std::move(value); }
249 
250     /**
251      * Specify the packet identifiers (PIDs) for any elementary audio streams you
252      * include in this output. Specify multiple PIDs as a JSON array. Default is the
253      * range 482-492.
254      */
WithAudioPids(const Aws::Vector<int> & value)255     inline M2tsSettings& WithAudioPids(const Aws::Vector<int>& value) { SetAudioPids(value); return *this;}
256 
257     /**
258      * Specify the packet identifiers (PIDs) for any elementary audio streams you
259      * include in this output. Specify multiple PIDs as a JSON array. Default is the
260      * range 482-492.
261      */
WithAudioPids(Aws::Vector<int> && value)262     inline M2tsSettings& WithAudioPids(Aws::Vector<int>&& value) { SetAudioPids(std::move(value)); return *this;}
263 
264     /**
265      * Specify the packet identifiers (PIDs) for any elementary audio streams you
266      * include in this output. Specify multiple PIDs as a JSON array. Default is the
267      * range 482-492.
268      */
AddAudioPids(int value)269     inline M2tsSettings& AddAudioPids(int value) { m_audioPidsHasBeenSet = true; m_audioPids.push_back(value); return *this; }
270 
271 
272     /**
273      * Specify the output bitrate of the transport stream in bits per second. Setting
274      * to 0 lets the muxer automatically determine the appropriate bitrate. Other
275      * common values are 3750000, 7500000, and 15000000.
276      */
GetBitrate()277     inline int GetBitrate() const{ return m_bitrate; }
278 
279     /**
280      * Specify the output bitrate of the transport stream in bits per second. Setting
281      * to 0 lets the muxer automatically determine the appropriate bitrate. Other
282      * common values are 3750000, 7500000, and 15000000.
283      */
BitrateHasBeenSet()284     inline bool BitrateHasBeenSet() const { return m_bitrateHasBeenSet; }
285 
286     /**
287      * Specify the output bitrate of the transport stream in bits per second. Setting
288      * to 0 lets the muxer automatically determine the appropriate bitrate. Other
289      * common values are 3750000, 7500000, and 15000000.
290      */
SetBitrate(int value)291     inline void SetBitrate(int value) { m_bitrateHasBeenSet = true; m_bitrate = value; }
292 
293     /**
294      * Specify the output bitrate of the transport stream in bits per second. Setting
295      * to 0 lets the muxer automatically determine the appropriate bitrate. Other
296      * common values are 3750000, 7500000, and 15000000.
297      */
WithBitrate(int value)298     inline M2tsSettings& WithBitrate(int value) { SetBitrate(value); return *this;}
299 
300 
301     /**
302      * Controls what buffer model to use for accurate interleaving. If set to
303      * MULTIPLEX, use multiplex  buffer model. If set to NONE, this can lead to lower
304      * latency, but low-memory devices may not be able to play back the stream without
305      * interruptions.
306      */
GetBufferModel()307     inline const M2tsBufferModel& GetBufferModel() const{ return m_bufferModel; }
308 
309     /**
310      * Controls what buffer model to use for accurate interleaving. If set to
311      * MULTIPLEX, use multiplex  buffer model. If set to NONE, this can lead to lower
312      * latency, but low-memory devices may not be able to play back the stream without
313      * interruptions.
314      */
BufferModelHasBeenSet()315     inline bool BufferModelHasBeenSet() const { return m_bufferModelHasBeenSet; }
316 
317     /**
318      * Controls what buffer model to use for accurate interleaving. If set to
319      * MULTIPLEX, use multiplex  buffer model. If set to NONE, this can lead to lower
320      * latency, but low-memory devices may not be able to play back the stream without
321      * interruptions.
322      */
SetBufferModel(const M2tsBufferModel & value)323     inline void SetBufferModel(const M2tsBufferModel& value) { m_bufferModelHasBeenSet = true; m_bufferModel = value; }
324 
325     /**
326      * Controls what buffer model to use for accurate interleaving. If set to
327      * MULTIPLEX, use multiplex  buffer model. If set to NONE, this can lead to lower
328      * latency, but low-memory devices may not be able to play back the stream without
329      * interruptions.
330      */
SetBufferModel(M2tsBufferModel && value)331     inline void SetBufferModel(M2tsBufferModel&& value) { m_bufferModelHasBeenSet = true; m_bufferModel = std::move(value); }
332 
333     /**
334      * Controls what buffer model to use for accurate interleaving. If set to
335      * MULTIPLEX, use multiplex  buffer model. If set to NONE, this can lead to lower
336      * latency, but low-memory devices may not be able to play back the stream without
337      * interruptions.
338      */
WithBufferModel(const M2tsBufferModel & value)339     inline M2tsSettings& WithBufferModel(const M2tsBufferModel& value) { SetBufferModel(value); return *this;}
340 
341     /**
342      * Controls what buffer model to use for accurate interleaving. If set to
343      * MULTIPLEX, use multiplex  buffer model. If set to NONE, this can lead to lower
344      * latency, but low-memory devices may not be able to play back the stream without
345      * interruptions.
346      */
WithBufferModel(M2tsBufferModel && value)347     inline M2tsSettings& WithBufferModel(M2tsBufferModel&& value) { SetBufferModel(std::move(value)); return *this;}
348 
349 
350     /**
351      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
352      * Presentation Timestamp (PTS) values greater than or equal to the first video
353      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
354      * values). Keep the default value (AUTO) to allow all PTS values.
355      */
GetDataPTSControl()356     inline const M2tsDataPtsControl& GetDataPTSControl() const{ return m_dataPTSControl; }
357 
358     /**
359      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
360      * Presentation Timestamp (PTS) values greater than or equal to the first video
361      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
362      * values). Keep the default value (AUTO) to allow all PTS values.
363      */
DataPTSControlHasBeenSet()364     inline bool DataPTSControlHasBeenSet() const { return m_dataPTSControlHasBeenSet; }
365 
366     /**
367      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
368      * Presentation Timestamp (PTS) values greater than or equal to the first video
369      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
370      * values). Keep the default value (AUTO) to allow all PTS values.
371      */
SetDataPTSControl(const M2tsDataPtsControl & value)372     inline void SetDataPTSControl(const M2tsDataPtsControl& value) { m_dataPTSControlHasBeenSet = true; m_dataPTSControl = value; }
373 
374     /**
375      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
376      * Presentation Timestamp (PTS) values greater than or equal to the first video
377      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
378      * values). Keep the default value (AUTO) to allow all PTS values.
379      */
SetDataPTSControl(M2tsDataPtsControl && value)380     inline void SetDataPTSControl(M2tsDataPtsControl&& value) { m_dataPTSControlHasBeenSet = true; m_dataPTSControl = std::move(value); }
381 
382     /**
383      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
384      * Presentation Timestamp (PTS) values greater than or equal to the first video
385      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
386      * values). Keep the default value (AUTO) to allow all PTS values.
387      */
WithDataPTSControl(const M2tsDataPtsControl & value)388     inline M2tsSettings& WithDataPTSControl(const M2tsDataPtsControl& value) { SetDataPTSControl(value); return *this;}
389 
390     /**
391      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
392      * Presentation Timestamp (PTS) values greater than or equal to the first video
393      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
394      * values). Keep the default value (AUTO) to allow all PTS values.
395      */
WithDataPTSControl(M2tsDataPtsControl && value)396     inline M2tsSettings& WithDataPTSControl(M2tsDataPtsControl&& value) { SetDataPTSControl(std::move(value)); return *this;}
397 
398 
399     /**
400      * Use these settings to insert a DVB Network Information Table (NIT) in the
401      * transport stream of this output. When you work directly in your JSON job
402      * specification, include this object only when your job has a transport stream
403      * output and the container settings contain the object M2tsSettings.
404      */
GetDvbNitSettings()405     inline const DvbNitSettings& GetDvbNitSettings() const{ return m_dvbNitSettings; }
406 
407     /**
408      * Use these settings to insert a DVB Network Information Table (NIT) in the
409      * transport stream of this output. When you work directly in your JSON job
410      * specification, include this object only when your job has a transport stream
411      * output and the container settings contain the object M2tsSettings.
412      */
DvbNitSettingsHasBeenSet()413     inline bool DvbNitSettingsHasBeenSet() const { return m_dvbNitSettingsHasBeenSet; }
414 
415     /**
416      * Use these settings to insert a DVB Network Information Table (NIT) in the
417      * transport stream of this output. When you work directly in your JSON job
418      * specification, include this object only when your job has a transport stream
419      * output and the container settings contain the object M2tsSettings.
420      */
SetDvbNitSettings(const DvbNitSettings & value)421     inline void SetDvbNitSettings(const DvbNitSettings& value) { m_dvbNitSettingsHasBeenSet = true; m_dvbNitSettings = value; }
422 
423     /**
424      * Use these settings to insert a DVB Network Information Table (NIT) in the
425      * transport stream of this output. When you work directly in your JSON job
426      * specification, include this object only when your job has a transport stream
427      * output and the container settings contain the object M2tsSettings.
428      */
SetDvbNitSettings(DvbNitSettings && value)429     inline void SetDvbNitSettings(DvbNitSettings&& value) { m_dvbNitSettingsHasBeenSet = true; m_dvbNitSettings = std::move(value); }
430 
431     /**
432      * Use these settings to insert a DVB Network Information Table (NIT) in the
433      * transport stream of this output. When you work directly in your JSON job
434      * specification, include this object only when your job has a transport stream
435      * output and the container settings contain the object M2tsSettings.
436      */
WithDvbNitSettings(const DvbNitSettings & value)437     inline M2tsSettings& WithDvbNitSettings(const DvbNitSettings& value) { SetDvbNitSettings(value); return *this;}
438 
439     /**
440      * Use these settings to insert a DVB Network Information Table (NIT) in the
441      * transport stream of this output. When you work directly in your JSON job
442      * specification, include this object only when your job has a transport stream
443      * output and the container settings contain the object M2tsSettings.
444      */
WithDvbNitSettings(DvbNitSettings && value)445     inline M2tsSettings& WithDvbNitSettings(DvbNitSettings&& value) { SetDvbNitSettings(std::move(value)); return *this;}
446 
447 
448     /**
449      * Use these settings to insert a DVB Service Description Table (SDT) in the
450      * transport stream of this output. When you work directly in your JSON job
451      * specification, include this object only when your job has a transport stream
452      * output and the container settings contain the object M2tsSettings.
453      */
GetDvbSdtSettings()454     inline const DvbSdtSettings& GetDvbSdtSettings() const{ return m_dvbSdtSettings; }
455 
456     /**
457      * Use these settings to insert a DVB Service Description Table (SDT) in the
458      * transport stream of this output. When you work directly in your JSON job
459      * specification, include this object only when your job has a transport stream
460      * output and the container settings contain the object M2tsSettings.
461      */
DvbSdtSettingsHasBeenSet()462     inline bool DvbSdtSettingsHasBeenSet() const { return m_dvbSdtSettingsHasBeenSet; }
463 
464     /**
465      * Use these settings to insert a DVB Service Description Table (SDT) in the
466      * transport stream of this output. When you work directly in your JSON job
467      * specification, include this object only when your job has a transport stream
468      * output and the container settings contain the object M2tsSettings.
469      */
SetDvbSdtSettings(const DvbSdtSettings & value)470     inline void SetDvbSdtSettings(const DvbSdtSettings& value) { m_dvbSdtSettingsHasBeenSet = true; m_dvbSdtSettings = value; }
471 
472     /**
473      * Use these settings to insert a DVB Service Description Table (SDT) in the
474      * transport stream of this output. When you work directly in your JSON job
475      * specification, include this object only when your job has a transport stream
476      * output and the container settings contain the object M2tsSettings.
477      */
SetDvbSdtSettings(DvbSdtSettings && value)478     inline void SetDvbSdtSettings(DvbSdtSettings&& value) { m_dvbSdtSettingsHasBeenSet = true; m_dvbSdtSettings = std::move(value); }
479 
480     /**
481      * Use these settings to insert a DVB Service Description Table (SDT) in the
482      * transport stream of this output. When you work directly in your JSON job
483      * specification, include this object only when your job has a transport stream
484      * output and the container settings contain the object M2tsSettings.
485      */
WithDvbSdtSettings(const DvbSdtSettings & value)486     inline M2tsSettings& WithDvbSdtSettings(const DvbSdtSettings& value) { SetDvbSdtSettings(value); return *this;}
487 
488     /**
489      * Use these settings to insert a DVB Service Description Table (SDT) in the
490      * transport stream of this output. When you work directly in your JSON job
491      * specification, include this object only when your job has a transport stream
492      * output and the container settings contain the object M2tsSettings.
493      */
WithDvbSdtSettings(DvbSdtSettings && value)494     inline M2tsSettings& WithDvbSdtSettings(DvbSdtSettings&& value) { SetDvbSdtSettings(std::move(value)); return *this;}
495 
496 
497     /**
498      * Specify the packet identifiers (PIDs) for DVB subtitle data included in this
499      * output. Specify multiple PIDs as a JSON array. Default is the range 460-479.
500      */
GetDvbSubPids()501     inline const Aws::Vector<int>& GetDvbSubPids() const{ return m_dvbSubPids; }
502 
503     /**
504      * Specify the packet identifiers (PIDs) for DVB subtitle data included in this
505      * output. Specify multiple PIDs as a JSON array. Default is the range 460-479.
506      */
DvbSubPidsHasBeenSet()507     inline bool DvbSubPidsHasBeenSet() const { return m_dvbSubPidsHasBeenSet; }
508 
509     /**
510      * Specify the packet identifiers (PIDs) for DVB subtitle data included in this
511      * output. Specify multiple PIDs as a JSON array. Default is the range 460-479.
512      */
SetDvbSubPids(const Aws::Vector<int> & value)513     inline void SetDvbSubPids(const Aws::Vector<int>& value) { m_dvbSubPidsHasBeenSet = true; m_dvbSubPids = value; }
514 
515     /**
516      * Specify the packet identifiers (PIDs) for DVB subtitle data included in this
517      * output. Specify multiple PIDs as a JSON array. Default is the range 460-479.
518      */
SetDvbSubPids(Aws::Vector<int> && value)519     inline void SetDvbSubPids(Aws::Vector<int>&& value) { m_dvbSubPidsHasBeenSet = true; m_dvbSubPids = std::move(value); }
520 
521     /**
522      * Specify the packet identifiers (PIDs) for DVB subtitle data included in this
523      * output. Specify multiple PIDs as a JSON array. Default is the range 460-479.
524      */
WithDvbSubPids(const Aws::Vector<int> & value)525     inline M2tsSettings& WithDvbSubPids(const Aws::Vector<int>& value) { SetDvbSubPids(value); return *this;}
526 
527     /**
528      * Specify the packet identifiers (PIDs) for DVB subtitle data included in this
529      * output. Specify multiple PIDs as a JSON array. Default is the range 460-479.
530      */
WithDvbSubPids(Aws::Vector<int> && value)531     inline M2tsSettings& WithDvbSubPids(Aws::Vector<int>&& value) { SetDvbSubPids(std::move(value)); return *this;}
532 
533     /**
534      * Specify the packet identifiers (PIDs) for DVB subtitle data included in this
535      * output. Specify multiple PIDs as a JSON array. Default is the range 460-479.
536      */
AddDvbSubPids(int value)537     inline M2tsSettings& AddDvbSubPids(int value) { m_dvbSubPidsHasBeenSet = true; m_dvbSubPids.push_back(value); return *this; }
538 
539 
540     /**
541      * Use these settings to insert a DVB Time and Date Table (TDT) in the transport
542      * stream of this output. When you work directly in your JSON job specification,
543      * include this object only when your job has a transport stream output and the
544      * container settings contain the object M2tsSettings.
545      */
GetDvbTdtSettings()546     inline const DvbTdtSettings& GetDvbTdtSettings() const{ return m_dvbTdtSettings; }
547 
548     /**
549      * Use these settings to insert a DVB Time and Date Table (TDT) in the transport
550      * stream of this output. When you work directly in your JSON job specification,
551      * include this object only when your job has a transport stream output and the
552      * container settings contain the object M2tsSettings.
553      */
DvbTdtSettingsHasBeenSet()554     inline bool DvbTdtSettingsHasBeenSet() const { return m_dvbTdtSettingsHasBeenSet; }
555 
556     /**
557      * Use these settings to insert a DVB Time and Date Table (TDT) in the transport
558      * stream of this output. When you work directly in your JSON job specification,
559      * include this object only when your job has a transport stream output and the
560      * container settings contain the object M2tsSettings.
561      */
SetDvbTdtSettings(const DvbTdtSettings & value)562     inline void SetDvbTdtSettings(const DvbTdtSettings& value) { m_dvbTdtSettingsHasBeenSet = true; m_dvbTdtSettings = value; }
563 
564     /**
565      * Use these settings to insert a DVB Time and Date Table (TDT) in the transport
566      * stream of this output. When you work directly in your JSON job specification,
567      * include this object only when your job has a transport stream output and the
568      * container settings contain the object M2tsSettings.
569      */
SetDvbTdtSettings(DvbTdtSettings && value)570     inline void SetDvbTdtSettings(DvbTdtSettings&& value) { m_dvbTdtSettingsHasBeenSet = true; m_dvbTdtSettings = std::move(value); }
571 
572     /**
573      * Use these settings to insert a DVB Time and Date Table (TDT) in the transport
574      * stream of this output. When you work directly in your JSON job specification,
575      * include this object only when your job has a transport stream output and the
576      * container settings contain the object M2tsSettings.
577      */
WithDvbTdtSettings(const DvbTdtSettings & value)578     inline M2tsSettings& WithDvbTdtSettings(const DvbTdtSettings& value) { SetDvbTdtSettings(value); return *this;}
579 
580     /**
581      * Use these settings to insert a DVB Time and Date Table (TDT) in the transport
582      * stream of this output. When you work directly in your JSON job specification,
583      * include this object only when your job has a transport stream output and the
584      * container settings contain the object M2tsSettings.
585      */
WithDvbTdtSettings(DvbTdtSettings && value)586     inline M2tsSettings& WithDvbTdtSettings(DvbTdtSettings&& value) { SetDvbTdtSettings(std::move(value)); return *this;}
587 
588 
589     /**
590      * Specify the packet identifier (PID) for DVB teletext data you include in this
591      * output. Default is 499.
592      */
GetDvbTeletextPid()593     inline int GetDvbTeletextPid() const{ return m_dvbTeletextPid; }
594 
595     /**
596      * Specify the packet identifier (PID) for DVB teletext data you include in this
597      * output. Default is 499.
598      */
DvbTeletextPidHasBeenSet()599     inline bool DvbTeletextPidHasBeenSet() const { return m_dvbTeletextPidHasBeenSet; }
600 
601     /**
602      * Specify the packet identifier (PID) for DVB teletext data you include in this
603      * output. Default is 499.
604      */
SetDvbTeletextPid(int value)605     inline void SetDvbTeletextPid(int value) { m_dvbTeletextPidHasBeenSet = true; m_dvbTeletextPid = value; }
606 
607     /**
608      * Specify the packet identifier (PID) for DVB teletext data you include in this
609      * output. Default is 499.
610      */
WithDvbTeletextPid(int value)611     inline M2tsSettings& WithDvbTeletextPid(int value) { SetDvbTeletextPid(value); return *this;}
612 
613 
614     /**
615      * When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to
616      * partitions 3 and 4. The interval between these additional markers will be fixed,
617      * and will be slightly shorter than the video EBP marker interval. When set to
618      * VIDEO_INTERVAL, these additional markers will not be inserted. Only applicable
619      * when EBP segmentation markers are is selected (segmentationMarkers is EBP or
620      * EBP_LEGACY).
621      */
GetEbpAudioInterval()622     inline const M2tsEbpAudioInterval& GetEbpAudioInterval() const{ return m_ebpAudioInterval; }
623 
624     /**
625      * When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to
626      * partitions 3 and 4. The interval between these additional markers will be fixed,
627      * and will be slightly shorter than the video EBP marker interval. When set to
628      * VIDEO_INTERVAL, these additional markers will not be inserted. Only applicable
629      * when EBP segmentation markers are is selected (segmentationMarkers is EBP or
630      * EBP_LEGACY).
631      */
EbpAudioIntervalHasBeenSet()632     inline bool EbpAudioIntervalHasBeenSet() const { return m_ebpAudioIntervalHasBeenSet; }
633 
634     /**
635      * When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to
636      * partitions 3 and 4. The interval between these additional markers will be fixed,
637      * and will be slightly shorter than the video EBP marker interval. When set to
638      * VIDEO_INTERVAL, these additional markers will not be inserted. Only applicable
639      * when EBP segmentation markers are is selected (segmentationMarkers is EBP or
640      * EBP_LEGACY).
641      */
SetEbpAudioInterval(const M2tsEbpAudioInterval & value)642     inline void SetEbpAudioInterval(const M2tsEbpAudioInterval& value) { m_ebpAudioIntervalHasBeenSet = true; m_ebpAudioInterval = value; }
643 
644     /**
645      * When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to
646      * partitions 3 and 4. The interval between these additional markers will be fixed,
647      * and will be slightly shorter than the video EBP marker interval. When set to
648      * VIDEO_INTERVAL, these additional markers will not be inserted. Only applicable
649      * when EBP segmentation markers are is selected (segmentationMarkers is EBP or
650      * EBP_LEGACY).
651      */
SetEbpAudioInterval(M2tsEbpAudioInterval && value)652     inline void SetEbpAudioInterval(M2tsEbpAudioInterval&& value) { m_ebpAudioIntervalHasBeenSet = true; m_ebpAudioInterval = std::move(value); }
653 
654     /**
655      * When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to
656      * partitions 3 and 4. The interval between these additional markers will be fixed,
657      * and will be slightly shorter than the video EBP marker interval. When set to
658      * VIDEO_INTERVAL, these additional markers will not be inserted. Only applicable
659      * when EBP segmentation markers are is selected (segmentationMarkers is EBP or
660      * EBP_LEGACY).
661      */
WithEbpAudioInterval(const M2tsEbpAudioInterval & value)662     inline M2tsSettings& WithEbpAudioInterval(const M2tsEbpAudioInterval& value) { SetEbpAudioInterval(value); return *this;}
663 
664     /**
665      * When set to VIDEO_AND_FIXED_INTERVALS, audio EBP markers will be added to
666      * partitions 3 and 4. The interval between these additional markers will be fixed,
667      * and will be slightly shorter than the video EBP marker interval. When set to
668      * VIDEO_INTERVAL, these additional markers will not be inserted. Only applicable
669      * when EBP segmentation markers are is selected (segmentationMarkers is EBP or
670      * EBP_LEGACY).
671      */
WithEbpAudioInterval(M2tsEbpAudioInterval && value)672     inline M2tsSettings& WithEbpAudioInterval(M2tsEbpAudioInterval&& value) { SetEbpAudioInterval(std::move(value)); return *this;}
673 
674 
675     /**
676      * Selects which PIDs to place EBP markers on. They can either be placed only on
677      * the video PID, or on both the video PID and all audio PIDs. Only applicable when
678      * EBP segmentation markers are is selected (segmentationMarkers is EBP or
679      * EBP_LEGACY).
680      */
GetEbpPlacement()681     inline const M2tsEbpPlacement& GetEbpPlacement() const{ return m_ebpPlacement; }
682 
683     /**
684      * Selects which PIDs to place EBP markers on. They can either be placed only on
685      * the video PID, or on both the video PID and all audio PIDs. Only applicable when
686      * EBP segmentation markers are is selected (segmentationMarkers is EBP or
687      * EBP_LEGACY).
688      */
EbpPlacementHasBeenSet()689     inline bool EbpPlacementHasBeenSet() const { return m_ebpPlacementHasBeenSet; }
690 
691     /**
692      * Selects which PIDs to place EBP markers on. They can either be placed only on
693      * the video PID, or on both the video PID and all audio PIDs. Only applicable when
694      * EBP segmentation markers are is selected (segmentationMarkers is EBP or
695      * EBP_LEGACY).
696      */
SetEbpPlacement(const M2tsEbpPlacement & value)697     inline void SetEbpPlacement(const M2tsEbpPlacement& value) { m_ebpPlacementHasBeenSet = true; m_ebpPlacement = value; }
698 
699     /**
700      * Selects which PIDs to place EBP markers on. They can either be placed only on
701      * the video PID, or on both the video PID and all audio PIDs. Only applicable when
702      * EBP segmentation markers are is selected (segmentationMarkers is EBP or
703      * EBP_LEGACY).
704      */
SetEbpPlacement(M2tsEbpPlacement && value)705     inline void SetEbpPlacement(M2tsEbpPlacement&& value) { m_ebpPlacementHasBeenSet = true; m_ebpPlacement = std::move(value); }
706 
707     /**
708      * Selects which PIDs to place EBP markers on. They can either be placed only on
709      * the video PID, or on both the video PID and all audio PIDs. Only applicable when
710      * EBP segmentation markers are is selected (segmentationMarkers is EBP or
711      * EBP_LEGACY).
712      */
WithEbpPlacement(const M2tsEbpPlacement & value)713     inline M2tsSettings& WithEbpPlacement(const M2tsEbpPlacement& value) { SetEbpPlacement(value); return *this;}
714 
715     /**
716      * Selects which PIDs to place EBP markers on. They can either be placed only on
717      * the video PID, or on both the video PID and all audio PIDs. Only applicable when
718      * EBP segmentation markers are is selected (segmentationMarkers is EBP or
719      * EBP_LEGACY).
720      */
WithEbpPlacement(M2tsEbpPlacement && value)721     inline M2tsSettings& WithEbpPlacement(M2tsEbpPlacement&& value) { SetEbpPlacement(std::move(value)); return *this;}
722 
723 
724     /**
725      * Controls whether to include the ES Rate field in the PES header.
726      */
GetEsRateInPes()727     inline const M2tsEsRateInPes& GetEsRateInPes() const{ return m_esRateInPes; }
728 
729     /**
730      * Controls whether to include the ES Rate field in the PES header.
731      */
EsRateInPesHasBeenSet()732     inline bool EsRateInPesHasBeenSet() const { return m_esRateInPesHasBeenSet; }
733 
734     /**
735      * Controls whether to include the ES Rate field in the PES header.
736      */
SetEsRateInPes(const M2tsEsRateInPes & value)737     inline void SetEsRateInPes(const M2tsEsRateInPes& value) { m_esRateInPesHasBeenSet = true; m_esRateInPes = value; }
738 
739     /**
740      * Controls whether to include the ES Rate field in the PES header.
741      */
SetEsRateInPes(M2tsEsRateInPes && value)742     inline void SetEsRateInPes(M2tsEsRateInPes&& value) { m_esRateInPesHasBeenSet = true; m_esRateInPes = std::move(value); }
743 
744     /**
745      * Controls whether to include the ES Rate field in the PES header.
746      */
WithEsRateInPes(const M2tsEsRateInPes & value)747     inline M2tsSettings& WithEsRateInPes(const M2tsEsRateInPes& value) { SetEsRateInPes(value); return *this;}
748 
749     /**
750      * Controls whether to include the ES Rate field in the PES header.
751      */
WithEsRateInPes(M2tsEsRateInPes && value)752     inline M2tsSettings& WithEsRateInPes(M2tsEsRateInPes&& value) { SetEsRateInPes(std::move(value)); return *this;}
753 
754 
755     /**
756      * Keep the default value (DEFAULT) unless you know that your audio EBP markers are
757      * incorrectly appearing before your video EBP markers. To correct this problem,
758      * set this value to Force (FORCE).
759      */
GetForceTsVideoEbpOrder()760     inline const M2tsForceTsVideoEbpOrder& GetForceTsVideoEbpOrder() const{ return m_forceTsVideoEbpOrder; }
761 
762     /**
763      * Keep the default value (DEFAULT) unless you know that your audio EBP markers are
764      * incorrectly appearing before your video EBP markers. To correct this problem,
765      * set this value to Force (FORCE).
766      */
ForceTsVideoEbpOrderHasBeenSet()767     inline bool ForceTsVideoEbpOrderHasBeenSet() const { return m_forceTsVideoEbpOrderHasBeenSet; }
768 
769     /**
770      * Keep the default value (DEFAULT) unless you know that your audio EBP markers are
771      * incorrectly appearing before your video EBP markers. To correct this problem,
772      * set this value to Force (FORCE).
773      */
SetForceTsVideoEbpOrder(const M2tsForceTsVideoEbpOrder & value)774     inline void SetForceTsVideoEbpOrder(const M2tsForceTsVideoEbpOrder& value) { m_forceTsVideoEbpOrderHasBeenSet = true; m_forceTsVideoEbpOrder = value; }
775 
776     /**
777      * Keep the default value (DEFAULT) unless you know that your audio EBP markers are
778      * incorrectly appearing before your video EBP markers. To correct this problem,
779      * set this value to Force (FORCE).
780      */
SetForceTsVideoEbpOrder(M2tsForceTsVideoEbpOrder && value)781     inline void SetForceTsVideoEbpOrder(M2tsForceTsVideoEbpOrder&& value) { m_forceTsVideoEbpOrderHasBeenSet = true; m_forceTsVideoEbpOrder = std::move(value); }
782 
783     /**
784      * Keep the default value (DEFAULT) unless you know that your audio EBP markers are
785      * incorrectly appearing before your video EBP markers. To correct this problem,
786      * set this value to Force (FORCE).
787      */
WithForceTsVideoEbpOrder(const M2tsForceTsVideoEbpOrder & value)788     inline M2tsSettings& WithForceTsVideoEbpOrder(const M2tsForceTsVideoEbpOrder& value) { SetForceTsVideoEbpOrder(value); return *this;}
789 
790     /**
791      * Keep the default value (DEFAULT) unless you know that your audio EBP markers are
792      * incorrectly appearing before your video EBP markers. To correct this problem,
793      * set this value to Force (FORCE).
794      */
WithForceTsVideoEbpOrder(M2tsForceTsVideoEbpOrder && value)795     inline M2tsSettings& WithForceTsVideoEbpOrder(M2tsForceTsVideoEbpOrder&& value) { SetForceTsVideoEbpOrder(std::move(value)); return *this;}
796 
797 
798     /**
799      * The length, in seconds, of each fragment. Only used with EBP markers.
800      */
GetFragmentTime()801     inline double GetFragmentTime() const{ return m_fragmentTime; }
802 
803     /**
804      * The length, in seconds, of each fragment. Only used with EBP markers.
805      */
FragmentTimeHasBeenSet()806     inline bool FragmentTimeHasBeenSet() const { return m_fragmentTimeHasBeenSet; }
807 
808     /**
809      * The length, in seconds, of each fragment. Only used with EBP markers.
810      */
SetFragmentTime(double value)811     inline void SetFragmentTime(double value) { m_fragmentTimeHasBeenSet = true; m_fragmentTime = value; }
812 
813     /**
814      * The length, in seconds, of each fragment. Only used with EBP markers.
815      */
WithFragmentTime(double value)816     inline M2tsSettings& WithFragmentTime(double value) { SetFragmentTime(value); return *this;}
817 
818 
819     /**
820      * Specify the maximum time, in milliseconds, between Program Clock References
821      * (PCRs) inserted into the transport stream.
822      */
GetMaxPcrInterval()823     inline int GetMaxPcrInterval() const{ return m_maxPcrInterval; }
824 
825     /**
826      * Specify the maximum time, in milliseconds, between Program Clock References
827      * (PCRs) inserted into the transport stream.
828      */
MaxPcrIntervalHasBeenSet()829     inline bool MaxPcrIntervalHasBeenSet() const { return m_maxPcrIntervalHasBeenSet; }
830 
831     /**
832      * Specify the maximum time, in milliseconds, between Program Clock References
833      * (PCRs) inserted into the transport stream.
834      */
SetMaxPcrInterval(int value)835     inline void SetMaxPcrInterval(int value) { m_maxPcrIntervalHasBeenSet = true; m_maxPcrInterval = value; }
836 
837     /**
838      * Specify the maximum time, in milliseconds, between Program Clock References
839      * (PCRs) inserted into the transport stream.
840      */
WithMaxPcrInterval(int value)841     inline M2tsSettings& WithMaxPcrInterval(int value) { SetMaxPcrInterval(value); return *this;}
842 
843 
844     /**
845      * When set, enforces that Encoder Boundary Points do not come within the specified
846      * time interval of each other by looking ahead at input video. If another EBP is
847      * going to come in within the specified time interval, the current EBP is not
848      * emitted, and the segment is "stretched" to the next marker. The lookahead value
849      * does not add latency to the system. The Live Event must be configured elsewhere
850      * to create sufficient latency to make the lookahead accurate.
851      */
GetMinEbpInterval()852     inline int GetMinEbpInterval() const{ return m_minEbpInterval; }
853 
854     /**
855      * When set, enforces that Encoder Boundary Points do not come within the specified
856      * time interval of each other by looking ahead at input video. If another EBP is
857      * going to come in within the specified time interval, the current EBP is not
858      * emitted, and the segment is "stretched" to the next marker. The lookahead value
859      * does not add latency to the system. The Live Event must be configured elsewhere
860      * to create sufficient latency to make the lookahead accurate.
861      */
MinEbpIntervalHasBeenSet()862     inline bool MinEbpIntervalHasBeenSet() const { return m_minEbpIntervalHasBeenSet; }
863 
864     /**
865      * When set, enforces that Encoder Boundary Points do not come within the specified
866      * time interval of each other by looking ahead at input video. If another EBP is
867      * going to come in within the specified time interval, the current EBP is not
868      * emitted, and the segment is "stretched" to the next marker. The lookahead value
869      * does not add latency to the system. The Live Event must be configured elsewhere
870      * to create sufficient latency to make the lookahead accurate.
871      */
SetMinEbpInterval(int value)872     inline void SetMinEbpInterval(int value) { m_minEbpIntervalHasBeenSet = true; m_minEbpInterval = value; }
873 
874     /**
875      * When set, enforces that Encoder Boundary Points do not come within the specified
876      * time interval of each other by looking ahead at input video. If another EBP is
877      * going to come in within the specified time interval, the current EBP is not
878      * emitted, and the segment is "stretched" to the next marker. The lookahead value
879      * does not add latency to the system. The Live Event must be configured elsewhere
880      * to create sufficient latency to make the lookahead accurate.
881      */
WithMinEbpInterval(int value)882     inline M2tsSettings& WithMinEbpInterval(int value) { SetMinEbpInterval(value); return *this;}
883 
884 
885     /**
886      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
887      * input audio and an equivalent ID3 tag will be inserted in the output.
888      */
GetNielsenId3()889     inline const M2tsNielsenId3& GetNielsenId3() const{ return m_nielsenId3; }
890 
891     /**
892      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
893      * input audio and an equivalent ID3 tag will be inserted in the output.
894      */
NielsenId3HasBeenSet()895     inline bool NielsenId3HasBeenSet() const { return m_nielsenId3HasBeenSet; }
896 
897     /**
898      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
899      * input audio and an equivalent ID3 tag will be inserted in the output.
900      */
SetNielsenId3(const M2tsNielsenId3 & value)901     inline void SetNielsenId3(const M2tsNielsenId3& value) { m_nielsenId3HasBeenSet = true; m_nielsenId3 = value; }
902 
903     /**
904      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
905      * input audio and an equivalent ID3 tag will be inserted in the output.
906      */
SetNielsenId3(M2tsNielsenId3 && value)907     inline void SetNielsenId3(M2tsNielsenId3&& value) { m_nielsenId3HasBeenSet = true; m_nielsenId3 = std::move(value); }
908 
909     /**
910      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
911      * input audio and an equivalent ID3 tag will be inserted in the output.
912      */
WithNielsenId3(const M2tsNielsenId3 & value)913     inline M2tsSettings& WithNielsenId3(const M2tsNielsenId3& value) { SetNielsenId3(value); return *this;}
914 
915     /**
916      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
917      * input audio and an equivalent ID3 tag will be inserted in the output.
918      */
WithNielsenId3(M2tsNielsenId3 && value)919     inline M2tsSettings& WithNielsenId3(M2tsNielsenId3&& value) { SetNielsenId3(std::move(value)); return *this;}
920 
921 
922     /**
923      * Value in bits per second of extra null packets to insert into the transport
924      * stream. This can be used if a downstream encryption system requires periodic
925      * null packets.
926      */
GetNullPacketBitrate()927     inline double GetNullPacketBitrate() const{ return m_nullPacketBitrate; }
928 
929     /**
930      * Value in bits per second of extra null packets to insert into the transport
931      * stream. This can be used if a downstream encryption system requires periodic
932      * null packets.
933      */
NullPacketBitrateHasBeenSet()934     inline bool NullPacketBitrateHasBeenSet() const { return m_nullPacketBitrateHasBeenSet; }
935 
936     /**
937      * Value in bits per second of extra null packets to insert into the transport
938      * stream. This can be used if a downstream encryption system requires periodic
939      * null packets.
940      */
SetNullPacketBitrate(double value)941     inline void SetNullPacketBitrate(double value) { m_nullPacketBitrateHasBeenSet = true; m_nullPacketBitrate = value; }
942 
943     /**
944      * Value in bits per second of extra null packets to insert into the transport
945      * stream. This can be used if a downstream encryption system requires periodic
946      * null packets.
947      */
WithNullPacketBitrate(double value)948     inline M2tsSettings& WithNullPacketBitrate(double value) { SetNullPacketBitrate(value); return *this;}
949 
950 
951     /**
952      * The number of milliseconds between instances of this table in the output
953      * transport stream.
954      */
GetPatInterval()955     inline int GetPatInterval() const{ return m_patInterval; }
956 
957     /**
958      * The number of milliseconds between instances of this table in the output
959      * transport stream.
960      */
PatIntervalHasBeenSet()961     inline bool PatIntervalHasBeenSet() const { return m_patIntervalHasBeenSet; }
962 
963     /**
964      * The number of milliseconds between instances of this table in the output
965      * transport stream.
966      */
SetPatInterval(int value)967     inline void SetPatInterval(int value) { m_patIntervalHasBeenSet = true; m_patInterval = value; }
968 
969     /**
970      * The number of milliseconds between instances of this table in the output
971      * transport stream.
972      */
WithPatInterval(int value)973     inline M2tsSettings& WithPatInterval(int value) { SetPatInterval(value); return *this;}
974 
975 
976     /**
977      * When set to PCR_EVERY_PES_PACKET, a Program Clock Reference value is inserted
978      * for every Packetized Elementary Stream (PES) header. This is effective only when
979      * the PCR PID is the same as the video or audio elementary stream.
980      */
GetPcrControl()981     inline const M2tsPcrControl& GetPcrControl() const{ return m_pcrControl; }
982 
983     /**
984      * When set to PCR_EVERY_PES_PACKET, a Program Clock Reference value is inserted
985      * for every Packetized Elementary Stream (PES) header. This is effective only when
986      * the PCR PID is the same as the video or audio elementary stream.
987      */
PcrControlHasBeenSet()988     inline bool PcrControlHasBeenSet() const { return m_pcrControlHasBeenSet; }
989 
990     /**
991      * When set to PCR_EVERY_PES_PACKET, a Program Clock Reference value is inserted
992      * for every Packetized Elementary Stream (PES) header. This is effective only when
993      * the PCR PID is the same as the video or audio elementary stream.
994      */
SetPcrControl(const M2tsPcrControl & value)995     inline void SetPcrControl(const M2tsPcrControl& value) { m_pcrControlHasBeenSet = true; m_pcrControl = value; }
996 
997     /**
998      * When set to PCR_EVERY_PES_PACKET, a Program Clock Reference value is inserted
999      * for every Packetized Elementary Stream (PES) header. This is effective only when
1000      * the PCR PID is the same as the video or audio elementary stream.
1001      */
SetPcrControl(M2tsPcrControl && value)1002     inline void SetPcrControl(M2tsPcrControl&& value) { m_pcrControlHasBeenSet = true; m_pcrControl = std::move(value); }
1003 
1004     /**
1005      * When set to PCR_EVERY_PES_PACKET, a Program Clock Reference value is inserted
1006      * for every Packetized Elementary Stream (PES) header. This is effective only when
1007      * the PCR PID is the same as the video or audio elementary stream.
1008      */
WithPcrControl(const M2tsPcrControl & value)1009     inline M2tsSettings& WithPcrControl(const M2tsPcrControl& value) { SetPcrControl(value); return *this;}
1010 
1011     /**
1012      * When set to PCR_EVERY_PES_PACKET, a Program Clock Reference value is inserted
1013      * for every Packetized Elementary Stream (PES) header. This is effective only when
1014      * the PCR PID is the same as the video or audio elementary stream.
1015      */
WithPcrControl(M2tsPcrControl && value)1016     inline M2tsSettings& WithPcrControl(M2tsPcrControl&& value) { SetPcrControl(std::move(value)); return *this;}
1017 
1018 
1019     /**
1020      * Specify the packet identifier (PID) for the program clock reference (PCR) in
1021      * this output. If you do not specify a value, the service will use the value for
1022      * Video PID (VideoPid).
1023      */
GetPcrPid()1024     inline int GetPcrPid() const{ return m_pcrPid; }
1025 
1026     /**
1027      * Specify the packet identifier (PID) for the program clock reference (PCR) in
1028      * this output. If you do not specify a value, the service will use the value for
1029      * Video PID (VideoPid).
1030      */
PcrPidHasBeenSet()1031     inline bool PcrPidHasBeenSet() const { return m_pcrPidHasBeenSet; }
1032 
1033     /**
1034      * Specify the packet identifier (PID) for the program clock reference (PCR) in
1035      * this output. If you do not specify a value, the service will use the value for
1036      * Video PID (VideoPid).
1037      */
SetPcrPid(int value)1038     inline void SetPcrPid(int value) { m_pcrPidHasBeenSet = true; m_pcrPid = value; }
1039 
1040     /**
1041      * Specify the packet identifier (PID) for the program clock reference (PCR) in
1042      * this output. If you do not specify a value, the service will use the value for
1043      * Video PID (VideoPid).
1044      */
WithPcrPid(int value)1045     inline M2tsSettings& WithPcrPid(int value) { SetPcrPid(value); return *this;}
1046 
1047 
1048     /**
1049      * Specify the number of milliseconds between instances of the program map table
1050      * (PMT) in the output transport stream.
1051      */
GetPmtInterval()1052     inline int GetPmtInterval() const{ return m_pmtInterval; }
1053 
1054     /**
1055      * Specify the number of milliseconds between instances of the program map table
1056      * (PMT) in the output transport stream.
1057      */
PmtIntervalHasBeenSet()1058     inline bool PmtIntervalHasBeenSet() const { return m_pmtIntervalHasBeenSet; }
1059 
1060     /**
1061      * Specify the number of milliseconds between instances of the program map table
1062      * (PMT) in the output transport stream.
1063      */
SetPmtInterval(int value)1064     inline void SetPmtInterval(int value) { m_pmtIntervalHasBeenSet = true; m_pmtInterval = value; }
1065 
1066     /**
1067      * Specify the number of milliseconds between instances of the program map table
1068      * (PMT) in the output transport stream.
1069      */
WithPmtInterval(int value)1070     inline M2tsSettings& WithPmtInterval(int value) { SetPmtInterval(value); return *this;}
1071 
1072 
1073     /**
1074      * Specify the packet identifier (PID) for the program map table (PMT) itself.
1075      * Default is 480.
1076      */
GetPmtPid()1077     inline int GetPmtPid() const{ return m_pmtPid; }
1078 
1079     /**
1080      * Specify the packet identifier (PID) for the program map table (PMT) itself.
1081      * Default is 480.
1082      */
PmtPidHasBeenSet()1083     inline bool PmtPidHasBeenSet() const { return m_pmtPidHasBeenSet; }
1084 
1085     /**
1086      * Specify the packet identifier (PID) for the program map table (PMT) itself.
1087      * Default is 480.
1088      */
SetPmtPid(int value)1089     inline void SetPmtPid(int value) { m_pmtPidHasBeenSet = true; m_pmtPid = value; }
1090 
1091     /**
1092      * Specify the packet identifier (PID) for the program map table (PMT) itself.
1093      * Default is 480.
1094      */
WithPmtPid(int value)1095     inline M2tsSettings& WithPmtPid(int value) { SetPmtPid(value); return *this;}
1096 
1097 
1098     /**
1099      * Specify the packet identifier (PID) of the private metadata stream. Default is
1100      * 503.
1101      */
GetPrivateMetadataPid()1102     inline int GetPrivateMetadataPid() const{ return m_privateMetadataPid; }
1103 
1104     /**
1105      * Specify the packet identifier (PID) of the private metadata stream. Default is
1106      * 503.
1107      */
PrivateMetadataPidHasBeenSet()1108     inline bool PrivateMetadataPidHasBeenSet() const { return m_privateMetadataPidHasBeenSet; }
1109 
1110     /**
1111      * Specify the packet identifier (PID) of the private metadata stream. Default is
1112      * 503.
1113      */
SetPrivateMetadataPid(int value)1114     inline void SetPrivateMetadataPid(int value) { m_privateMetadataPidHasBeenSet = true; m_privateMetadataPid = value; }
1115 
1116     /**
1117      * Specify the packet identifier (PID) of the private metadata stream. Default is
1118      * 503.
1119      */
WithPrivateMetadataPid(int value)1120     inline M2tsSettings& WithPrivateMetadataPid(int value) { SetPrivateMetadataPid(value); return *this;}
1121 
1122 
1123     /**
1124      * Use Program number (programNumber) to specify the program number used in the
1125      * program map table (PMT) for this output. Default is 1. Program numbers and
1126      * program map tables are parts of MPEG-2 transport stream containers, used for
1127      * organizing data.
1128      */
GetProgramNumber()1129     inline int GetProgramNumber() const{ return m_programNumber; }
1130 
1131     /**
1132      * Use Program number (programNumber) to specify the program number used in the
1133      * program map table (PMT) for this output. Default is 1. Program numbers and
1134      * program map tables are parts of MPEG-2 transport stream containers, used for
1135      * organizing data.
1136      */
ProgramNumberHasBeenSet()1137     inline bool ProgramNumberHasBeenSet() const { return m_programNumberHasBeenSet; }
1138 
1139     /**
1140      * Use Program number (programNumber) to specify the program number used in the
1141      * program map table (PMT) for this output. Default is 1. Program numbers and
1142      * program map tables are parts of MPEG-2 transport stream containers, used for
1143      * organizing data.
1144      */
SetProgramNumber(int value)1145     inline void SetProgramNumber(int value) { m_programNumberHasBeenSet = true; m_programNumber = value; }
1146 
1147     /**
1148      * Use Program number (programNumber) to specify the program number used in the
1149      * program map table (PMT) for this output. Default is 1. Program numbers and
1150      * program map tables are parts of MPEG-2 transport stream containers, used for
1151      * organizing data.
1152      */
WithProgramNumber(int value)1153     inline M2tsSettings& WithProgramNumber(int value) { SetProgramNumber(value); return *this;}
1154 
1155 
1156     /**
1157      * When set to CBR, inserts null packets into transport stream to fill specified
1158      * bitrate. When set to VBR, the bitrate setting acts as the maximum bitrate, but
1159      * the output will not be padded up to that bitrate.
1160      */
GetRateMode()1161     inline const M2tsRateMode& GetRateMode() const{ return m_rateMode; }
1162 
1163     /**
1164      * When set to CBR, inserts null packets into transport stream to fill specified
1165      * bitrate. When set to VBR, the bitrate setting acts as the maximum bitrate, but
1166      * the output will not be padded up to that bitrate.
1167      */
RateModeHasBeenSet()1168     inline bool RateModeHasBeenSet() const { return m_rateModeHasBeenSet; }
1169 
1170     /**
1171      * When set to CBR, inserts null packets into transport stream to fill specified
1172      * bitrate. When set to VBR, the bitrate setting acts as the maximum bitrate, but
1173      * the output will not be padded up to that bitrate.
1174      */
SetRateMode(const M2tsRateMode & value)1175     inline void SetRateMode(const M2tsRateMode& value) { m_rateModeHasBeenSet = true; m_rateMode = value; }
1176 
1177     /**
1178      * When set to CBR, inserts null packets into transport stream to fill specified
1179      * bitrate. When set to VBR, the bitrate setting acts as the maximum bitrate, but
1180      * the output will not be padded up to that bitrate.
1181      */
SetRateMode(M2tsRateMode && value)1182     inline void SetRateMode(M2tsRateMode&& value) { m_rateModeHasBeenSet = true; m_rateMode = std::move(value); }
1183 
1184     /**
1185      * When set to CBR, inserts null packets into transport stream to fill specified
1186      * bitrate. When set to VBR, the bitrate setting acts as the maximum bitrate, but
1187      * the output will not be padded up to that bitrate.
1188      */
WithRateMode(const M2tsRateMode & value)1189     inline M2tsSettings& WithRateMode(const M2tsRateMode& value) { SetRateMode(value); return *this;}
1190 
1191     /**
1192      * When set to CBR, inserts null packets into transport stream to fill specified
1193      * bitrate. When set to VBR, the bitrate setting acts as the maximum bitrate, but
1194      * the output will not be padded up to that bitrate.
1195      */
WithRateMode(M2tsRateMode && value)1196     inline M2tsSettings& WithRateMode(M2tsRateMode&& value) { SetRateMode(std::move(value)); return *this;}
1197 
1198 
1199     /**
1200      * Include this in your job settings to put SCTE-35 markers in your HLS and
1201      * transport stream outputs at the insertion points that you specify in an ESAM XML
1202      * document. Provide the document in the setting SCC XML (sccXml).
1203      */
GetScte35Esam()1204     inline const M2tsScte35Esam& GetScte35Esam() const{ return m_scte35Esam; }
1205 
1206     /**
1207      * Include this in your job settings to put SCTE-35 markers in your HLS and
1208      * transport stream outputs at the insertion points that you specify in an ESAM XML
1209      * document. Provide the document in the setting SCC XML (sccXml).
1210      */
Scte35EsamHasBeenSet()1211     inline bool Scte35EsamHasBeenSet() const { return m_scte35EsamHasBeenSet; }
1212 
1213     /**
1214      * Include this in your job settings to put SCTE-35 markers in your HLS and
1215      * transport stream outputs at the insertion points that you specify in an ESAM XML
1216      * document. Provide the document in the setting SCC XML (sccXml).
1217      */
SetScte35Esam(const M2tsScte35Esam & value)1218     inline void SetScte35Esam(const M2tsScte35Esam& value) { m_scte35EsamHasBeenSet = true; m_scte35Esam = value; }
1219 
1220     /**
1221      * Include this in your job settings to put SCTE-35 markers in your HLS and
1222      * transport stream outputs at the insertion points that you specify in an ESAM XML
1223      * document. Provide the document in the setting SCC XML (sccXml).
1224      */
SetScte35Esam(M2tsScte35Esam && value)1225     inline void SetScte35Esam(M2tsScte35Esam&& value) { m_scte35EsamHasBeenSet = true; m_scte35Esam = std::move(value); }
1226 
1227     /**
1228      * Include this in your job settings to put SCTE-35 markers in your HLS and
1229      * transport stream outputs at the insertion points that you specify in an ESAM XML
1230      * document. Provide the document in the setting SCC XML (sccXml).
1231      */
WithScte35Esam(const M2tsScte35Esam & value)1232     inline M2tsSettings& WithScte35Esam(const M2tsScte35Esam& value) { SetScte35Esam(value); return *this;}
1233 
1234     /**
1235      * Include this in your job settings to put SCTE-35 markers in your HLS and
1236      * transport stream outputs at the insertion points that you specify in an ESAM XML
1237      * document. Provide the document in the setting SCC XML (sccXml).
1238      */
WithScte35Esam(M2tsScte35Esam && value)1239     inline M2tsSettings& WithScte35Esam(M2tsScte35Esam&& value) { SetScte35Esam(std::move(value)); return *this;}
1240 
1241 
1242     /**
1243      * Specify the packet identifier (PID) of the SCTE-35 stream in the transport
1244      * stream.
1245      */
GetScte35Pid()1246     inline int GetScte35Pid() const{ return m_scte35Pid; }
1247 
1248     /**
1249      * Specify the packet identifier (PID) of the SCTE-35 stream in the transport
1250      * stream.
1251      */
Scte35PidHasBeenSet()1252     inline bool Scte35PidHasBeenSet() const { return m_scte35PidHasBeenSet; }
1253 
1254     /**
1255      * Specify the packet identifier (PID) of the SCTE-35 stream in the transport
1256      * stream.
1257      */
SetScte35Pid(int value)1258     inline void SetScte35Pid(int value) { m_scte35PidHasBeenSet = true; m_scte35Pid = value; }
1259 
1260     /**
1261      * Specify the packet identifier (PID) of the SCTE-35 stream in the transport
1262      * stream.
1263      */
WithScte35Pid(int value)1264     inline M2tsSettings& WithScte35Pid(int value) { SetScte35Pid(value); return *this;}
1265 
1266 
1267     /**
1268      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
1269      * want SCTE-35 markers that appear in your input to also appear in this output.
1270      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
1271      * markers from an ESAM XML document-- Choose None (NONE). Also provide the ESAM
1272      * XML as a string in the setting Signal processing notification XML (sccXml). Also
1273      * enable ESAM SCTE-35 (include the property scte35Esam).
1274      */
GetScte35Source()1275     inline const M2tsScte35Source& GetScte35Source() const{ return m_scte35Source; }
1276 
1277     /**
1278      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
1279      * want SCTE-35 markers that appear in your input to also appear in this output.
1280      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
1281      * markers from an ESAM XML document-- Choose None (NONE). Also provide the ESAM
1282      * XML as a string in the setting Signal processing notification XML (sccXml). Also
1283      * enable ESAM SCTE-35 (include the property scte35Esam).
1284      */
Scte35SourceHasBeenSet()1285     inline bool Scte35SourceHasBeenSet() const { return m_scte35SourceHasBeenSet; }
1286 
1287     /**
1288      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
1289      * want SCTE-35 markers that appear in your input to also appear in this output.
1290      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
1291      * markers from an ESAM XML document-- Choose None (NONE). Also provide the ESAM
1292      * XML as a string in the setting Signal processing notification XML (sccXml). Also
1293      * enable ESAM SCTE-35 (include the property scte35Esam).
1294      */
SetScte35Source(const M2tsScte35Source & value)1295     inline void SetScte35Source(const M2tsScte35Source& value) { m_scte35SourceHasBeenSet = true; m_scte35Source = value; }
1296 
1297     /**
1298      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
1299      * want SCTE-35 markers that appear in your input to also appear in this output.
1300      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
1301      * markers from an ESAM XML document-- Choose None (NONE). Also provide the ESAM
1302      * XML as a string in the setting Signal processing notification XML (sccXml). Also
1303      * enable ESAM SCTE-35 (include the property scte35Esam).
1304      */
SetScte35Source(M2tsScte35Source && value)1305     inline void SetScte35Source(M2tsScte35Source&& value) { m_scte35SourceHasBeenSet = true; m_scte35Source = std::move(value); }
1306 
1307     /**
1308      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
1309      * want SCTE-35 markers that appear in your input to also appear in this output.
1310      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
1311      * markers from an ESAM XML document-- Choose None (NONE). Also provide the ESAM
1312      * XML as a string in the setting Signal processing notification XML (sccXml). Also
1313      * enable ESAM SCTE-35 (include the property scte35Esam).
1314      */
WithScte35Source(const M2tsScte35Source & value)1315     inline M2tsSettings& WithScte35Source(const M2tsScte35Source& value) { SetScte35Source(value); return *this;}
1316 
1317     /**
1318      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
1319      * want SCTE-35 markers that appear in your input to also appear in this output.
1320      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
1321      * markers from an ESAM XML document-- Choose None (NONE). Also provide the ESAM
1322      * XML as a string in the setting Signal processing notification XML (sccXml). Also
1323      * enable ESAM SCTE-35 (include the property scte35Esam).
1324      */
WithScte35Source(M2tsScte35Source && value)1325     inline M2tsSettings& WithScte35Source(M2tsScte35Source&& value) { SetScte35Source(std::move(value)); return *this;}
1326 
1327 
1328     /**
1329      * Inserts segmentation markers at each segmentation_time period. rai_segstart sets
1330      * the Random Access Indicator bit in the adaptation field. rai_adapt sets the RAI
1331      * bit and adds the current timecode in the private data bytes. psi_segstart
1332      * inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
1333      * Point information to the adaptation field as per OpenCable specification
1334      * OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information to the
1335      * adaptation field using a legacy proprietary format.
1336      */
GetSegmentationMarkers()1337     inline const M2tsSegmentationMarkers& GetSegmentationMarkers() const{ return m_segmentationMarkers; }
1338 
1339     /**
1340      * Inserts segmentation markers at each segmentation_time period. rai_segstart sets
1341      * the Random Access Indicator bit in the adaptation field. rai_adapt sets the RAI
1342      * bit and adds the current timecode in the private data bytes. psi_segstart
1343      * inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
1344      * Point information to the adaptation field as per OpenCable specification
1345      * OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information to the
1346      * adaptation field using a legacy proprietary format.
1347      */
SegmentationMarkersHasBeenSet()1348     inline bool SegmentationMarkersHasBeenSet() const { return m_segmentationMarkersHasBeenSet; }
1349 
1350     /**
1351      * Inserts segmentation markers at each segmentation_time period. rai_segstart sets
1352      * the Random Access Indicator bit in the adaptation field. rai_adapt sets the RAI
1353      * bit and adds the current timecode in the private data bytes. psi_segstart
1354      * inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
1355      * Point information to the adaptation field as per OpenCable specification
1356      * OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information to the
1357      * adaptation field using a legacy proprietary format.
1358      */
SetSegmentationMarkers(const M2tsSegmentationMarkers & value)1359     inline void SetSegmentationMarkers(const M2tsSegmentationMarkers& value) { m_segmentationMarkersHasBeenSet = true; m_segmentationMarkers = value; }
1360 
1361     /**
1362      * Inserts segmentation markers at each segmentation_time period. rai_segstart sets
1363      * the Random Access Indicator bit in the adaptation field. rai_adapt sets the RAI
1364      * bit and adds the current timecode in the private data bytes. psi_segstart
1365      * inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
1366      * Point information to the adaptation field as per OpenCable specification
1367      * OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information to the
1368      * adaptation field using a legacy proprietary format.
1369      */
SetSegmentationMarkers(M2tsSegmentationMarkers && value)1370     inline void SetSegmentationMarkers(M2tsSegmentationMarkers&& value) { m_segmentationMarkersHasBeenSet = true; m_segmentationMarkers = std::move(value); }
1371 
1372     /**
1373      * Inserts segmentation markers at each segmentation_time period. rai_segstart sets
1374      * the Random Access Indicator bit in the adaptation field. rai_adapt sets the RAI
1375      * bit and adds the current timecode in the private data bytes. psi_segstart
1376      * inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
1377      * Point information to the adaptation field as per OpenCable specification
1378      * OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information to the
1379      * adaptation field using a legacy proprietary format.
1380      */
WithSegmentationMarkers(const M2tsSegmentationMarkers & value)1381     inline M2tsSettings& WithSegmentationMarkers(const M2tsSegmentationMarkers& value) { SetSegmentationMarkers(value); return *this;}
1382 
1383     /**
1384      * Inserts segmentation markers at each segmentation_time period. rai_segstart sets
1385      * the Random Access Indicator bit in the adaptation field. rai_adapt sets the RAI
1386      * bit and adds the current timecode in the private data bytes. psi_segstart
1387      * inserts PAT and PMT tables at the start of segments. ebp adds Encoder Boundary
1388      * Point information to the adaptation field as per OpenCable specification
1389      * OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information to the
1390      * adaptation field using a legacy proprietary format.
1391      */
WithSegmentationMarkers(M2tsSegmentationMarkers && value)1392     inline M2tsSettings& WithSegmentationMarkers(M2tsSegmentationMarkers&& value) { SetSegmentationMarkers(std::move(value)); return *this;}
1393 
1394 
1395     /**
1396      * The segmentation style parameter controls how segmentation markers are inserted
1397      * into the transport stream. With avails, it is possible that segments may be
1398      * truncated, which can influence where future segmentation markers are inserted.
1399      * When a segmentation style of "reset_cadence" is selected and a segment is
1400      * truncated due to an avail, we will reset the segmentation cadence. This means
1401      * the subsequent segment will have a duration of of $segmentation_time seconds.
1402      * When a segmentation style of "maintain_cadence" is selected and a segment is
1403      * truncated due to an avail, we will not reset the segmentation cadence. This
1404      * means the subsequent segment will likely be truncated as well. However, all
1405      * segments after that will have a duration of $segmentation_time seconds. Note
1406      * that EBP lookahead is a slight exception to this rule.
1407      */
GetSegmentationStyle()1408     inline const M2tsSegmentationStyle& GetSegmentationStyle() const{ return m_segmentationStyle; }
1409 
1410     /**
1411      * The segmentation style parameter controls how segmentation markers are inserted
1412      * into the transport stream. With avails, it is possible that segments may be
1413      * truncated, which can influence where future segmentation markers are inserted.
1414      * When a segmentation style of "reset_cadence" is selected and a segment is
1415      * truncated due to an avail, we will reset the segmentation cadence. This means
1416      * the subsequent segment will have a duration of of $segmentation_time seconds.
1417      * When a segmentation style of "maintain_cadence" is selected and a segment is
1418      * truncated due to an avail, we will not reset the segmentation cadence. This
1419      * means the subsequent segment will likely be truncated as well. However, all
1420      * segments after that will have a duration of $segmentation_time seconds. Note
1421      * that EBP lookahead is a slight exception to this rule.
1422      */
SegmentationStyleHasBeenSet()1423     inline bool SegmentationStyleHasBeenSet() const { return m_segmentationStyleHasBeenSet; }
1424 
1425     /**
1426      * The segmentation style parameter controls how segmentation markers are inserted
1427      * into the transport stream. With avails, it is possible that segments may be
1428      * truncated, which can influence where future segmentation markers are inserted.
1429      * When a segmentation style of "reset_cadence" is selected and a segment is
1430      * truncated due to an avail, we will reset the segmentation cadence. This means
1431      * the subsequent segment will have a duration of of $segmentation_time seconds.
1432      * When a segmentation style of "maintain_cadence" is selected and a segment is
1433      * truncated due to an avail, we will not reset the segmentation cadence. This
1434      * means the subsequent segment will likely be truncated as well. However, all
1435      * segments after that will have a duration of $segmentation_time seconds. Note
1436      * that EBP lookahead is a slight exception to this rule.
1437      */
SetSegmentationStyle(const M2tsSegmentationStyle & value)1438     inline void SetSegmentationStyle(const M2tsSegmentationStyle& value) { m_segmentationStyleHasBeenSet = true; m_segmentationStyle = value; }
1439 
1440     /**
1441      * The segmentation style parameter controls how segmentation markers are inserted
1442      * into the transport stream. With avails, it is possible that segments may be
1443      * truncated, which can influence where future segmentation markers are inserted.
1444      * When a segmentation style of "reset_cadence" is selected and a segment is
1445      * truncated due to an avail, we will reset the segmentation cadence. This means
1446      * the subsequent segment will have a duration of of $segmentation_time seconds.
1447      * When a segmentation style of "maintain_cadence" is selected and a segment is
1448      * truncated due to an avail, we will not reset the segmentation cadence. This
1449      * means the subsequent segment will likely be truncated as well. However, all
1450      * segments after that will have a duration of $segmentation_time seconds. Note
1451      * that EBP lookahead is a slight exception to this rule.
1452      */
SetSegmentationStyle(M2tsSegmentationStyle && value)1453     inline void SetSegmentationStyle(M2tsSegmentationStyle&& value) { m_segmentationStyleHasBeenSet = true; m_segmentationStyle = std::move(value); }
1454 
1455     /**
1456      * The segmentation style parameter controls how segmentation markers are inserted
1457      * into the transport stream. With avails, it is possible that segments may be
1458      * truncated, which can influence where future segmentation markers are inserted.
1459      * When a segmentation style of "reset_cadence" is selected and a segment is
1460      * truncated due to an avail, we will reset the segmentation cadence. This means
1461      * the subsequent segment will have a duration of of $segmentation_time seconds.
1462      * When a segmentation style of "maintain_cadence" is selected and a segment is
1463      * truncated due to an avail, we will not reset the segmentation cadence. This
1464      * means the subsequent segment will likely be truncated as well. However, all
1465      * segments after that will have a duration of $segmentation_time seconds. Note
1466      * that EBP lookahead is a slight exception to this rule.
1467      */
WithSegmentationStyle(const M2tsSegmentationStyle & value)1468     inline M2tsSettings& WithSegmentationStyle(const M2tsSegmentationStyle& value) { SetSegmentationStyle(value); return *this;}
1469 
1470     /**
1471      * The segmentation style parameter controls how segmentation markers are inserted
1472      * into the transport stream. With avails, it is possible that segments may be
1473      * truncated, which can influence where future segmentation markers are inserted.
1474      * When a segmentation style of "reset_cadence" is selected and a segment is
1475      * truncated due to an avail, we will reset the segmentation cadence. This means
1476      * the subsequent segment will have a duration of of $segmentation_time seconds.
1477      * When a segmentation style of "maintain_cadence" is selected and a segment is
1478      * truncated due to an avail, we will not reset the segmentation cadence. This
1479      * means the subsequent segment will likely be truncated as well. However, all
1480      * segments after that will have a duration of $segmentation_time seconds. Note
1481      * that EBP lookahead is a slight exception to this rule.
1482      */
WithSegmentationStyle(M2tsSegmentationStyle && value)1483     inline M2tsSettings& WithSegmentationStyle(M2tsSegmentationStyle&& value) { SetSegmentationStyle(std::move(value)); return *this;}
1484 
1485 
1486     /**
1487      * Specify the length, in seconds, of each segment. Required unless markers is set
1488      * to _none_.
1489      */
GetSegmentationTime()1490     inline double GetSegmentationTime() const{ return m_segmentationTime; }
1491 
1492     /**
1493      * Specify the length, in seconds, of each segment. Required unless markers is set
1494      * to _none_.
1495      */
SegmentationTimeHasBeenSet()1496     inline bool SegmentationTimeHasBeenSet() const { return m_segmentationTimeHasBeenSet; }
1497 
1498     /**
1499      * Specify the length, in seconds, of each segment. Required unless markers is set
1500      * to _none_.
1501      */
SetSegmentationTime(double value)1502     inline void SetSegmentationTime(double value) { m_segmentationTimeHasBeenSet = true; m_segmentationTime = value; }
1503 
1504     /**
1505      * Specify the length, in seconds, of each segment. Required unless markers is set
1506      * to _none_.
1507      */
WithSegmentationTime(double value)1508     inline M2tsSettings& WithSegmentationTime(double value) { SetSegmentationTime(value); return *this;}
1509 
1510 
1511     /**
1512      * Specify the packet identifier (PID) for timed metadata in this output. Default
1513      * is 502.
1514      */
GetTimedMetadataPid()1515     inline int GetTimedMetadataPid() const{ return m_timedMetadataPid; }
1516 
1517     /**
1518      * Specify the packet identifier (PID) for timed metadata in this output. Default
1519      * is 502.
1520      */
TimedMetadataPidHasBeenSet()1521     inline bool TimedMetadataPidHasBeenSet() const { return m_timedMetadataPidHasBeenSet; }
1522 
1523     /**
1524      * Specify the packet identifier (PID) for timed metadata in this output. Default
1525      * is 502.
1526      */
SetTimedMetadataPid(int value)1527     inline void SetTimedMetadataPid(int value) { m_timedMetadataPidHasBeenSet = true; m_timedMetadataPid = value; }
1528 
1529     /**
1530      * Specify the packet identifier (PID) for timed metadata in this output. Default
1531      * is 502.
1532      */
WithTimedMetadataPid(int value)1533     inline M2tsSettings& WithTimedMetadataPid(int value) { SetTimedMetadataPid(value); return *this;}
1534 
1535 
1536     /**
1537      * Specify the ID for the transport stream itself in the program map table for this
1538      * output. Transport stream IDs and program map tables are parts of MPEG-2
1539      * transport stream containers, used for organizing data.
1540      */
GetTransportStreamId()1541     inline int GetTransportStreamId() const{ return m_transportStreamId; }
1542 
1543     /**
1544      * Specify the ID for the transport stream itself in the program map table for this
1545      * output. Transport stream IDs and program map tables are parts of MPEG-2
1546      * transport stream containers, used for organizing data.
1547      */
TransportStreamIdHasBeenSet()1548     inline bool TransportStreamIdHasBeenSet() const { return m_transportStreamIdHasBeenSet; }
1549 
1550     /**
1551      * Specify the ID for the transport stream itself in the program map table for this
1552      * output. Transport stream IDs and program map tables are parts of MPEG-2
1553      * transport stream containers, used for organizing data.
1554      */
SetTransportStreamId(int value)1555     inline void SetTransportStreamId(int value) { m_transportStreamIdHasBeenSet = true; m_transportStreamId = value; }
1556 
1557     /**
1558      * Specify the ID for the transport stream itself in the program map table for this
1559      * output. Transport stream IDs and program map tables are parts of MPEG-2
1560      * transport stream containers, used for organizing data.
1561      */
WithTransportStreamId(int value)1562     inline M2tsSettings& WithTransportStreamId(int value) { SetTransportStreamId(value); return *this;}
1563 
1564 
1565     /**
1566      * Specify the packet identifier (PID) of the elementary video stream in the
1567      * transport stream.
1568      */
GetVideoPid()1569     inline int GetVideoPid() const{ return m_videoPid; }
1570 
1571     /**
1572      * Specify the packet identifier (PID) of the elementary video stream in the
1573      * transport stream.
1574      */
VideoPidHasBeenSet()1575     inline bool VideoPidHasBeenSet() const { return m_videoPidHasBeenSet; }
1576 
1577     /**
1578      * Specify the packet identifier (PID) of the elementary video stream in the
1579      * transport stream.
1580      */
SetVideoPid(int value)1581     inline void SetVideoPid(int value) { m_videoPidHasBeenSet = true; m_videoPid = value; }
1582 
1583     /**
1584      * Specify the packet identifier (PID) of the elementary video stream in the
1585      * transport stream.
1586      */
WithVideoPid(int value)1587     inline M2tsSettings& WithVideoPid(int value) { SetVideoPid(value); return *this;}
1588 
1589   private:
1590 
1591     M2tsAudioBufferModel m_audioBufferModel;
1592     bool m_audioBufferModelHasBeenSet;
1593 
1594     M2tsAudioDuration m_audioDuration;
1595     bool m_audioDurationHasBeenSet;
1596 
1597     int m_audioFramesPerPes;
1598     bool m_audioFramesPerPesHasBeenSet;
1599 
1600     Aws::Vector<int> m_audioPids;
1601     bool m_audioPidsHasBeenSet;
1602 
1603     int m_bitrate;
1604     bool m_bitrateHasBeenSet;
1605 
1606     M2tsBufferModel m_bufferModel;
1607     bool m_bufferModelHasBeenSet;
1608 
1609     M2tsDataPtsControl m_dataPTSControl;
1610     bool m_dataPTSControlHasBeenSet;
1611 
1612     DvbNitSettings m_dvbNitSettings;
1613     bool m_dvbNitSettingsHasBeenSet;
1614 
1615     DvbSdtSettings m_dvbSdtSettings;
1616     bool m_dvbSdtSettingsHasBeenSet;
1617 
1618     Aws::Vector<int> m_dvbSubPids;
1619     bool m_dvbSubPidsHasBeenSet;
1620 
1621     DvbTdtSettings m_dvbTdtSettings;
1622     bool m_dvbTdtSettingsHasBeenSet;
1623 
1624     int m_dvbTeletextPid;
1625     bool m_dvbTeletextPidHasBeenSet;
1626 
1627     M2tsEbpAudioInterval m_ebpAudioInterval;
1628     bool m_ebpAudioIntervalHasBeenSet;
1629 
1630     M2tsEbpPlacement m_ebpPlacement;
1631     bool m_ebpPlacementHasBeenSet;
1632 
1633     M2tsEsRateInPes m_esRateInPes;
1634     bool m_esRateInPesHasBeenSet;
1635 
1636     M2tsForceTsVideoEbpOrder m_forceTsVideoEbpOrder;
1637     bool m_forceTsVideoEbpOrderHasBeenSet;
1638 
1639     double m_fragmentTime;
1640     bool m_fragmentTimeHasBeenSet;
1641 
1642     int m_maxPcrInterval;
1643     bool m_maxPcrIntervalHasBeenSet;
1644 
1645     int m_minEbpInterval;
1646     bool m_minEbpIntervalHasBeenSet;
1647 
1648     M2tsNielsenId3 m_nielsenId3;
1649     bool m_nielsenId3HasBeenSet;
1650 
1651     double m_nullPacketBitrate;
1652     bool m_nullPacketBitrateHasBeenSet;
1653 
1654     int m_patInterval;
1655     bool m_patIntervalHasBeenSet;
1656 
1657     M2tsPcrControl m_pcrControl;
1658     bool m_pcrControlHasBeenSet;
1659 
1660     int m_pcrPid;
1661     bool m_pcrPidHasBeenSet;
1662 
1663     int m_pmtInterval;
1664     bool m_pmtIntervalHasBeenSet;
1665 
1666     int m_pmtPid;
1667     bool m_pmtPidHasBeenSet;
1668 
1669     int m_privateMetadataPid;
1670     bool m_privateMetadataPidHasBeenSet;
1671 
1672     int m_programNumber;
1673     bool m_programNumberHasBeenSet;
1674 
1675     M2tsRateMode m_rateMode;
1676     bool m_rateModeHasBeenSet;
1677 
1678     M2tsScte35Esam m_scte35Esam;
1679     bool m_scte35EsamHasBeenSet;
1680 
1681     int m_scte35Pid;
1682     bool m_scte35PidHasBeenSet;
1683 
1684     M2tsScte35Source m_scte35Source;
1685     bool m_scte35SourceHasBeenSet;
1686 
1687     M2tsSegmentationMarkers m_segmentationMarkers;
1688     bool m_segmentationMarkersHasBeenSet;
1689 
1690     M2tsSegmentationStyle m_segmentationStyle;
1691     bool m_segmentationStyleHasBeenSet;
1692 
1693     double m_segmentationTime;
1694     bool m_segmentationTimeHasBeenSet;
1695 
1696     int m_timedMetadataPid;
1697     bool m_timedMetadataPidHasBeenSet;
1698 
1699     int m_transportStreamId;
1700     bool m_transportStreamIdHasBeenSet;
1701 
1702     int m_videoPid;
1703     bool m_videoPidHasBeenSet;
1704   };
1705 
1706 } // namespace Model
1707 } // namespace MediaConvert
1708 } // namespace Aws
1709