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/M3u8AudioDuration.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/mediaconvert/model/M3u8DataPtsControl.h>
11 #include <aws/mediaconvert/model/M3u8NielsenId3.h>
12 #include <aws/mediaconvert/model/M3u8PcrControl.h>
13 #include <aws/mediaconvert/model/M3u8Scte35Source.h>
14 #include <aws/mediaconvert/model/TimedMetadata.h>
15 #include <utility>
16 
17 namespace Aws
18 {
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24   class JsonView;
25 } // namespace Json
26 } // namespace Utils
27 namespace MediaConvert
28 {
29 namespace Model
30 {
31 
32   /**
33    * These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for
34    * the MPEG2-TS segments in your HLS outputs.<p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/M3u8Settings">AWS
36    * API Reference</a></p>
37    */
38   class AWS_MEDIACONVERT_API M3u8Settings
39   {
40   public:
41     M3u8Settings();
42     M3u8Settings(Aws::Utils::Json::JsonView jsonValue);
43     M3u8Settings& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * Specify this setting only when your output will be consumed by a downstream
49      * repackaging workflow that is sensitive to very small duration differences
50      * between video and audio. For this situation, choose Match video duration
51      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
52      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
53      * MediaConvert pads the output audio streams with silence or trims them to ensure
54      * that the total duration of each audio stream is at least as long as the total
55      * duration of the video stream. After padding or trimming, the audio stream
56      * duration is no more than one frame longer than the video stream. MediaConvert
57      * applies audio padding or trimming only to the end of the last segment of the
58      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
59      * the file. When you keep the default value, any minor discrepancies between audio
60      * and video duration will depend on your output audio codec.
61      */
GetAudioDuration()62     inline const M3u8AudioDuration& GetAudioDuration() const{ return m_audioDuration; }
63 
64     /**
65      * Specify this setting only when your output will be consumed by a downstream
66      * repackaging workflow that is sensitive to very small duration differences
67      * between video and audio. For this situation, choose Match video duration
68      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
69      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
70      * MediaConvert pads the output audio streams with silence or trims them to ensure
71      * that the total duration of each audio stream is at least as long as the total
72      * duration of the video stream. After padding or trimming, the audio stream
73      * duration is no more than one frame longer than the video stream. MediaConvert
74      * applies audio padding or trimming only to the end of the last segment of the
75      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
76      * the file. When you keep the default value, any minor discrepancies between audio
77      * and video duration will depend on your output audio codec.
78      */
AudioDurationHasBeenSet()79     inline bool AudioDurationHasBeenSet() const { return m_audioDurationHasBeenSet; }
80 
81     /**
82      * Specify this setting only when your output will be consumed by a downstream
83      * repackaging workflow that is sensitive to very small duration differences
84      * between video and audio. For this situation, choose Match video duration
85      * (MATCH_VIDEO_DURATION). In all other cases, keep the default value, Default
86      * codec duration (DEFAULT_CODEC_DURATION). When you choose Match video duration,
87      * MediaConvert pads the output audio streams with silence or trims them to ensure
88      * that the total duration of each audio stream is at least as long as the total
89      * duration of the video stream. After padding or trimming, the audio stream
90      * duration is no more than one frame longer than the video stream. MediaConvert
91      * applies audio padding or trimming only to the end of the last segment of the
92      * output. For unsegmented outputs, MediaConvert adds padding only to the end of
93      * the file. When you keep the default value, any minor discrepancies between audio
94      * and video duration will depend on your output audio codec.
95      */
SetAudioDuration(const M3u8AudioDuration & value)96     inline void SetAudioDuration(const M3u8AudioDuration& value) { m_audioDurationHasBeenSet = true; m_audioDuration = value; }
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      */
SetAudioDuration(M3u8AudioDuration && value)113     inline void SetAudioDuration(M3u8AudioDuration&& value) { m_audioDurationHasBeenSet = true; m_audioDuration = std::move(value); }
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      */
WithAudioDuration(const M3u8AudioDuration & value)130     inline M3u8Settings& WithAudioDuration(const M3u8AudioDuration& value) { SetAudioDuration(value); return *this;}
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      */
WithAudioDuration(M3u8AudioDuration && value)147     inline M3u8Settings& WithAudioDuration(M3u8AudioDuration&& value) { SetAudioDuration(std::move(value)); return *this;}
148 
149 
150     /**
151      * The number of audio frames to insert for each PES packet.
152      */
GetAudioFramesPerPes()153     inline int GetAudioFramesPerPes() const{ return m_audioFramesPerPes; }
154 
155     /**
156      * The number of audio frames to insert for each PES packet.
157      */
AudioFramesPerPesHasBeenSet()158     inline bool AudioFramesPerPesHasBeenSet() const { return m_audioFramesPerPesHasBeenSet; }
159 
160     /**
161      * The number of audio frames to insert for each PES packet.
162      */
SetAudioFramesPerPes(int value)163     inline void SetAudioFramesPerPes(int value) { m_audioFramesPerPesHasBeenSet = true; m_audioFramesPerPes = value; }
164 
165     /**
166      * The number of audio frames to insert for each PES packet.
167      */
WithAudioFramesPerPes(int value)168     inline M3u8Settings& WithAudioFramesPerPes(int value) { SetAudioFramesPerPes(value); return *this;}
169 
170 
171     /**
172      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
173      * stream. Multiple values are accepted, and can be entered in ranges and/or by
174      * comma separation.
175      */
GetAudioPids()176     inline const Aws::Vector<int>& GetAudioPids() const{ return m_audioPids; }
177 
178     /**
179      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
180      * stream. Multiple values are accepted, and can be entered in ranges and/or by
181      * comma separation.
182      */
AudioPidsHasBeenSet()183     inline bool AudioPidsHasBeenSet() const { return m_audioPidsHasBeenSet; }
184 
185     /**
186      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
187      * stream. Multiple values are accepted, and can be entered in ranges and/or by
188      * comma separation.
189      */
SetAudioPids(const Aws::Vector<int> & value)190     inline void SetAudioPids(const Aws::Vector<int>& value) { m_audioPidsHasBeenSet = true; m_audioPids = value; }
191 
192     /**
193      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
194      * stream. Multiple values are accepted, and can be entered in ranges and/or by
195      * comma separation.
196      */
SetAudioPids(Aws::Vector<int> && value)197     inline void SetAudioPids(Aws::Vector<int>&& value) { m_audioPidsHasBeenSet = true; m_audioPids = std::move(value); }
198 
199     /**
200      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
201      * stream. Multiple values are accepted, and can be entered in ranges and/or by
202      * comma separation.
203      */
WithAudioPids(const Aws::Vector<int> & value)204     inline M3u8Settings& WithAudioPids(const Aws::Vector<int>& value) { SetAudioPids(value); return *this;}
205 
206     /**
207      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
208      * stream. Multiple values are accepted, and can be entered in ranges and/or by
209      * comma separation.
210      */
WithAudioPids(Aws::Vector<int> && value)211     inline M3u8Settings& WithAudioPids(Aws::Vector<int>&& value) { SetAudioPids(std::move(value)); return *this;}
212 
213     /**
214      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
215      * stream. Multiple values are accepted, and can be entered in ranges and/or by
216      * comma separation.
217      */
AddAudioPids(int value)218     inline M3u8Settings& AddAudioPids(int value) { m_audioPidsHasBeenSet = true; m_audioPids.push_back(value); return *this; }
219 
220 
221     /**
222      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
223      * Presentation Timestamp (PTS) values greater than or equal to the first video
224      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
225      * values). Keep the default value (AUTO) to allow all PTS values.
226      */
GetDataPTSControl()227     inline const M3u8DataPtsControl& GetDataPTSControl() const{ return m_dataPTSControl; }
228 
229     /**
230      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
231      * Presentation Timestamp (PTS) values greater than or equal to the first video
232      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
233      * values). Keep the default value (AUTO) to allow all PTS values.
234      */
DataPTSControlHasBeenSet()235     inline bool DataPTSControlHasBeenSet() const { return m_dataPTSControlHasBeenSet; }
236 
237     /**
238      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
239      * Presentation Timestamp (PTS) values greater than or equal to the first video
240      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
241      * values). Keep the default value (AUTO) to allow all PTS values.
242      */
SetDataPTSControl(const M3u8DataPtsControl & value)243     inline void SetDataPTSControl(const M3u8DataPtsControl& value) { m_dataPTSControlHasBeenSet = true; m_dataPTSControl = value; }
244 
245     /**
246      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
247      * Presentation Timestamp (PTS) values greater than or equal to the first video
248      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
249      * values). Keep the default value (AUTO) to allow all PTS values.
250      */
SetDataPTSControl(M3u8DataPtsControl && value)251     inline void SetDataPTSControl(M3u8DataPtsControl&& value) { m_dataPTSControlHasBeenSet = true; m_dataPTSControl = std::move(value); }
252 
253     /**
254      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
255      * Presentation Timestamp (PTS) values greater than or equal to the first video
256      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
257      * values). Keep the default value (AUTO) to allow all PTS values.
258      */
WithDataPTSControl(const M3u8DataPtsControl & value)259     inline M3u8Settings& WithDataPTSControl(const M3u8DataPtsControl& value) { SetDataPTSControl(value); return *this;}
260 
261     /**
262      * If you select ALIGN_TO_VIDEO, MediaConvert writes captions and data packets with
263      * Presentation Timestamp (PTS) values greater than or equal to the first video
264      * packet PTS (MediaConvert drops captions and data packets with lesser PTS
265      * values). Keep the default value (AUTO) to allow all PTS values.
266      */
WithDataPTSControl(M3u8DataPtsControl && value)267     inline M3u8Settings& WithDataPTSControl(M3u8DataPtsControl&& value) { SetDataPTSControl(std::move(value)); return *this;}
268 
269 
270     /**
271      * Specify the maximum time, in milliseconds, between Program Clock References
272      * (PCRs) inserted into the transport stream.
273      */
GetMaxPcrInterval()274     inline int GetMaxPcrInterval() const{ return m_maxPcrInterval; }
275 
276     /**
277      * Specify the maximum time, in milliseconds, between Program Clock References
278      * (PCRs) inserted into the transport stream.
279      */
MaxPcrIntervalHasBeenSet()280     inline bool MaxPcrIntervalHasBeenSet() const { return m_maxPcrIntervalHasBeenSet; }
281 
282     /**
283      * Specify the maximum time, in milliseconds, between Program Clock References
284      * (PCRs) inserted into the transport stream.
285      */
SetMaxPcrInterval(int value)286     inline void SetMaxPcrInterval(int value) { m_maxPcrIntervalHasBeenSet = true; m_maxPcrInterval = value; }
287 
288     /**
289      * Specify the maximum time, in milliseconds, between Program Clock References
290      * (PCRs) inserted into the transport stream.
291      */
WithMaxPcrInterval(int value)292     inline M3u8Settings& WithMaxPcrInterval(int value) { SetMaxPcrInterval(value); return *this;}
293 
294 
295     /**
296      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
297      * input audio and an equivalent ID3 tag will be inserted in the output.
298      */
GetNielsenId3()299     inline const M3u8NielsenId3& GetNielsenId3() const{ return m_nielsenId3; }
300 
301     /**
302      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
303      * input audio and an equivalent ID3 tag will be inserted in the output.
304      */
NielsenId3HasBeenSet()305     inline bool NielsenId3HasBeenSet() const { return m_nielsenId3HasBeenSet; }
306 
307     /**
308      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
309      * input audio and an equivalent ID3 tag will be inserted in the output.
310      */
SetNielsenId3(const M3u8NielsenId3 & value)311     inline void SetNielsenId3(const M3u8NielsenId3& value) { m_nielsenId3HasBeenSet = true; m_nielsenId3 = value; }
312 
313     /**
314      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
315      * input audio and an equivalent ID3 tag will be inserted in the output.
316      */
SetNielsenId3(M3u8NielsenId3 && value)317     inline void SetNielsenId3(M3u8NielsenId3&& value) { m_nielsenId3HasBeenSet = true; m_nielsenId3 = std::move(value); }
318 
319     /**
320      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
321      * input audio and an equivalent ID3 tag will be inserted in the output.
322      */
WithNielsenId3(const M3u8NielsenId3 & value)323     inline M3u8Settings& WithNielsenId3(const M3u8NielsenId3& value) { SetNielsenId3(value); return *this;}
324 
325     /**
326      * If INSERT, Nielsen inaudible tones for media tracking will be detected in the
327      * input audio and an equivalent ID3 tag will be inserted in the output.
328      */
WithNielsenId3(M3u8NielsenId3 && value)329     inline M3u8Settings& WithNielsenId3(M3u8NielsenId3&& value) { SetNielsenId3(std::move(value)); return *this;}
330 
331 
332     /**
333      * The number of milliseconds between instances of this table in the output
334      * transport stream.
335      */
GetPatInterval()336     inline int GetPatInterval() const{ return m_patInterval; }
337 
338     /**
339      * The number of milliseconds between instances of this table in the output
340      * transport stream.
341      */
PatIntervalHasBeenSet()342     inline bool PatIntervalHasBeenSet() const { return m_patIntervalHasBeenSet; }
343 
344     /**
345      * The number of milliseconds between instances of this table in the output
346      * transport stream.
347      */
SetPatInterval(int value)348     inline void SetPatInterval(int value) { m_patIntervalHasBeenSet = true; m_patInterval = value; }
349 
350     /**
351      * The number of milliseconds between instances of this table in the output
352      * transport stream.
353      */
WithPatInterval(int value)354     inline M3u8Settings& WithPatInterval(int value) { SetPatInterval(value); return *this;}
355 
356 
357     /**
358      * When set to PCR_EVERY_PES_PACKET a Program Clock Reference value is inserted for
359      * every Packetized Elementary Stream (PES) header. This parameter is effective
360      * only when the PCR PID is the same as the video or audio elementary stream.
361      */
GetPcrControl()362     inline const M3u8PcrControl& GetPcrControl() const{ return m_pcrControl; }
363 
364     /**
365      * When set to PCR_EVERY_PES_PACKET a Program Clock Reference value is inserted for
366      * every Packetized Elementary Stream (PES) header. This parameter is effective
367      * only when the PCR PID is the same as the video or audio elementary stream.
368      */
PcrControlHasBeenSet()369     inline bool PcrControlHasBeenSet() const { return m_pcrControlHasBeenSet; }
370 
371     /**
372      * When set to PCR_EVERY_PES_PACKET a Program Clock Reference value is inserted for
373      * every Packetized Elementary Stream (PES) header. This parameter is effective
374      * only when the PCR PID is the same as the video or audio elementary stream.
375      */
SetPcrControl(const M3u8PcrControl & value)376     inline void SetPcrControl(const M3u8PcrControl& value) { m_pcrControlHasBeenSet = true; m_pcrControl = value; }
377 
378     /**
379      * When set to PCR_EVERY_PES_PACKET a Program Clock Reference value is inserted for
380      * every Packetized Elementary Stream (PES) header. This parameter is effective
381      * only when the PCR PID is the same as the video or audio elementary stream.
382      */
SetPcrControl(M3u8PcrControl && value)383     inline void SetPcrControl(M3u8PcrControl&& value) { m_pcrControlHasBeenSet = true; m_pcrControl = std::move(value); }
384 
385     /**
386      * When set to PCR_EVERY_PES_PACKET a Program Clock Reference value is inserted for
387      * every Packetized Elementary Stream (PES) header. This parameter is effective
388      * only when the PCR PID is the same as the video or audio elementary stream.
389      */
WithPcrControl(const M3u8PcrControl & value)390     inline M3u8Settings& WithPcrControl(const M3u8PcrControl& value) { SetPcrControl(value); return *this;}
391 
392     /**
393      * When set to PCR_EVERY_PES_PACKET a Program Clock Reference value is inserted for
394      * every Packetized Elementary Stream (PES) header. This parameter is effective
395      * only when the PCR PID is the same as the video or audio elementary stream.
396      */
WithPcrControl(M3u8PcrControl && value)397     inline M3u8Settings& WithPcrControl(M3u8PcrControl&& value) { SetPcrControl(std::move(value)); return *this;}
398 
399 
400     /**
401      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
402      * stream. When no value is given, the encoder will assign the same value as the
403      * Video PID.
404      */
GetPcrPid()405     inline int GetPcrPid() const{ return m_pcrPid; }
406 
407     /**
408      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
409      * stream. When no value is given, the encoder will assign the same value as the
410      * Video PID.
411      */
PcrPidHasBeenSet()412     inline bool PcrPidHasBeenSet() const { return m_pcrPidHasBeenSet; }
413 
414     /**
415      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
416      * stream. When no value is given, the encoder will assign the same value as the
417      * Video PID.
418      */
SetPcrPid(int value)419     inline void SetPcrPid(int value) { m_pcrPidHasBeenSet = true; m_pcrPid = value; }
420 
421     /**
422      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
423      * stream. When no value is given, the encoder will assign the same value as the
424      * Video PID.
425      */
WithPcrPid(int value)426     inline M3u8Settings& WithPcrPid(int value) { SetPcrPid(value); return *this;}
427 
428 
429     /**
430      * The number of milliseconds between instances of this table in the output
431      * transport stream.
432      */
GetPmtInterval()433     inline int GetPmtInterval() const{ return m_pmtInterval; }
434 
435     /**
436      * The number of milliseconds between instances of this table in the output
437      * transport stream.
438      */
PmtIntervalHasBeenSet()439     inline bool PmtIntervalHasBeenSet() const { return m_pmtIntervalHasBeenSet; }
440 
441     /**
442      * The number of milliseconds between instances of this table in the output
443      * transport stream.
444      */
SetPmtInterval(int value)445     inline void SetPmtInterval(int value) { m_pmtIntervalHasBeenSet = true; m_pmtInterval = value; }
446 
447     /**
448      * The number of milliseconds between instances of this table in the output
449      * transport stream.
450      */
WithPmtInterval(int value)451     inline M3u8Settings& WithPmtInterval(int value) { SetPmtInterval(value); return *this;}
452 
453 
454     /**
455      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
456      */
GetPmtPid()457     inline int GetPmtPid() const{ return m_pmtPid; }
458 
459     /**
460      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
461      */
PmtPidHasBeenSet()462     inline bool PmtPidHasBeenSet() const { return m_pmtPidHasBeenSet; }
463 
464     /**
465      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
466      */
SetPmtPid(int value)467     inline void SetPmtPid(int value) { m_pmtPidHasBeenSet = true; m_pmtPid = value; }
468 
469     /**
470      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
471      */
WithPmtPid(int value)472     inline M3u8Settings& WithPmtPid(int value) { SetPmtPid(value); return *this;}
473 
474 
475     /**
476      * Packet Identifier (PID) of the private metadata stream in the transport stream.
477      */
GetPrivateMetadataPid()478     inline int GetPrivateMetadataPid() const{ return m_privateMetadataPid; }
479 
480     /**
481      * Packet Identifier (PID) of the private metadata stream in the transport stream.
482      */
PrivateMetadataPidHasBeenSet()483     inline bool PrivateMetadataPidHasBeenSet() const { return m_privateMetadataPidHasBeenSet; }
484 
485     /**
486      * Packet Identifier (PID) of the private metadata stream in the transport stream.
487      */
SetPrivateMetadataPid(int value)488     inline void SetPrivateMetadataPid(int value) { m_privateMetadataPidHasBeenSet = true; m_privateMetadataPid = value; }
489 
490     /**
491      * Packet Identifier (PID) of the private metadata stream in the transport stream.
492      */
WithPrivateMetadataPid(int value)493     inline M3u8Settings& WithPrivateMetadataPid(int value) { SetPrivateMetadataPid(value); return *this;}
494 
495 
496     /**
497      * The value of the program number field in the Program Map Table.
498      */
GetProgramNumber()499     inline int GetProgramNumber() const{ return m_programNumber; }
500 
501     /**
502      * The value of the program number field in the Program Map Table.
503      */
ProgramNumberHasBeenSet()504     inline bool ProgramNumberHasBeenSet() const { return m_programNumberHasBeenSet; }
505 
506     /**
507      * The value of the program number field in the Program Map Table.
508      */
SetProgramNumber(int value)509     inline void SetProgramNumber(int value) { m_programNumberHasBeenSet = true; m_programNumber = value; }
510 
511     /**
512      * The value of the program number field in the Program Map Table.
513      */
WithProgramNumber(int value)514     inline M3u8Settings& WithProgramNumber(int value) { SetProgramNumber(value); return *this;}
515 
516 
517     /**
518      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream.
519      */
GetScte35Pid()520     inline int GetScte35Pid() const{ return m_scte35Pid; }
521 
522     /**
523      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream.
524      */
Scte35PidHasBeenSet()525     inline bool Scte35PidHasBeenSet() const { return m_scte35PidHasBeenSet; }
526 
527     /**
528      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream.
529      */
SetScte35Pid(int value)530     inline void SetScte35Pid(int value) { m_scte35PidHasBeenSet = true; m_scte35Pid = value; }
531 
532     /**
533      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream.
534      */
WithScte35Pid(int value)535     inline M3u8Settings& WithScte35Pid(int value) { SetScte35Pid(value); return *this;}
536 
537 
538     /**
539      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
540      * want SCTE-35 markers that appear in your input to also appear in this output.
541      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
542      * markers from an ESAM XML document-- Choose None (NONE) if you don't want
543      * manifest conditioning. Choose Passthrough (PASSTHROUGH) and choose Ad markers
544      * (adMarkers) if you do want manifest conditioning. In both cases, also provide
545      * the ESAM XML as a string in the setting Signal processing notification XML
546      * (sccXml).
547      */
GetScte35Source()548     inline const M3u8Scte35Source& GetScte35Source() const{ return m_scte35Source; }
549 
550     /**
551      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
552      * want SCTE-35 markers that appear in your input to also appear in this output.
553      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
554      * markers from an ESAM XML document-- Choose None (NONE) if you don't want
555      * manifest conditioning. Choose Passthrough (PASSTHROUGH) and choose Ad markers
556      * (adMarkers) if you do want manifest conditioning. In both cases, also provide
557      * the ESAM XML as a string in the setting Signal processing notification XML
558      * (sccXml).
559      */
Scte35SourceHasBeenSet()560     inline bool Scte35SourceHasBeenSet() const { return m_scte35SourceHasBeenSet; }
561 
562     /**
563      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
564      * want SCTE-35 markers that appear in your input to also appear in this output.
565      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
566      * markers from an ESAM XML document-- Choose None (NONE) if you don't want
567      * manifest conditioning. Choose Passthrough (PASSTHROUGH) and choose Ad markers
568      * (adMarkers) if you do want manifest conditioning. In both cases, also provide
569      * the ESAM XML as a string in the setting Signal processing notification XML
570      * (sccXml).
571      */
SetScte35Source(const M3u8Scte35Source & value)572     inline void SetScte35Source(const M3u8Scte35Source& value) { m_scte35SourceHasBeenSet = true; m_scte35Source = value; }
573 
574     /**
575      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
576      * want SCTE-35 markers that appear in your input to also appear in this output.
577      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
578      * markers from an ESAM XML document-- Choose None (NONE) if you don't want
579      * manifest conditioning. Choose Passthrough (PASSTHROUGH) and choose Ad markers
580      * (adMarkers) if you do want manifest conditioning. In both cases, also provide
581      * the ESAM XML as a string in the setting Signal processing notification XML
582      * (sccXml).
583      */
SetScte35Source(M3u8Scte35Source && value)584     inline void SetScte35Source(M3u8Scte35Source&& value) { m_scte35SourceHasBeenSet = true; m_scte35Source = std::move(value); }
585 
586     /**
587      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
588      * want SCTE-35 markers that appear in your input to also appear in this output.
589      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
590      * markers from an ESAM XML document-- Choose None (NONE) if you don't want
591      * manifest conditioning. Choose Passthrough (PASSTHROUGH) and choose Ad markers
592      * (adMarkers) if you do want manifest conditioning. In both cases, also provide
593      * the ESAM XML as a string in the setting Signal processing notification XML
594      * (sccXml).
595      */
WithScte35Source(const M3u8Scte35Source & value)596     inline M3u8Settings& WithScte35Source(const M3u8Scte35Source& value) { SetScte35Source(value); return *this;}
597 
598     /**
599      * For SCTE-35 markers from your input-- Choose Passthrough (PASSTHROUGH) if you
600      * want SCTE-35 markers that appear in your input to also appear in this output.
601      * Choose None (NONE) if you don't want SCTE-35 markers in this output. For SCTE-35
602      * markers from an ESAM XML document-- Choose None (NONE) if you don't want
603      * manifest conditioning. Choose Passthrough (PASSTHROUGH) and choose Ad markers
604      * (adMarkers) if you do want manifest conditioning. In both cases, also provide
605      * the ESAM XML as a string in the setting Signal processing notification XML
606      * (sccXml).
607      */
WithScte35Source(M3u8Scte35Source && value)608     inline M3u8Settings& WithScte35Source(M3u8Scte35Source&& value) { SetScte35Source(std::move(value)); return *this;}
609 
610 
611     /**
612      * Applies only to HLS outputs. Use this setting to specify whether the service
613      * inserts the ID3 timed metadata from the input in this output.
614      */
GetTimedMetadata()615     inline const TimedMetadata& GetTimedMetadata() const{ return m_timedMetadata; }
616 
617     /**
618      * Applies only to HLS outputs. Use this setting to specify whether the service
619      * inserts the ID3 timed metadata from the input in this output.
620      */
TimedMetadataHasBeenSet()621     inline bool TimedMetadataHasBeenSet() const { return m_timedMetadataHasBeenSet; }
622 
623     /**
624      * Applies only to HLS outputs. Use this setting to specify whether the service
625      * inserts the ID3 timed metadata from the input in this output.
626      */
SetTimedMetadata(const TimedMetadata & value)627     inline void SetTimedMetadata(const TimedMetadata& value) { m_timedMetadataHasBeenSet = true; m_timedMetadata = value; }
628 
629     /**
630      * Applies only to HLS outputs. Use this setting to specify whether the service
631      * inserts the ID3 timed metadata from the input in this output.
632      */
SetTimedMetadata(TimedMetadata && value)633     inline void SetTimedMetadata(TimedMetadata&& value) { m_timedMetadataHasBeenSet = true; m_timedMetadata = std::move(value); }
634 
635     /**
636      * Applies only to HLS outputs. Use this setting to specify whether the service
637      * inserts the ID3 timed metadata from the input in this output.
638      */
WithTimedMetadata(const TimedMetadata & value)639     inline M3u8Settings& WithTimedMetadata(const TimedMetadata& value) { SetTimedMetadata(value); return *this;}
640 
641     /**
642      * Applies only to HLS outputs. Use this setting to specify whether the service
643      * inserts the ID3 timed metadata from the input in this output.
644      */
WithTimedMetadata(TimedMetadata && value)645     inline M3u8Settings& WithTimedMetadata(TimedMetadata&& value) { SetTimedMetadata(std::move(value)); return *this;}
646 
647 
648     /**
649      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
650      */
GetTimedMetadataPid()651     inline int GetTimedMetadataPid() const{ return m_timedMetadataPid; }
652 
653     /**
654      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
655      */
TimedMetadataPidHasBeenSet()656     inline bool TimedMetadataPidHasBeenSet() const { return m_timedMetadataPidHasBeenSet; }
657 
658     /**
659      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
660      */
SetTimedMetadataPid(int value)661     inline void SetTimedMetadataPid(int value) { m_timedMetadataPidHasBeenSet = true; m_timedMetadataPid = value; }
662 
663     /**
664      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
665      */
WithTimedMetadataPid(int value)666     inline M3u8Settings& WithTimedMetadataPid(int value) { SetTimedMetadataPid(value); return *this;}
667 
668 
669     /**
670      * The value of the transport stream ID field in the Program Map Table.
671      */
GetTransportStreamId()672     inline int GetTransportStreamId() const{ return m_transportStreamId; }
673 
674     /**
675      * The value of the transport stream ID field in the Program Map Table.
676      */
TransportStreamIdHasBeenSet()677     inline bool TransportStreamIdHasBeenSet() const { return m_transportStreamIdHasBeenSet; }
678 
679     /**
680      * The value of the transport stream ID field in the Program Map Table.
681      */
SetTransportStreamId(int value)682     inline void SetTransportStreamId(int value) { m_transportStreamIdHasBeenSet = true; m_transportStreamId = value; }
683 
684     /**
685      * The value of the transport stream ID field in the Program Map Table.
686      */
WithTransportStreamId(int value)687     inline M3u8Settings& WithTransportStreamId(int value) { SetTransportStreamId(value); return *this;}
688 
689 
690     /**
691      * Packet Identifier (PID) of the elementary video stream in the transport stream.
692      */
GetVideoPid()693     inline int GetVideoPid() const{ return m_videoPid; }
694 
695     /**
696      * Packet Identifier (PID) of the elementary video stream in the transport stream.
697      */
VideoPidHasBeenSet()698     inline bool VideoPidHasBeenSet() const { return m_videoPidHasBeenSet; }
699 
700     /**
701      * Packet Identifier (PID) of the elementary video stream in the transport stream.
702      */
SetVideoPid(int value)703     inline void SetVideoPid(int value) { m_videoPidHasBeenSet = true; m_videoPid = value; }
704 
705     /**
706      * Packet Identifier (PID) of the elementary video stream in the transport stream.
707      */
WithVideoPid(int value)708     inline M3u8Settings& WithVideoPid(int value) { SetVideoPid(value); return *this;}
709 
710   private:
711 
712     M3u8AudioDuration m_audioDuration;
713     bool m_audioDurationHasBeenSet;
714 
715     int m_audioFramesPerPes;
716     bool m_audioFramesPerPesHasBeenSet;
717 
718     Aws::Vector<int> m_audioPids;
719     bool m_audioPidsHasBeenSet;
720 
721     M3u8DataPtsControl m_dataPTSControl;
722     bool m_dataPTSControlHasBeenSet;
723 
724     int m_maxPcrInterval;
725     bool m_maxPcrIntervalHasBeenSet;
726 
727     M3u8NielsenId3 m_nielsenId3;
728     bool m_nielsenId3HasBeenSet;
729 
730     int m_patInterval;
731     bool m_patIntervalHasBeenSet;
732 
733     M3u8PcrControl m_pcrControl;
734     bool m_pcrControlHasBeenSet;
735 
736     int m_pcrPid;
737     bool m_pcrPidHasBeenSet;
738 
739     int m_pmtInterval;
740     bool m_pmtIntervalHasBeenSet;
741 
742     int m_pmtPid;
743     bool m_pmtPidHasBeenSet;
744 
745     int m_privateMetadataPid;
746     bool m_privateMetadataPidHasBeenSet;
747 
748     int m_programNumber;
749     bool m_programNumberHasBeenSet;
750 
751     int m_scte35Pid;
752     bool m_scte35PidHasBeenSet;
753 
754     M3u8Scte35Source m_scte35Source;
755     bool m_scte35SourceHasBeenSet;
756 
757     TimedMetadata m_timedMetadata;
758     bool m_timedMetadataHasBeenSet;
759 
760     int m_timedMetadataPid;
761     bool m_timedMetadataPidHasBeenSet;
762 
763     int m_transportStreamId;
764     bool m_transportStreamIdHasBeenSet;
765 
766     int m_videoPid;
767     bool m_videoPidHasBeenSet;
768   };
769 
770 } // namespace Model
771 } // namespace MediaConvert
772 } // namespace Aws
773