/*
* 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 mediapackage-2017-10-12.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.MediaPackage.Model
{
///
/// An HTTP Live Streaming (HLS) packaging configuration.
///
public partial class HlsPackage
{
private AdMarkers _adMarkers;
private AdsOnDeliveryRestrictions _adsOnDeliveryRestrictions;
private List _adTriggers = new List();
private HlsEncryption _encryption;
private bool? _includeDvbSubtitles;
private bool? _includeIframeOnlyStream;
private PlaylistType _playlistType;
private int? _playlistWindowSeconds;
private int? _programDateTimeIntervalSeconds;
private int? _segmentDurationSeconds;
private StreamSelection _streamSelection;
private bool? _useAudioRenditionGroup;
///
/// Gets and sets the property AdMarkers. This setting controls how ad markers are included
/// in the packaged OriginEndpoint."NONE" will omit all SCTE-35 ad markers from the output."PASSTHROUGH"
/// causes the manifest to contain a copy of the SCTE-35 admarkers (comments) taken directly
/// from the input HTTP Live Streaming (HLS) manifest."SCTE35_ENHANCED" generates ad markers
/// and blackout tags based on SCTE-35messages in the input source."DATERANGE" inserts
/// EXT-X-DATERANGE tags to signal ad and program transition events in HLS and CMAF manifests.
/// For this option, you must set a programDateTimeIntervalSeconds value that is greater
/// than 0.
///
public AdMarkers AdMarkers
{
get { return this._adMarkers; }
set { this._adMarkers = value; }
}
// Check to see if AdMarkers property is set
internal bool IsSetAdMarkers()
{
return this._adMarkers != null;
}
///
/// Gets and sets the property AdsOnDeliveryRestrictions.
///
public AdsOnDeliveryRestrictions AdsOnDeliveryRestrictions
{
get { return this._adsOnDeliveryRestrictions; }
set { this._adsOnDeliveryRestrictions = value; }
}
// Check to see if AdsOnDeliveryRestrictions property is set
internal bool IsSetAdsOnDeliveryRestrictions()
{
return this._adsOnDeliveryRestrictions != null;
}
///
/// Gets and sets the property AdTriggers.
///
public List AdTriggers
{
get { return this._adTriggers; }
set { this._adTriggers = value; }
}
// Check to see if AdTriggers property is set
internal bool IsSetAdTriggers()
{
return this._adTriggers != null && this._adTriggers.Count > 0;
}
///
/// Gets and sets the property Encryption.
///
public HlsEncryption Encryption
{
get { return this._encryption; }
set { this._encryption = value; }
}
// Check to see if Encryption property is set
internal bool IsSetEncryption()
{
return this._encryption != null;
}
///
/// Gets and sets the property IncludeDvbSubtitles. When enabled, MediaPackage passes
/// through digital video broadcasting (DVB) subtitles into the output.
///
public bool IncludeDvbSubtitles
{
get { return this._includeDvbSubtitles.GetValueOrDefault(); }
set { this._includeDvbSubtitles = value; }
}
// Check to see if IncludeDvbSubtitles property is set
internal bool IsSetIncludeDvbSubtitles()
{
return this._includeDvbSubtitles.HasValue;
}
///
/// Gets and sets the property IncludeIframeOnlyStream. When enabled, an I-Frame only
/// stream will be included in the output.
///
public bool IncludeIframeOnlyStream
{
get { return this._includeIframeOnlyStream.GetValueOrDefault(); }
set { this._includeIframeOnlyStream = value; }
}
// Check to see if IncludeIframeOnlyStream property is set
internal bool IsSetIncludeIframeOnlyStream()
{
return this._includeIframeOnlyStream.HasValue;
}
///
/// Gets and sets the property PlaylistType. The HTTP Live Streaming (HLS) playlist type.When
/// either "EVENT" or "VOD" is specified, a corresponding EXT-X-PLAYLIST-TYPEentry will
/// be included in the media playlist.
///
public PlaylistType PlaylistType
{
get { return this._playlistType; }
set { this._playlistType = value; }
}
// Check to see if PlaylistType property is set
internal bool IsSetPlaylistType()
{
return this._playlistType != null;
}
///
/// Gets and sets the property PlaylistWindowSeconds. Time window (in seconds) contained
/// in each parent manifest.
///
public int PlaylistWindowSeconds
{
get { return this._playlistWindowSeconds.GetValueOrDefault(); }
set { this._playlistWindowSeconds = value; }
}
// Check to see if PlaylistWindowSeconds property is set
internal bool IsSetPlaylistWindowSeconds()
{
return this._playlistWindowSeconds.HasValue;
}
///
/// Gets and sets the property ProgramDateTimeIntervalSeconds. The interval (in seconds)
/// between each EXT-X-PROGRAM-DATE-TIME taginserted into manifests. Additionally, when
/// an interval is specifiedID3Timed Metadata messages will be generated every 5 seconds
/// using theingest time of the content.If the interval is not specified, or set to 0,
/// thenno EXT-X-PROGRAM-DATE-TIME tags will be inserted into manifests and noID3Timed
/// Metadata messages will be generated. Note that irrespectiveof this parameter, if any
/// ID3 Timed Metadata is found in HTTP Live Streaming (HLS) input,it will be passed through
/// to HLS output.
///
public int ProgramDateTimeIntervalSeconds
{
get { return this._programDateTimeIntervalSeconds.GetValueOrDefault(); }
set { this._programDateTimeIntervalSeconds = value; }
}
// Check to see if ProgramDateTimeIntervalSeconds property is set
internal bool IsSetProgramDateTimeIntervalSeconds()
{
return this._programDateTimeIntervalSeconds.HasValue;
}
///
/// Gets and sets the property SegmentDurationSeconds. Duration (in seconds) of each fragment.
/// Actual fragments will berounded to the nearest multiple of the source fragment duration.
///
public int SegmentDurationSeconds
{
get { return this._segmentDurationSeconds.GetValueOrDefault(); }
set { this._segmentDurationSeconds = value; }
}
// Check to see if SegmentDurationSeconds property is set
internal bool IsSetSegmentDurationSeconds()
{
return this._segmentDurationSeconds.HasValue;
}
///
/// Gets and sets the property StreamSelection.
///
public StreamSelection StreamSelection
{
get { return this._streamSelection; }
set { this._streamSelection = value; }
}
// Check to see if StreamSelection property is set
internal bool IsSetStreamSelection()
{
return this._streamSelection != null;
}
///
/// Gets and sets the property UseAudioRenditionGroup. When enabled, audio streams will
/// be placed in rendition groups in the output.
///
public bool UseAudioRenditionGroup
{
get { return this._useAudioRenditionGroup.GetValueOrDefault(); }
set { this._useAudioRenditionGroup = value; }
}
// Check to see if UseAudioRenditionGroup property is set
internal bool IsSetUseAudioRenditionGroup()
{
return this._useAudioRenditionGroup.HasValue;
}
}
}