/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the mediaconvert-2017-08-29.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.MediaConvert.Model
{
///
/// These settings relate to the MPEG-2 transport stream (MPEG2-TS) container for the
/// MPEG2-TS segments in your HLS outputs.
///
public partial class M3u8Settings
{
private M3u8AudioDuration _audioDuration;
private int? _audioFramesPerPes;
private List _audioPids = new List();
private M3u8DataPtsControl _dataPTSControl;
private int? _maxPcrInterval;
private M3u8NielsenId3 _nielsenId3;
private int? _patInterval;
private M3u8PcrControl _pcrControl;
private int? _pcrPid;
private int? _pmtInterval;
private int? _pmtPid;
private int? _privateMetadataPid;
private int? _programNumber;
private int? _scte35Pid;
private M3u8Scte35Source _scte35Source;
private TimedMetadata _timedMetadata;
private int? _timedMetadataPid;
private int? _transportStreamId;
private int? _videoPid;
///
/// Gets and sets the property AudioDuration. Specify this setting only when your output
/// will be consumed by a downstream repackaging workflow that is sensitive to very small
/// duration differences between video and audio. For this situation, choose Match video
/// duration. In all other cases, keep the default value, Default codec duration. When
/// you choose Match video duration, MediaConvert pads the output audio streams with silence
/// or trims them to ensure that the total duration of each audio stream is at least as
/// long as the total duration of the video stream. After padding or trimming, the audio
/// stream duration is no more than one frame longer than the video stream. MediaConvert
/// applies audio padding or trimming only to the end of the last segment of the output.
/// For unsegmented outputs, MediaConvert adds padding only to the end of the file. When
/// you keep the default value, any minor discrepancies between audio and video duration
/// will depend on your output audio codec.
///
public M3u8AudioDuration AudioDuration
{
get { return this._audioDuration; }
set { this._audioDuration = value; }
}
// Check to see if AudioDuration property is set
internal bool IsSetAudioDuration()
{
return this._audioDuration != null;
}
///
/// Gets and sets the property AudioFramesPerPes. The number of audio frames to insert
/// for each PES packet.
///
[AWSProperty(Min=0, Max=2147483647)]
public int AudioFramesPerPes
{
get { return this._audioFramesPerPes.GetValueOrDefault(); }
set { this._audioFramesPerPes = value; }
}
// Check to see if AudioFramesPerPes property is set
internal bool IsSetAudioFramesPerPes()
{
return this._audioFramesPerPes.HasValue;
}
///
/// Gets and sets the property AudioPids. Packet Identifier (PID) of the elementary audio
/// stream(s) in the transport stream. Multiple values are accepted, and can be entered
/// in ranges and/or by comma separation.
///
public List AudioPids
{
get { return this._audioPids; }
set { this._audioPids = value; }
}
// Check to see if AudioPids property is set
internal bool IsSetAudioPids()
{
return this._audioPids != null && this._audioPids.Count > 0;
}
///
/// Gets and sets the property DataPTSControl. If you select ALIGN_TO_VIDEO, MediaConvert
/// writes captions and data packets with Presentation Timestamp (PTS) values greater
/// than or equal to the first video packet PTS (MediaConvert drops captions and data
/// packets with lesser PTS values). Keep the default value AUTO to allow all PTS values.
///
public M3u8DataPtsControl DataPTSControl
{
get { return this._dataPTSControl; }
set { this._dataPTSControl = value; }
}
// Check to see if DataPTSControl property is set
internal bool IsSetDataPTSControl()
{
return this._dataPTSControl != null;
}
///
/// Gets and sets the property MaxPcrInterval. Specify the maximum time, in milliseconds,
/// between Program Clock References (PCRs) inserted into the transport stream.
///
[AWSProperty(Min=0, Max=500)]
public int MaxPcrInterval
{
get { return this._maxPcrInterval.GetValueOrDefault(); }
set { this._maxPcrInterval = value; }
}
// Check to see if MaxPcrInterval property is set
internal bool IsSetMaxPcrInterval()
{
return this._maxPcrInterval.HasValue;
}
///
/// Gets and sets the property NielsenId3. If INSERT, Nielsen inaudible tones for media
/// tracking will be detected in the input audio and an equivalent ID3 tag will be inserted
/// in the output.
///
public M3u8NielsenId3 NielsenId3
{
get { return this._nielsenId3; }
set { this._nielsenId3 = value; }
}
// Check to see if NielsenId3 property is set
internal bool IsSetNielsenId3()
{
return this._nielsenId3 != null;
}
///
/// Gets and sets the property PatInterval. The number of milliseconds between instances
/// of this table in the output transport stream.
///
[AWSProperty(Min=0, Max=1000)]
public int PatInterval
{
get { return this._patInterval.GetValueOrDefault(); }
set { this._patInterval = value; }
}
// Check to see if PatInterval property is set
internal bool IsSetPatInterval()
{
return this._patInterval.HasValue;
}
///
/// Gets and sets the property PcrControl. When set to PCR_EVERY_PES_PACKET a Program
/// Clock Reference value is inserted for every Packetized Elementary Stream (PES) header.
/// This parameter is effective only when the PCR PID is the same as the video or audio
/// elementary stream.
///
public M3u8PcrControl PcrControl
{
get { return this._pcrControl; }
set { this._pcrControl = value; }
}
// Check to see if PcrControl property is set
internal bool IsSetPcrControl()
{
return this._pcrControl != null;
}
///
/// Gets and sets the property PcrPid. Packet Identifier (PID) of the Program Clock Reference
/// (PCR) in the transport stream. When no value is given, the encoder will assign the
/// same value as the Video PID.
///
[AWSProperty(Min=32, Max=8182)]
public int PcrPid
{
get { return this._pcrPid.GetValueOrDefault(); }
set { this._pcrPid = value; }
}
// Check to see if PcrPid property is set
internal bool IsSetPcrPid()
{
return this._pcrPid.HasValue;
}
///
/// Gets and sets the property PmtInterval. The number of milliseconds between instances
/// of this table in the output transport stream.
///
[AWSProperty(Min=0, Max=1000)]
public int PmtInterval
{
get { return this._pmtInterval.GetValueOrDefault(); }
set { this._pmtInterval = value; }
}
// Check to see if PmtInterval property is set
internal bool IsSetPmtInterval()
{
return this._pmtInterval.HasValue;
}
///
/// Gets and sets the property PmtPid. Packet Identifier (PID) for the Program Map Table
/// (PMT) in the transport stream.
///
[AWSProperty(Min=32, Max=8182)]
public int PmtPid
{
get { return this._pmtPid.GetValueOrDefault(); }
set { this._pmtPid = value; }
}
// Check to see if PmtPid property is set
internal bool IsSetPmtPid()
{
return this._pmtPid.HasValue;
}
///
/// Gets and sets the property PrivateMetadataPid. Packet Identifier (PID) of the private
/// metadata stream in the transport stream.
///
[AWSProperty(Min=32, Max=8182)]
public int PrivateMetadataPid
{
get { return this._privateMetadataPid.GetValueOrDefault(); }
set { this._privateMetadataPid = value; }
}
// Check to see if PrivateMetadataPid property is set
internal bool IsSetPrivateMetadataPid()
{
return this._privateMetadataPid.HasValue;
}
///
/// Gets and sets the property ProgramNumber. The value of the program number field in
/// the Program Map Table.
///
[AWSProperty(Min=0, Max=65535)]
public int ProgramNumber
{
get { return this._programNumber.GetValueOrDefault(); }
set { this._programNumber = value; }
}
// Check to see if ProgramNumber property is set
internal bool IsSetProgramNumber()
{
return this._programNumber.HasValue;
}
///
/// Gets and sets the property Scte35Pid. Packet Identifier (PID) of the SCTE-35 stream
/// in the transport stream.
///
[AWSProperty(Min=32, Max=8182)]
public int Scte35Pid
{
get { return this._scte35Pid.GetValueOrDefault(); }
set { this._scte35Pid = value; }
}
// Check to see if Scte35Pid property is set
internal bool IsSetScte35Pid()
{
return this._scte35Pid.HasValue;
}
///
/// Gets and sets the property Scte35Source. For SCTE-35 markers from your input-- Choose
/// Passthrough if you want SCTE-35 markers that appear in your input to also appear in
/// this output. Choose None if you don't want SCTE-35 markers in this output. For SCTE-35
/// markers from an ESAM XML document-- Choose None if you don't want manifest conditioning.
/// Choose Passthrough and choose Ad markers if you do want manifest conditioning. In
/// both cases, also provide the ESAM XML as a string in the setting Signal processing
/// notification XML.
///
public M3u8Scte35Source Scte35Source
{
get { return this._scte35Source; }
set { this._scte35Source = value; }
}
// Check to see if Scte35Source property is set
internal bool IsSetScte35Source()
{
return this._scte35Source != null;
}
///
/// Gets and sets the property TimedMetadata. Set ID3 metadata to Passthrough to include
/// ID3 metadata in this output. This includes ID3 metadata from the following features:
/// ID3 timestamp period, and Custom ID3 metadata inserter. To exclude this ID3 metadata
/// in this output: set ID3 metadata to None or leave blank.
///
public TimedMetadata TimedMetadata
{
get { return this._timedMetadata; }
set { this._timedMetadata = value; }
}
// Check to see if TimedMetadata property is set
internal bool IsSetTimedMetadata()
{
return this._timedMetadata != null;
}
///
/// Gets and sets the property TimedMetadataPid. Packet Identifier (PID) of the ID3 metadata
/// stream in the transport stream.
///
[AWSProperty(Min=32, Max=8182)]
public int TimedMetadataPid
{
get { return this._timedMetadataPid.GetValueOrDefault(); }
set { this._timedMetadataPid = value; }
}
// Check to see if TimedMetadataPid property is set
internal bool IsSetTimedMetadataPid()
{
return this._timedMetadataPid.HasValue;
}
///
/// Gets and sets the property TransportStreamId. The value of the transport stream ID
/// field in the Program Map Table.
///
[AWSProperty(Min=0, Max=65535)]
public int TransportStreamId
{
get { return this._transportStreamId.GetValueOrDefault(); }
set { this._transportStreamId = value; }
}
// Check to see if TransportStreamId property is set
internal bool IsSetTransportStreamId()
{
return this._transportStreamId.HasValue;
}
///
/// Gets and sets the property VideoPid. Packet Identifier (PID) of the elementary video
/// stream in the transport stream.
///
[AWSProperty(Min=32, Max=8182)]
public int VideoPid
{
get { return this._videoPid.GetValueOrDefault(); }
set { this._videoPid = value; }
}
// Check to see if VideoPid property is set
internal bool IsSetVideoPid()
{
return this._videoPid.HasValue;
}
}
}