1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/medialive/MediaLive_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/medialive/model/M3u8NielsenId3Behavior.h>
10 #include <aws/medialive/model/M3u8PcrControl.h>
11 #include <aws/medialive/model/M3u8Scte35Behavior.h>
12 #include <aws/medialive/model/M3u8TimedMetadataBehavior.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace MediaLive
26 {
27 namespace Model
28 {
29 
30   /**
31    * Settings information for the .m3u8 container<p><h3>See Also:</h3>   <a
32    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/M3u8Settings">AWS
33    * API Reference</a></p>
34    */
35   class AWS_MEDIALIVE_API M3u8Settings
36   {
37   public:
38     M3u8Settings();
39     M3u8Settings(Aws::Utils::Json::JsonView jsonValue);
40     M3u8Settings& operator=(Aws::Utils::Json::JsonView jsonValue);
41     Aws::Utils::Json::JsonValue Jsonize() const;
42 
43 
44     /**
45      * The number of audio frames to insert for each PES packet.
46      */
GetAudioFramesPerPes()47     inline int GetAudioFramesPerPes() const{ return m_audioFramesPerPes; }
48 
49     /**
50      * The number of audio frames to insert for each PES packet.
51      */
AudioFramesPerPesHasBeenSet()52     inline bool AudioFramesPerPesHasBeenSet() const { return m_audioFramesPerPesHasBeenSet; }
53 
54     /**
55      * The number of audio frames to insert for each PES packet.
56      */
SetAudioFramesPerPes(int value)57     inline void SetAudioFramesPerPes(int value) { m_audioFramesPerPesHasBeenSet = true; m_audioFramesPerPes = value; }
58 
59     /**
60      * The number of audio frames to insert for each PES packet.
61      */
WithAudioFramesPerPes(int value)62     inline M3u8Settings& WithAudioFramesPerPes(int value) { SetAudioFramesPerPes(value); return *this;}
63 
64 
65     /**
66      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
67      * stream. Multiple values are accepted, and can be entered in ranges and/or by
68      * comma separation. Can be entered as decimal or hexadecimal values.
69      */
GetAudioPids()70     inline const Aws::String& GetAudioPids() const{ return m_audioPids; }
71 
72     /**
73      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
74      * stream. Multiple values are accepted, and can be entered in ranges and/or by
75      * comma separation. Can be entered as decimal or hexadecimal values.
76      */
AudioPidsHasBeenSet()77     inline bool AudioPidsHasBeenSet() const { return m_audioPidsHasBeenSet; }
78 
79     /**
80      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
81      * stream. Multiple values are accepted, and can be entered in ranges and/or by
82      * comma separation. Can be entered as decimal or hexadecimal values.
83      */
SetAudioPids(const Aws::String & value)84     inline void SetAudioPids(const Aws::String& value) { m_audioPidsHasBeenSet = true; m_audioPids = value; }
85 
86     /**
87      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
88      * stream. Multiple values are accepted, and can be entered in ranges and/or by
89      * comma separation. Can be entered as decimal or hexadecimal values.
90      */
SetAudioPids(Aws::String && value)91     inline void SetAudioPids(Aws::String&& value) { m_audioPidsHasBeenSet = true; m_audioPids = std::move(value); }
92 
93     /**
94      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
95      * stream. Multiple values are accepted, and can be entered in ranges and/or by
96      * comma separation. Can be entered as decimal or hexadecimal values.
97      */
SetAudioPids(const char * value)98     inline void SetAudioPids(const char* value) { m_audioPidsHasBeenSet = true; m_audioPids.assign(value); }
99 
100     /**
101      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
102      * stream. Multiple values are accepted, and can be entered in ranges and/or by
103      * comma separation. Can be entered as decimal or hexadecimal values.
104      */
WithAudioPids(const Aws::String & value)105     inline M3u8Settings& WithAudioPids(const Aws::String& value) { SetAudioPids(value); return *this;}
106 
107     /**
108      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
109      * stream. Multiple values are accepted, and can be entered in ranges and/or by
110      * comma separation. Can be entered as decimal or hexadecimal values.
111      */
WithAudioPids(Aws::String && value)112     inline M3u8Settings& WithAudioPids(Aws::String&& value) { SetAudioPids(std::move(value)); return *this;}
113 
114     /**
115      * Packet Identifier (PID) of the elementary audio stream(s) in the transport
116      * stream. Multiple values are accepted, and can be entered in ranges and/or by
117      * comma separation. Can be entered as decimal or hexadecimal values.
118      */
WithAudioPids(const char * value)119     inline M3u8Settings& WithAudioPids(const char* value) { SetAudioPids(value); return *this;}
120 
121 
122     /**
123      * This parameter is unused and deprecated.
124      */
GetEcmPid()125     inline const Aws::String& GetEcmPid() const{ return m_ecmPid; }
126 
127     /**
128      * This parameter is unused and deprecated.
129      */
EcmPidHasBeenSet()130     inline bool EcmPidHasBeenSet() const { return m_ecmPidHasBeenSet; }
131 
132     /**
133      * This parameter is unused and deprecated.
134      */
SetEcmPid(const Aws::String & value)135     inline void SetEcmPid(const Aws::String& value) { m_ecmPidHasBeenSet = true; m_ecmPid = value; }
136 
137     /**
138      * This parameter is unused and deprecated.
139      */
SetEcmPid(Aws::String && value)140     inline void SetEcmPid(Aws::String&& value) { m_ecmPidHasBeenSet = true; m_ecmPid = std::move(value); }
141 
142     /**
143      * This parameter is unused and deprecated.
144      */
SetEcmPid(const char * value)145     inline void SetEcmPid(const char* value) { m_ecmPidHasBeenSet = true; m_ecmPid.assign(value); }
146 
147     /**
148      * This parameter is unused and deprecated.
149      */
WithEcmPid(const Aws::String & value)150     inline M3u8Settings& WithEcmPid(const Aws::String& value) { SetEcmPid(value); return *this;}
151 
152     /**
153      * This parameter is unused and deprecated.
154      */
WithEcmPid(Aws::String && value)155     inline M3u8Settings& WithEcmPid(Aws::String&& value) { SetEcmPid(std::move(value)); return *this;}
156 
157     /**
158      * This parameter is unused and deprecated.
159      */
WithEcmPid(const char * value)160     inline M3u8Settings& WithEcmPid(const char* value) { SetEcmPid(value); return *this;}
161 
162 
163     /**
164      * If set to passthrough, Nielsen inaudible tones for media tracking will be
165      * detected in the input audio and an equivalent ID3 tag will be inserted in the
166      * output.
167      */
GetNielsenId3Behavior()168     inline const M3u8NielsenId3Behavior& GetNielsenId3Behavior() const{ return m_nielsenId3Behavior; }
169 
170     /**
171      * If set to passthrough, Nielsen inaudible tones for media tracking will be
172      * detected in the input audio and an equivalent ID3 tag will be inserted in the
173      * output.
174      */
NielsenId3BehaviorHasBeenSet()175     inline bool NielsenId3BehaviorHasBeenSet() const { return m_nielsenId3BehaviorHasBeenSet; }
176 
177     /**
178      * If set to passthrough, Nielsen inaudible tones for media tracking will be
179      * detected in the input audio and an equivalent ID3 tag will be inserted in the
180      * output.
181      */
SetNielsenId3Behavior(const M3u8NielsenId3Behavior & value)182     inline void SetNielsenId3Behavior(const M3u8NielsenId3Behavior& value) { m_nielsenId3BehaviorHasBeenSet = true; m_nielsenId3Behavior = value; }
183 
184     /**
185      * If set to passthrough, Nielsen inaudible tones for media tracking will be
186      * detected in the input audio and an equivalent ID3 tag will be inserted in the
187      * output.
188      */
SetNielsenId3Behavior(M3u8NielsenId3Behavior && value)189     inline void SetNielsenId3Behavior(M3u8NielsenId3Behavior&& value) { m_nielsenId3BehaviorHasBeenSet = true; m_nielsenId3Behavior = std::move(value); }
190 
191     /**
192      * If set to passthrough, Nielsen inaudible tones for media tracking will be
193      * detected in the input audio and an equivalent ID3 tag will be inserted in the
194      * output.
195      */
WithNielsenId3Behavior(const M3u8NielsenId3Behavior & value)196     inline M3u8Settings& WithNielsenId3Behavior(const M3u8NielsenId3Behavior& value) { SetNielsenId3Behavior(value); return *this;}
197 
198     /**
199      * If set to passthrough, Nielsen inaudible tones for media tracking will be
200      * detected in the input audio and an equivalent ID3 tag will be inserted in the
201      * output.
202      */
WithNielsenId3Behavior(M3u8NielsenId3Behavior && value)203     inline M3u8Settings& WithNielsenId3Behavior(M3u8NielsenId3Behavior&& value) { SetNielsenId3Behavior(std::move(value)); return *this;}
204 
205 
206     /**
207      * The number of milliseconds between instances of this table in the output
208      * transport stream. A value of \"0\" writes out the PMT once per segment file.
209      */
GetPatInterval()210     inline int GetPatInterval() const{ return m_patInterval; }
211 
212     /**
213      * The number of milliseconds between instances of this table in the output
214      * transport stream. A value of \"0\" writes out the PMT once per segment file.
215      */
PatIntervalHasBeenSet()216     inline bool PatIntervalHasBeenSet() const { return m_patIntervalHasBeenSet; }
217 
218     /**
219      * The number of milliseconds between instances of this table in the output
220      * transport stream. A value of \"0\" writes out the PMT once per segment file.
221      */
SetPatInterval(int value)222     inline void SetPatInterval(int value) { m_patIntervalHasBeenSet = true; m_patInterval = value; }
223 
224     /**
225      * The number of milliseconds between instances of this table in the output
226      * transport stream. A value of \"0\" writes out the PMT once per segment file.
227      */
WithPatInterval(int value)228     inline M3u8Settings& WithPatInterval(int value) { SetPatInterval(value); return *this;}
229 
230 
231     /**
232      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
233      * every Packetized Elementary Stream (PES) header. This parameter is effective
234      * only when the PCR PID is the same as the video or audio elementary stream.
235      */
GetPcrControl()236     inline const M3u8PcrControl& GetPcrControl() const{ return m_pcrControl; }
237 
238     /**
239      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
240      * every Packetized Elementary Stream (PES) header. This parameter is effective
241      * only when the PCR PID is the same as the video or audio elementary stream.
242      */
PcrControlHasBeenSet()243     inline bool PcrControlHasBeenSet() const { return m_pcrControlHasBeenSet; }
244 
245     /**
246      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
247      * every Packetized Elementary Stream (PES) header. This parameter is effective
248      * only when the PCR PID is the same as the video or audio elementary stream.
249      */
SetPcrControl(const M3u8PcrControl & value)250     inline void SetPcrControl(const M3u8PcrControl& value) { m_pcrControlHasBeenSet = true; m_pcrControl = value; }
251 
252     /**
253      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
254      * every Packetized Elementary Stream (PES) header. This parameter is effective
255      * only when the PCR PID is the same as the video or audio elementary stream.
256      */
SetPcrControl(M3u8PcrControl && value)257     inline void SetPcrControl(M3u8PcrControl&& value) { m_pcrControlHasBeenSet = true; m_pcrControl = std::move(value); }
258 
259     /**
260      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
261      * every Packetized Elementary Stream (PES) header. This parameter is effective
262      * only when the PCR PID is the same as the video or audio elementary stream.
263      */
WithPcrControl(const M3u8PcrControl & value)264     inline M3u8Settings& WithPcrControl(const M3u8PcrControl& value) { SetPcrControl(value); return *this;}
265 
266     /**
267      * When set to pcrEveryPesPacket, a Program Clock Reference value is inserted for
268      * every Packetized Elementary Stream (PES) header. This parameter is effective
269      * only when the PCR PID is the same as the video or audio elementary stream.
270      */
WithPcrControl(M3u8PcrControl && value)271     inline M3u8Settings& WithPcrControl(M3u8PcrControl&& value) { SetPcrControl(std::move(value)); return *this;}
272 
273 
274     /**
275      * Maximum time in milliseconds between Program Clock References (PCRs) inserted
276      * into the transport stream.
277      */
GetPcrPeriod()278     inline int GetPcrPeriod() const{ return m_pcrPeriod; }
279 
280     /**
281      * Maximum time in milliseconds between Program Clock References (PCRs) inserted
282      * into the transport stream.
283      */
PcrPeriodHasBeenSet()284     inline bool PcrPeriodHasBeenSet() const { return m_pcrPeriodHasBeenSet; }
285 
286     /**
287      * Maximum time in milliseconds between Program Clock References (PCRs) inserted
288      * into the transport stream.
289      */
SetPcrPeriod(int value)290     inline void SetPcrPeriod(int value) { m_pcrPeriodHasBeenSet = true; m_pcrPeriod = value; }
291 
292     /**
293      * Maximum time in milliseconds between Program Clock References (PCRs) inserted
294      * into the transport stream.
295      */
WithPcrPeriod(int value)296     inline M3u8Settings& WithPcrPeriod(int value) { SetPcrPeriod(value); return *this;}
297 
298 
299     /**
300      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
301      * stream. When no value is given, the encoder will assign the same value as the
302      * Video PID. Can be entered as a decimal or hexadecimal value.
303      */
GetPcrPid()304     inline const Aws::String& GetPcrPid() const{ return m_pcrPid; }
305 
306     /**
307      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
308      * stream. When no value is given, the encoder will assign the same value as the
309      * Video PID. Can be entered as a decimal or hexadecimal value.
310      */
PcrPidHasBeenSet()311     inline bool PcrPidHasBeenSet() const { return m_pcrPidHasBeenSet; }
312 
313     /**
314      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
315      * stream. When no value is given, the encoder will assign the same value as the
316      * Video PID. Can be entered as a decimal or hexadecimal value.
317      */
SetPcrPid(const Aws::String & value)318     inline void SetPcrPid(const Aws::String& value) { m_pcrPidHasBeenSet = true; m_pcrPid = value; }
319 
320     /**
321      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
322      * stream. When no value is given, the encoder will assign the same value as the
323      * Video PID. Can be entered as a decimal or hexadecimal value.
324      */
SetPcrPid(Aws::String && value)325     inline void SetPcrPid(Aws::String&& value) { m_pcrPidHasBeenSet = true; m_pcrPid = std::move(value); }
326 
327     /**
328      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
329      * stream. When no value is given, the encoder will assign the same value as the
330      * Video PID. Can be entered as a decimal or hexadecimal value.
331      */
SetPcrPid(const char * value)332     inline void SetPcrPid(const char* value) { m_pcrPidHasBeenSet = true; m_pcrPid.assign(value); }
333 
334     /**
335      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
336      * stream. When no value is given, the encoder will assign the same value as the
337      * Video PID. Can be entered as a decimal or hexadecimal value.
338      */
WithPcrPid(const Aws::String & value)339     inline M3u8Settings& WithPcrPid(const Aws::String& value) { SetPcrPid(value); return *this;}
340 
341     /**
342      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
343      * stream. When no value is given, the encoder will assign the same value as the
344      * Video PID. Can be entered as a decimal or hexadecimal value.
345      */
WithPcrPid(Aws::String && value)346     inline M3u8Settings& WithPcrPid(Aws::String&& value) { SetPcrPid(std::move(value)); return *this;}
347 
348     /**
349      * Packet Identifier (PID) of the Program Clock Reference (PCR) in the transport
350      * stream. When no value is given, the encoder will assign the same value as the
351      * Video PID. Can be entered as a decimal or hexadecimal value.
352      */
WithPcrPid(const char * value)353     inline M3u8Settings& WithPcrPid(const char* value) { SetPcrPid(value); return *this;}
354 
355 
356     /**
357      * The number of milliseconds between instances of this table in the output
358      * transport stream. A value of \"0\" writes out the PMT once per segment file.
359      */
GetPmtInterval()360     inline int GetPmtInterval() const{ return m_pmtInterval; }
361 
362     /**
363      * The number of milliseconds between instances of this table in the output
364      * transport stream. A value of \"0\" writes out the PMT once per segment file.
365      */
PmtIntervalHasBeenSet()366     inline bool PmtIntervalHasBeenSet() const { return m_pmtIntervalHasBeenSet; }
367 
368     /**
369      * The number of milliseconds between instances of this table in the output
370      * transport stream. A value of \"0\" writes out the PMT once per segment file.
371      */
SetPmtInterval(int value)372     inline void SetPmtInterval(int value) { m_pmtIntervalHasBeenSet = true; m_pmtInterval = value; }
373 
374     /**
375      * The number of milliseconds between instances of this table in the output
376      * transport stream. A value of \"0\" writes out the PMT once per segment file.
377      */
WithPmtInterval(int value)378     inline M3u8Settings& WithPmtInterval(int value) { SetPmtInterval(value); return *this;}
379 
380 
381     /**
382      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
383      * Can be entered as a decimal or hexadecimal value.
384      */
GetPmtPid()385     inline const Aws::String& GetPmtPid() const{ return m_pmtPid; }
386 
387     /**
388      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
389      * Can be entered as a decimal or hexadecimal value.
390      */
PmtPidHasBeenSet()391     inline bool PmtPidHasBeenSet() const { return m_pmtPidHasBeenSet; }
392 
393     /**
394      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
395      * Can be entered as a decimal or hexadecimal value.
396      */
SetPmtPid(const Aws::String & value)397     inline void SetPmtPid(const Aws::String& value) { m_pmtPidHasBeenSet = true; m_pmtPid = value; }
398 
399     /**
400      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
401      * Can be entered as a decimal or hexadecimal value.
402      */
SetPmtPid(Aws::String && value)403     inline void SetPmtPid(Aws::String&& value) { m_pmtPidHasBeenSet = true; m_pmtPid = std::move(value); }
404 
405     /**
406      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
407      * Can be entered as a decimal or hexadecimal value.
408      */
SetPmtPid(const char * value)409     inline void SetPmtPid(const char* value) { m_pmtPidHasBeenSet = true; m_pmtPid.assign(value); }
410 
411     /**
412      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
413      * Can be entered as a decimal or hexadecimal value.
414      */
WithPmtPid(const Aws::String & value)415     inline M3u8Settings& WithPmtPid(const Aws::String& value) { SetPmtPid(value); return *this;}
416 
417     /**
418      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
419      * Can be entered as a decimal or hexadecimal value.
420      */
WithPmtPid(Aws::String && value)421     inline M3u8Settings& WithPmtPid(Aws::String&& value) { SetPmtPid(std::move(value)); return *this;}
422 
423     /**
424      * Packet Identifier (PID) for the Program Map Table (PMT) in the transport stream.
425      * Can be entered as a decimal or hexadecimal value.
426      */
WithPmtPid(const char * value)427     inline M3u8Settings& WithPmtPid(const char* value) { SetPmtPid(value); return *this;}
428 
429 
430     /**
431      * The value of the program number field in the Program Map Table.
432      */
GetProgramNum()433     inline int GetProgramNum() const{ return m_programNum; }
434 
435     /**
436      * The value of the program number field in the Program Map Table.
437      */
ProgramNumHasBeenSet()438     inline bool ProgramNumHasBeenSet() const { return m_programNumHasBeenSet; }
439 
440     /**
441      * The value of the program number field in the Program Map Table.
442      */
SetProgramNum(int value)443     inline void SetProgramNum(int value) { m_programNumHasBeenSet = true; m_programNum = value; }
444 
445     /**
446      * The value of the program number field in the Program Map Table.
447      */
WithProgramNum(int value)448     inline M3u8Settings& WithProgramNum(int value) { SetProgramNum(value); return *this;}
449 
450 
451     /**
452      * If set to passthrough, passes any SCTE-35 signals from the input source to this
453      * output.
454      */
GetScte35Behavior()455     inline const M3u8Scte35Behavior& GetScte35Behavior() const{ return m_scte35Behavior; }
456 
457     /**
458      * If set to passthrough, passes any SCTE-35 signals from the input source to this
459      * output.
460      */
Scte35BehaviorHasBeenSet()461     inline bool Scte35BehaviorHasBeenSet() const { return m_scte35BehaviorHasBeenSet; }
462 
463     /**
464      * If set to passthrough, passes any SCTE-35 signals from the input source to this
465      * output.
466      */
SetScte35Behavior(const M3u8Scte35Behavior & value)467     inline void SetScte35Behavior(const M3u8Scte35Behavior& value) { m_scte35BehaviorHasBeenSet = true; m_scte35Behavior = value; }
468 
469     /**
470      * If set to passthrough, passes any SCTE-35 signals from the input source to this
471      * output.
472      */
SetScte35Behavior(M3u8Scte35Behavior && value)473     inline void SetScte35Behavior(M3u8Scte35Behavior&& value) { m_scte35BehaviorHasBeenSet = true; m_scte35Behavior = std::move(value); }
474 
475     /**
476      * If set to passthrough, passes any SCTE-35 signals from the input source to this
477      * output.
478      */
WithScte35Behavior(const M3u8Scte35Behavior & value)479     inline M3u8Settings& WithScte35Behavior(const M3u8Scte35Behavior& value) { SetScte35Behavior(value); return *this;}
480 
481     /**
482      * If set to passthrough, passes any SCTE-35 signals from the input source to this
483      * output.
484      */
WithScte35Behavior(M3u8Scte35Behavior && value)485     inline M3u8Settings& WithScte35Behavior(M3u8Scte35Behavior&& value) { SetScte35Behavior(std::move(value)); return *this;}
486 
487 
488     /**
489      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
490      * entered as a decimal or hexadecimal value.
491      */
GetScte35Pid()492     inline const Aws::String& GetScte35Pid() const{ return m_scte35Pid; }
493 
494     /**
495      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
496      * entered as a decimal or hexadecimal value.
497      */
Scte35PidHasBeenSet()498     inline bool Scte35PidHasBeenSet() const { return m_scte35PidHasBeenSet; }
499 
500     /**
501      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
502      * entered as a decimal or hexadecimal value.
503      */
SetScte35Pid(const Aws::String & value)504     inline void SetScte35Pid(const Aws::String& value) { m_scte35PidHasBeenSet = true; m_scte35Pid = value; }
505 
506     /**
507      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
508      * entered as a decimal or hexadecimal value.
509      */
SetScte35Pid(Aws::String && value)510     inline void SetScte35Pid(Aws::String&& value) { m_scte35PidHasBeenSet = true; m_scte35Pid = std::move(value); }
511 
512     /**
513      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
514      * entered as a decimal or hexadecimal value.
515      */
SetScte35Pid(const char * value)516     inline void SetScte35Pid(const char* value) { m_scte35PidHasBeenSet = true; m_scte35Pid.assign(value); }
517 
518     /**
519      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
520      * entered as a decimal or hexadecimal value.
521      */
WithScte35Pid(const Aws::String & value)522     inline M3u8Settings& WithScte35Pid(const Aws::String& value) { SetScte35Pid(value); return *this;}
523 
524     /**
525      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
526      * entered as a decimal or hexadecimal value.
527      */
WithScte35Pid(Aws::String && value)528     inline M3u8Settings& WithScte35Pid(Aws::String&& value) { SetScte35Pid(std::move(value)); return *this;}
529 
530     /**
531      * Packet Identifier (PID) of the SCTE-35 stream in the transport stream. Can be
532      * entered as a decimal or hexadecimal value.
533      */
WithScte35Pid(const char * value)534     inline M3u8Settings& WithScte35Pid(const char* value) { SetScte35Pid(value); return *this;}
535 
536 
537     /**
538      * When set to passthrough, timed metadata is passed through from input to output.
539      */
GetTimedMetadataBehavior()540     inline const M3u8TimedMetadataBehavior& GetTimedMetadataBehavior() const{ return m_timedMetadataBehavior; }
541 
542     /**
543      * When set to passthrough, timed metadata is passed through from input to output.
544      */
TimedMetadataBehaviorHasBeenSet()545     inline bool TimedMetadataBehaviorHasBeenSet() const { return m_timedMetadataBehaviorHasBeenSet; }
546 
547     /**
548      * When set to passthrough, timed metadata is passed through from input to output.
549      */
SetTimedMetadataBehavior(const M3u8TimedMetadataBehavior & value)550     inline void SetTimedMetadataBehavior(const M3u8TimedMetadataBehavior& value) { m_timedMetadataBehaviorHasBeenSet = true; m_timedMetadataBehavior = value; }
551 
552     /**
553      * When set to passthrough, timed metadata is passed through from input to output.
554      */
SetTimedMetadataBehavior(M3u8TimedMetadataBehavior && value)555     inline void SetTimedMetadataBehavior(M3u8TimedMetadataBehavior&& value) { m_timedMetadataBehaviorHasBeenSet = true; m_timedMetadataBehavior = std::move(value); }
556 
557     /**
558      * When set to passthrough, timed metadata is passed through from input to output.
559      */
WithTimedMetadataBehavior(const M3u8TimedMetadataBehavior & value)560     inline M3u8Settings& WithTimedMetadataBehavior(const M3u8TimedMetadataBehavior& value) { SetTimedMetadataBehavior(value); return *this;}
561 
562     /**
563      * When set to passthrough, timed metadata is passed through from input to output.
564      */
WithTimedMetadataBehavior(M3u8TimedMetadataBehavior && value)565     inline M3u8Settings& WithTimedMetadataBehavior(M3u8TimedMetadataBehavior&& value) { SetTimedMetadataBehavior(std::move(value)); return *this;}
566 
567 
568     /**
569      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
570      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
571      * 0x20)..8182 (or 0x1ff6).
572      */
GetTimedMetadataPid()573     inline const Aws::String& GetTimedMetadataPid() const{ return m_timedMetadataPid; }
574 
575     /**
576      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
577      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
578      * 0x20)..8182 (or 0x1ff6).
579      */
TimedMetadataPidHasBeenSet()580     inline bool TimedMetadataPidHasBeenSet() const { return m_timedMetadataPidHasBeenSet; }
581 
582     /**
583      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
584      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
585      * 0x20)..8182 (or 0x1ff6).
586      */
SetTimedMetadataPid(const Aws::String & value)587     inline void SetTimedMetadataPid(const Aws::String& value) { m_timedMetadataPidHasBeenSet = true; m_timedMetadataPid = value; }
588 
589     /**
590      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
591      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
592      * 0x20)..8182 (or 0x1ff6).
593      */
SetTimedMetadataPid(Aws::String && value)594     inline void SetTimedMetadataPid(Aws::String&& value) { m_timedMetadataPidHasBeenSet = true; m_timedMetadataPid = std::move(value); }
595 
596     /**
597      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
598      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
599      * 0x20)..8182 (or 0x1ff6).
600      */
SetTimedMetadataPid(const char * value)601     inline void SetTimedMetadataPid(const char* value) { m_timedMetadataPidHasBeenSet = true; m_timedMetadataPid.assign(value); }
602 
603     /**
604      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
605      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
606      * 0x20)..8182 (or 0x1ff6).
607      */
WithTimedMetadataPid(const Aws::String & value)608     inline M3u8Settings& WithTimedMetadataPid(const Aws::String& value) { SetTimedMetadataPid(value); return *this;}
609 
610     /**
611      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
612      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
613      * 0x20)..8182 (or 0x1ff6).
614      */
WithTimedMetadataPid(Aws::String && value)615     inline M3u8Settings& WithTimedMetadataPid(Aws::String&& value) { SetTimedMetadataPid(std::move(value)); return *this;}
616 
617     /**
618      * Packet Identifier (PID) of the timed metadata stream in the transport stream.
619      * Can be entered as a decimal or hexadecimal value.  Valid values are 32 (or
620      * 0x20)..8182 (or 0x1ff6).
621      */
WithTimedMetadataPid(const char * value)622     inline M3u8Settings& WithTimedMetadataPid(const char* value) { SetTimedMetadataPid(value); return *this;}
623 
624 
625     /**
626      * The value of the transport stream ID field in the Program Map Table.
627      */
GetTransportStreamId()628     inline int GetTransportStreamId() const{ return m_transportStreamId; }
629 
630     /**
631      * The value of the transport stream ID field in the Program Map Table.
632      */
TransportStreamIdHasBeenSet()633     inline bool TransportStreamIdHasBeenSet() const { return m_transportStreamIdHasBeenSet; }
634 
635     /**
636      * The value of the transport stream ID field in the Program Map Table.
637      */
SetTransportStreamId(int value)638     inline void SetTransportStreamId(int value) { m_transportStreamIdHasBeenSet = true; m_transportStreamId = value; }
639 
640     /**
641      * The value of the transport stream ID field in the Program Map Table.
642      */
WithTransportStreamId(int value)643     inline M3u8Settings& WithTransportStreamId(int value) { SetTransportStreamId(value); return *this;}
644 
645 
646     /**
647      * Packet Identifier (PID) of the elementary video stream in the transport stream.
648      * Can be entered as a decimal or hexadecimal value.
649      */
GetVideoPid()650     inline const Aws::String& GetVideoPid() const{ return m_videoPid; }
651 
652     /**
653      * Packet Identifier (PID) of the elementary video stream in the transport stream.
654      * Can be entered as a decimal or hexadecimal value.
655      */
VideoPidHasBeenSet()656     inline bool VideoPidHasBeenSet() const { return m_videoPidHasBeenSet; }
657 
658     /**
659      * Packet Identifier (PID) of the elementary video stream in the transport stream.
660      * Can be entered as a decimal or hexadecimal value.
661      */
SetVideoPid(const Aws::String & value)662     inline void SetVideoPid(const Aws::String& value) { m_videoPidHasBeenSet = true; m_videoPid = value; }
663 
664     /**
665      * Packet Identifier (PID) of the elementary video stream in the transport stream.
666      * Can be entered as a decimal or hexadecimal value.
667      */
SetVideoPid(Aws::String && value)668     inline void SetVideoPid(Aws::String&& value) { m_videoPidHasBeenSet = true; m_videoPid = std::move(value); }
669 
670     /**
671      * Packet Identifier (PID) of the elementary video stream in the transport stream.
672      * Can be entered as a decimal or hexadecimal value.
673      */
SetVideoPid(const char * value)674     inline void SetVideoPid(const char* value) { m_videoPidHasBeenSet = true; m_videoPid.assign(value); }
675 
676     /**
677      * Packet Identifier (PID) of the elementary video stream in the transport stream.
678      * Can be entered as a decimal or hexadecimal value.
679      */
WithVideoPid(const Aws::String & value)680     inline M3u8Settings& WithVideoPid(const Aws::String& value) { SetVideoPid(value); return *this;}
681 
682     /**
683      * Packet Identifier (PID) of the elementary video stream in the transport stream.
684      * Can be entered as a decimal or hexadecimal value.
685      */
WithVideoPid(Aws::String && value)686     inline M3u8Settings& WithVideoPid(Aws::String&& value) { SetVideoPid(std::move(value)); return *this;}
687 
688     /**
689      * Packet Identifier (PID) of the elementary video stream in the transport stream.
690      * Can be entered as a decimal or hexadecimal value.
691      */
WithVideoPid(const char * value)692     inline M3u8Settings& WithVideoPid(const char* value) { SetVideoPid(value); return *this;}
693 
694   private:
695 
696     int m_audioFramesPerPes;
697     bool m_audioFramesPerPesHasBeenSet;
698 
699     Aws::String m_audioPids;
700     bool m_audioPidsHasBeenSet;
701 
702     Aws::String m_ecmPid;
703     bool m_ecmPidHasBeenSet;
704 
705     M3u8NielsenId3Behavior m_nielsenId3Behavior;
706     bool m_nielsenId3BehaviorHasBeenSet;
707 
708     int m_patInterval;
709     bool m_patIntervalHasBeenSet;
710 
711     M3u8PcrControl m_pcrControl;
712     bool m_pcrControlHasBeenSet;
713 
714     int m_pcrPeriod;
715     bool m_pcrPeriodHasBeenSet;
716 
717     Aws::String m_pcrPid;
718     bool m_pcrPidHasBeenSet;
719 
720     int m_pmtInterval;
721     bool m_pmtIntervalHasBeenSet;
722 
723     Aws::String m_pmtPid;
724     bool m_pmtPidHasBeenSet;
725 
726     int m_programNum;
727     bool m_programNumHasBeenSet;
728 
729     M3u8Scte35Behavior m_scte35Behavior;
730     bool m_scte35BehaviorHasBeenSet;
731 
732     Aws::String m_scte35Pid;
733     bool m_scte35PidHasBeenSet;
734 
735     M3u8TimedMetadataBehavior m_timedMetadataBehavior;
736     bool m_timedMetadataBehaviorHasBeenSet;
737 
738     Aws::String m_timedMetadataPid;
739     bool m_timedMetadataPidHasBeenSet;
740 
741     int m_transportStreamId;
742     bool m_transportStreamIdHasBeenSet;
743 
744     Aws::String m_videoPid;
745     bool m_videoPidHasBeenSet;
746   };
747 
748 } // namespace Model
749 } // namespace MediaLive
750 } // namespace Aws
751