/* * 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 { /// /// MPEG-2 TS container settings. These apply to outputs in a File output group when the /// output's container is MPEG-2 Transport Stream (M2TS). In these assets, data is organized /// by the program map table (PMT). Each transport stream program contains subsets of /// data, including audio, video, and metadata. Each of these subsets of data has a numerical /// label called a packet identifier (PID). Each transport stream program corresponds /// to one MediaConvert output. The PMT lists the types of data in a program along with /// their PID. Downstream systems and players use the program map table to look up the /// PID for each type of data it accesses and then uses the PIDs to locate specific data /// within the asset. /// public partial class M2tsSettings { private M2tsAudioBufferModel _audioBufferModel; private M2tsAudioDuration _audioDuration; private int? _audioFramesPerPes; private List _audioPids = new List(); private int? _bitrate; private M2tsBufferModel _bufferModel; private M2tsDataPtsControl _dataPTSControl; private DvbNitSettings _dvbNitSettings; private DvbSdtSettings _dvbSdtSettings; private List _dvbSubPids = new List(); private DvbTdtSettings _dvbTdtSettings; private int? _dvbTeletextPid; private M2tsEbpAudioInterval _ebpAudioInterval; private M2tsEbpPlacement _ebpPlacement; private M2tsEsRateInPes _esRateInPes; private M2tsForceTsVideoEbpOrder _forceTsVideoEbpOrder; private double? _fragmentTime; private M2tsKlvMetadata _klvMetadata; private int? _maxPcrInterval; private int? _minEbpInterval; private M2tsNielsenId3 _nielsenId3; private double? _nullPacketBitrate; private int? _patInterval; private M2tsPcrControl _pcrControl; private int? _pcrPid; private int? _pmtInterval; private int? _pmtPid; private int? _privateMetadataPid; private int? _programNumber; private M2tsRateMode _rateMode; private M2tsScte35Esam _scte35Esam; private int? _scte35Pid; private M2tsScte35Source _scte35Source; private M2tsSegmentationMarkers _segmentationMarkers; private M2tsSegmentationStyle _segmentationStyle; private double? _segmentationTime; private int? _timedMetadataPid; private int? _transportStreamId; private int? _videoPid; /// /// Gets and sets the property AudioBufferModel. Selects between the DVB and ATSC buffer /// models for Dolby Digital audio. /// public M2tsAudioBufferModel AudioBufferModel { get { return this._audioBufferModel; } set { this._audioBufferModel = value; } } // Check to see if AudioBufferModel property is set internal bool IsSetAudioBufferModel() { return this._audioBufferModel != null; } /// /// 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 M2tsAudioDuration 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. Specify the packet identifiers (PIDs) for any /// elementary audio streams you include in this output. Specify multiple PIDs as a JSON /// array. Default is the range 482-492. /// 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 Bitrate. Specify the output bitrate of the transport stream /// in bits per second. Setting to 0 lets the muxer automatically determine the appropriate /// bitrate. Other common values are 3750000, 7500000, and 15000000. /// [AWSProperty(Min=0, Max=2147483647)] public int Bitrate { get { return this._bitrate.GetValueOrDefault(); } set { this._bitrate = value; } } // Check to see if Bitrate property is set internal bool IsSetBitrate() { return this._bitrate.HasValue; } /// /// Gets and sets the property BufferModel. Controls what buffer model to use for accurate /// interleaving. If set to MULTIPLEX, use multiplex buffer model. If set to NONE, this /// can lead to lower latency, but low-memory devices may not be able to play back the /// stream without interruptions. /// public M2tsBufferModel BufferModel { get { return this._bufferModel; } set { this._bufferModel = value; } } // Check to see if BufferModel property is set internal bool IsSetBufferModel() { return this._bufferModel != null; } /// /// 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 to allow all PTS values. /// public M2tsDataPtsControl 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 DvbNitSettings. Use these settings to insert a DVB Network /// Information Table (NIT) in the transport stream of this output. /// public DvbNitSettings DvbNitSettings { get { return this._dvbNitSettings; } set { this._dvbNitSettings = value; } } // Check to see if DvbNitSettings property is set internal bool IsSetDvbNitSettings() { return this._dvbNitSettings != null; } /// /// Gets and sets the property DvbSdtSettings. Use these settings to insert a DVB Service /// Description Table (SDT) in the transport stream of this output. /// public DvbSdtSettings DvbSdtSettings { get { return this._dvbSdtSettings; } set { this._dvbSdtSettings = value; } } // Check to see if DvbSdtSettings property is set internal bool IsSetDvbSdtSettings() { return this._dvbSdtSettings != null; } /// /// Gets and sets the property DvbSubPids. Specify the packet identifiers (PIDs) for DVB /// subtitle data included in this output. Specify multiple PIDs as a JSON array. Default /// is the range 460-479. /// public List DvbSubPids { get { return this._dvbSubPids; } set { this._dvbSubPids = value; } } // Check to see if DvbSubPids property is set internal bool IsSetDvbSubPids() { return this._dvbSubPids != null && this._dvbSubPids.Count > 0; } /// /// Gets and sets the property DvbTdtSettings. Use these settings to insert a DVB Time /// and Date Table (TDT) in the transport stream of this output. /// public DvbTdtSettings DvbTdtSettings { get { return this._dvbTdtSettings; } set { this._dvbTdtSettings = value; } } // Check to see if DvbTdtSettings property is set internal bool IsSetDvbTdtSettings() { return this._dvbTdtSettings != null; } /// /// Gets and sets the property DvbTeletextPid. Specify the packet identifier (PID) for /// DVB teletext data you include in this output. Default is 499. /// [AWSProperty(Min=32, Max=8182)] public int DvbTeletextPid { get { return this._dvbTeletextPid.GetValueOrDefault(); } set { this._dvbTeletextPid = value; } } // Check to see if DvbTeletextPid property is set internal bool IsSetDvbTeletextPid() { return this._dvbTeletextPid.HasValue; } /// /// Gets and sets the property EbpAudioInterval. When set to VIDEO_AND_FIXED_INTERVALS, /// audio EBP markers will be added to partitions 3 and 4. The interval between these /// additional markers will be fixed, and will be slightly shorter than the video EBP /// marker interval. When set to VIDEO_INTERVAL, these additional markers will not be /// inserted. Only applicable when EBP segmentation markers are is selected (segmentationMarkers /// is EBP or EBP_LEGACY). /// public M2tsEbpAudioInterval EbpAudioInterval { get { return this._ebpAudioInterval; } set { this._ebpAudioInterval = value; } } // Check to see if EbpAudioInterval property is set internal bool IsSetEbpAudioInterval() { return this._ebpAudioInterval != null; } /// /// Gets and sets the property EbpPlacement. Selects which PIDs to place EBP markers on. /// They can either be placed only on the video PID, or on both the video PID and all /// audio PIDs. Only applicable when EBP segmentation markers are is selected (segmentationMarkers /// is EBP or EBP_LEGACY). /// public M2tsEbpPlacement EbpPlacement { get { return this._ebpPlacement; } set { this._ebpPlacement = value; } } // Check to see if EbpPlacement property is set internal bool IsSetEbpPlacement() { return this._ebpPlacement != null; } /// /// Gets and sets the property EsRateInPes. Controls whether to include the ES Rate field /// in the PES header. /// public M2tsEsRateInPes EsRateInPes { get { return this._esRateInPes; } set { this._esRateInPes = value; } } // Check to see if EsRateInPes property is set internal bool IsSetEsRateInPes() { return this._esRateInPes != null; } /// /// Gets and sets the property ForceTsVideoEbpOrder. Keep the default value unless you /// know that your audio EBP markers are incorrectly appearing before your video EBP markers. /// To correct this problem, set this value to Force. /// public M2tsForceTsVideoEbpOrder ForceTsVideoEbpOrder { get { return this._forceTsVideoEbpOrder; } set { this._forceTsVideoEbpOrder = value; } } // Check to see if ForceTsVideoEbpOrder property is set internal bool IsSetForceTsVideoEbpOrder() { return this._forceTsVideoEbpOrder != null; } /// /// Gets and sets the property FragmentTime. The length, in seconds, of each fragment. /// Only used with EBP markers. /// public double FragmentTime { get { return this._fragmentTime.GetValueOrDefault(); } set { this._fragmentTime = value; } } // Check to see if FragmentTime property is set internal bool IsSetFragmentTime() { return this._fragmentTime.HasValue; } /// /// Gets and sets the property KlvMetadata. To include key-length-value metadata in this /// output: Set KLV metadata insertion to Passthrough. MediaConvert reads KLV metadata /// present in your input and passes it through to the output transport stream. To exclude /// this KLV metadata: Set KLV metadata insertion to None or leave blank. /// public M2tsKlvMetadata KlvMetadata { get { return this._klvMetadata; } set { this._klvMetadata = value; } } // Check to see if KlvMetadata property is set internal bool IsSetKlvMetadata() { return this._klvMetadata != 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 MinEbpInterval. When set, enforces that Encoder Boundary /// Points do not come within the specified time interval of each other by looking ahead /// at input video. If another EBP is going to come in within the specified time interval, /// the current EBP is not emitted, and the segment is "stretched" to the next marker. /// The lookahead value does not add latency to the system. The Live Event must be configured /// elsewhere to create sufficient latency to make the lookahead accurate. /// [AWSProperty(Min=0, Max=10000)] public int MinEbpInterval { get { return this._minEbpInterval.GetValueOrDefault(); } set { this._minEbpInterval = value; } } // Check to see if MinEbpInterval property is set internal bool IsSetMinEbpInterval() { return this._minEbpInterval.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 M2tsNielsenId3 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 NullPacketBitrate. Value in bits per second of extra null /// packets to insert into the transport stream. This can be used if a downstream encryption /// system requires periodic null packets. /// public double NullPacketBitrate { get { return this._nullPacketBitrate.GetValueOrDefault(); } set { this._nullPacketBitrate = value; } } // Check to see if NullPacketBitrate property is set internal bool IsSetNullPacketBitrate() { return this._nullPacketBitrate.HasValue; } /// /// 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 is effective only when the PCR PID is the same as the video or audio elementary /// stream. /// public M2tsPcrControl 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. Specify the packet identifier (PID) for the program /// clock reference (PCR) in this output. If you do not specify a value, the service will /// use the value for 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. Specify the number of milliseconds between /// instances of the program map table (PMT) 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. Specify the packet identifier (PID) for the program /// map table (PMT) itself. Default is 480. /// [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. Specify the packet identifier (PID) /// of the private metadata stream. Default is 503. /// [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. Use Program number to specify the program /// number used in the program map table (PMT) for this output. Default is 1. Program /// numbers and program map tables are parts of MPEG-2 transport stream containers, used /// for organizing data. /// [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 RateMode. When set to CBR, inserts null packets into transport /// stream to fill specified bitrate. When set to VBR, the bitrate setting acts as the /// maximum bitrate, but the output will not be padded up to that bitrate. /// public M2tsRateMode RateMode { get { return this._rateMode; } set { this._rateMode = value; } } // Check to see if RateMode property is set internal bool IsSetRateMode() { return this._rateMode != null; } /// /// Gets and sets the property Scte35Esam. Include this in your job settings to put SCTE-35 /// markers in your HLS and transport stream outputs at the insertion points that you /// specify in an ESAM XML document. Provide the document in the setting SCC XML. /// public M2tsScte35Esam Scte35Esam { get { return this._scte35Esam; } set { this._scte35Esam = value; } } // Check to see if Scte35Esam property is set internal bool IsSetScte35Esam() { return this._scte35Esam != null; } /// /// Gets and sets the property Scte35Pid. Specify the 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. Also provide the ESAM XML as a string /// in the setting Signal processing notification XML. Also enable ESAM SCTE-35 (include /// the property scte35Esam). /// public M2tsScte35Source 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 SegmentationMarkers. Inserts segmentation markers at each /// segmentation_time period. rai_segstart sets the Random Access Indicator bit in the /// adaptation field. rai_adapt sets the RAI bit and adds the current timecode in the /// private data bytes. psi_segstart inserts PAT and PMT tables at the start of segments. /// ebp adds Encoder Boundary Point information to the adaptation field as per OpenCable /// specification OC-SP-EBP-I01-130118. ebp_legacy adds Encoder Boundary Point information /// to the adaptation field using a legacy proprietary format. /// public M2tsSegmentationMarkers SegmentationMarkers { get { return this._segmentationMarkers; } set { this._segmentationMarkers = value; } } // Check to see if SegmentationMarkers property is set internal bool IsSetSegmentationMarkers() { return this._segmentationMarkers != null; } /// /// Gets and sets the property SegmentationStyle. The segmentation style parameter controls /// how segmentation markers are inserted into the transport stream. With avails, it is /// possible that segments may be truncated, which can influence where future segmentation /// markers are inserted. When a segmentation style of "reset_cadence" is selected and /// a segment is truncated due to an avail, we will reset the segmentation cadence. This /// means the subsequent segment will have a duration of of $segmentation_time seconds. /// When a segmentation style of "maintain_cadence" is selected and a segment is truncated /// due to an avail, we will not reset the segmentation cadence. This means the subsequent /// segment will likely be truncated as well. However, all segments after that will have /// a duration of $segmentation_time seconds. Note that EBP lookahead is a slight exception /// to this rule. /// public M2tsSegmentationStyle SegmentationStyle { get { return this._segmentationStyle; } set { this._segmentationStyle = value; } } // Check to see if SegmentationStyle property is set internal bool IsSetSegmentationStyle() { return this._segmentationStyle != null; } /// /// Gets and sets the property SegmentationTime. Specify the length, in seconds, of each /// segment. Required unless markers is set to _none_. /// public double SegmentationTime { get { return this._segmentationTime.GetValueOrDefault(); } set { this._segmentationTime = value; } } // Check to see if SegmentationTime property is set internal bool IsSetSegmentationTime() { return this._segmentationTime.HasValue; } /// /// 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. Specify the ID for the transport stream /// itself in the program map table for this output. Transport stream IDs and program /// map tables are parts of MPEG-2 transport stream containers, used for organizing data. /// [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. Specify the 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; } } }