/* * 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 fragmented MP4 container for the segments in your CMAF /// outputs. /// public partial class CmfcSettings { private CmfcAudioDuration _audioDuration; private string _audioGroupId; private string _audioRenditionSets; private CmfcAudioTrackType _audioTrackType; private CmfcDescriptiveVideoServiceFlag _descriptiveVideoServiceFlag; private CmfcIFrameOnlyManifest _iFrameOnlyManifest; private CmfcKlvMetadata _klvMetadata; private CmfcManifestMetadataSignaling _manifestMetadataSignaling; private CmfcScte35Esam _scte35Esam; private CmfcScte35Source _scte35Source; private CmfcTimedMetadata _timedMetadata; private CmfcTimedMetadataBoxVersion _timedMetadataBoxVersion; private string _timedMetadataSchemeIdUri; private string _timedMetadataValue; /// /// 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 CmfcAudioDuration 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 AudioGroupId. Specify the audio rendition group for this /// audio rendition. Specify up to one value for each audio output in your output group. /// This value appears in your HLS parent manifest in the EXT-X-MEDIA tag of TYPE=AUDIO, /// as the value for the GROUP-ID attribute. For example, if you specify "audio_aac_1" /// for Audio group ID, it appears in your manifest like this: #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio_aac_1". /// Related setting: To associate the rendition group that this audio track belongs to /// with a video rendition, include the same value that you provide here for that video /// output's setting Audio rendition sets. /// public string AudioGroupId { get { return this._audioGroupId; } set { this._audioGroupId = value; } } // Check to see if AudioGroupId property is set internal bool IsSetAudioGroupId() { return this._audioGroupId != null; } /// /// Gets and sets the property AudioRenditionSets. List the audio rendition groups that /// you want included with this video rendition. Use a comma-separated list. For example, /// say you want to include the audio rendition groups that have the audio group IDs "audio_aac_1" /// and "audio_dolby". Then you would specify this value: "audio_aac_1,audio_dolby". Related /// setting: The rendition groups that you include in your comma-separated list should /// all match values that you specify in the setting Audio group ID for audio renditions /// in the same output group as this video rendition. Default behavior: If you don't specify /// anything here and for Audio group ID, MediaConvert puts each audio variant in its /// own audio rendition group and associates it with every video variant. Each value in /// your list appears in your HLS parent manifest in the EXT-X-STREAM-INF tag as the value /// for the AUDIO attribute. To continue the previous example, say that the file name /// for the child manifest for your video rendition is "amazing_video_1.m3u8". Then, in /// your parent manifest, each value will appear on separate lines, like this: #EXT-X-STREAM-INF:AUDIO="audio_aac_1"... /// amazing_video_1.m3u8 #EXT-X-STREAM-INF:AUDIO="audio_dolby"... amazing_video_1.m3u8 /// public string AudioRenditionSets { get { return this._audioRenditionSets; } set { this._audioRenditionSets = value; } } // Check to see if AudioRenditionSets property is set internal bool IsSetAudioRenditionSets() { return this._audioRenditionSets != null; } /// /// Gets and sets the property AudioTrackType. Use this setting to control the values /// that MediaConvert puts in your HLS parent playlist to control how the client player /// selects which audio track to play. The other options for this setting determine the /// values that MediaConvert writes for the DEFAULT and AUTOSELECT attributes of the EXT-X-MEDIA /// entry for the audio variant. For more information about these attributes, see the /// Apple documentation article https://developer.apple.com/documentation/http_live_streaming/example_playlists_for_http_live_streaming/adding_alternate_media_to_a_playlist. /// Choose Alternate audio, auto select, default to set DEFAULT=YES and AUTOSELECT=YES. /// Choose this value for only one variant in your output group. Choose Alternate audio, /// auto select, not default to set DEFAULT=NO and AUTOSELECT=YES. Choose Alternate Audio, /// Not Auto Select to set DEFAULT=NO and AUTOSELECT=NO. When you don't specify a value /// for this setting, MediaConvert defaults to Alternate audio, auto select, default. /// When there is more than one variant in your output group, you must explicitly choose /// a value for this setting. /// public CmfcAudioTrackType AudioTrackType { get { return this._audioTrackType; } set { this._audioTrackType = value; } } // Check to see if AudioTrackType property is set internal bool IsSetAudioTrackType() { return this._audioTrackType != null; } /// /// Gets and sets the property DescriptiveVideoServiceFlag. Specify whether to flag this /// audio track as descriptive video service (DVS) in your HLS parent manifest. When you /// choose Flag, MediaConvert includes the parameter CHARACTERISTICS="public.accessibility.describes-video" /// in the EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag, /// MediaConvert leaves this parameter out. The DVS flag can help with accessibility on /// Apple devices. For more information, see the Apple documentation. /// public CmfcDescriptiveVideoServiceFlag DescriptiveVideoServiceFlag { get { return this._descriptiveVideoServiceFlag; } set { this._descriptiveVideoServiceFlag = value; } } // Check to see if DescriptiveVideoServiceFlag property is set internal bool IsSetDescriptiveVideoServiceFlag() { return this._descriptiveVideoServiceFlag != null; } /// /// Gets and sets the property IFrameOnlyManifest. Choose Include to have MediaConvert /// generate an HLS child manifest that lists only the I-frames for this rendition, in /// addition to your regular manifest for this rendition. You might use this manifest /// as part of a workflow that creates preview functions for your video. MediaConvert /// adds both the I-frame only child manifest and the regular child manifest to the parent /// manifest. When you don't need the I-frame only child manifest, keep the default value /// Exclude. /// public CmfcIFrameOnlyManifest IFrameOnlyManifest { get { return this._iFrameOnlyManifest; } set { this._iFrameOnlyManifest = value; } } // Check to see if IFrameOnlyManifest property is set internal bool IsSetIFrameOnlyManifest() { return this._iFrameOnlyManifest != null; } /// /// 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 writes each instance to a separate event message box in /// the output, according to MISB ST1910.1. To exclude this KLV metadata: Set KLV metadata /// insertion to None or leave blank. /// public CmfcKlvMetadata 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 ManifestMetadataSignaling. To add an InbandEventStream /// element in your output MPD manifest for each type of event message, set Manifest metadata /// signaling to Enabled. For ID3 event messages, the InbandEventStream element schemeIdUri /// will be same value that you specify for ID3 metadata scheme ID URI. For SCTE35 event /// messages, the InbandEventStream element schemeIdUri will be "urn:scte:scte35:2013:bin". /// To leave these elements out of your output MPD manifest, set Manifest metadata signaling /// to Disabled. To enable Manifest metadata signaling, you must also set SCTE-35 source /// to Passthrough, ESAM SCTE-35 to insert, or ID3 metadata to Passthrough. /// public CmfcManifestMetadataSignaling ManifestMetadataSignaling { get { return this._manifestMetadataSignaling; } set { this._manifestMetadataSignaling = value; } } // Check to see if ManifestMetadataSignaling property is set internal bool IsSetManifestMetadataSignaling() { return this._manifestMetadataSignaling != null; } /// /// Gets and sets the property Scte35Esam. Use this setting only when you specify SCTE-35 /// markers from ESAM. Choose INSERT to put SCTE-35 markers in this output at the insertion /// points that you specify in an ESAM XML document. Provide the document in the setting /// SCC XML. /// public CmfcScte35Esam 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 Scte35Source. Ignore this setting unless you have SCTE-35 /// markers in your input video file. 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 /// those SCTE-35 markers in this output. /// public CmfcScte35Source 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. To include ID3 metadata in this output: /// Set ID3 metadata to Passthrough. Specify this ID3 metadata in Custom ID3 metadata /// inserter. MediaConvert writes each instance of ID3 metadata in a separate Event Message /// (eMSG) box. To exclude this ID3 metadata: Set ID3 metadata to None or leave blank. /// public CmfcTimedMetadata 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 TimedMetadataBoxVersion. Specify the event message box /// (eMSG) version for ID3 timed metadata in your output.For more information, see ISO/IEC /// 23009-1:2022 section 5.10.3.3.3 Syntax.Leave blank to use the default value Version /// 0.When you specify Version 1, you must also set ID3 metadata to Passthrough. /// public CmfcTimedMetadataBoxVersion TimedMetadataBoxVersion { get { return this._timedMetadataBoxVersion; } set { this._timedMetadataBoxVersion = value; } } // Check to see if TimedMetadataBoxVersion property is set internal bool IsSetTimedMetadataBoxVersion() { return this._timedMetadataBoxVersion != null; } /// /// Gets and sets the property TimedMetadataSchemeIdUri. Specify the event message box /// (eMSG) scheme ID URI for ID3 timed metadata in your output. For more information, /// see ISO/IEC 23009-1:2022 section 5.10.3.3.4 Semantics. Leave blank to use the default /// value: https://aomedia.org/emsg/ID3 When you specify a value for ID3 metadata scheme /// ID URI, you must also set ID3 metadata to Passthrough. /// [AWSProperty(Max=1000)] public string TimedMetadataSchemeIdUri { get { return this._timedMetadataSchemeIdUri; } set { this._timedMetadataSchemeIdUri = value; } } // Check to see if TimedMetadataSchemeIdUri property is set internal bool IsSetTimedMetadataSchemeIdUri() { return this._timedMetadataSchemeIdUri != null; } /// /// Gets and sets the property TimedMetadataValue. Specify the event message box (eMSG) /// value for ID3 timed metadata in your output. For more information, see ISO/IEC 23009-1:2022 /// section 5.10.3.3.4 Semantics. When you specify a value for ID3 Metadata Value, you /// must also set ID3 metadata to Passthrough. /// [AWSProperty(Max=1000)] public string TimedMetadataValue { get { return this._timedMetadataValue; } set { this._timedMetadataValue = value; } } // Check to see if TimedMetadataValue property is set internal bool IsSetTimedMetadataValue() { return this._timedMetadataValue != null; } } }