/*
* 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
{
///
/// Use Audio selectors to specify a track or set of tracks from the input that you will
/// use in your outputs. You can use multiple Audio selectors per input.
///
public partial class AudioSelector
{
private AudioDurationCorrection _audioDurationCorrection;
private string _customLanguageCode;
private AudioDefaultSelection _defaultSelection;
private string _externalAudioFileInput;
private HlsRenditionGroupSettings _hlsRenditionGroupSettings;
private LanguageCode _languageCode;
private int? _offset;
private List _pids = new List();
private int? _programSelection;
private RemixSettings _remixSettings;
private AudioSelectorType _selectorType;
private List _tracks = new List();
///
/// Gets and sets the property AudioDurationCorrection. Apply audio timing corrections
/// to help synchronize audio and video in your output. To apply timing corrections, your
/// input must meet the following requirements: * Container: MP4, or MOV, with an accurate
/// time-to-sample (STTS) table. * Audio track: AAC. Choose from the following audio timing
/// correction settings: * Disabled (Default): Apply no correction. * Auto: Recommended
/// for most inputs. MediaConvert analyzes the audio timing in your input and determines
/// which correction setting to use, if needed. * Track: Adjust the duration of each audio
/// frame by a constant amount to align the audio track length with STTS duration. Track-level
/// correction does not affect pitch, and is recommended for tonal audio content such
/// as music. * Frame: Adjust the duration of each audio frame by a variable amount to
/// align audio frames with STTS timestamps. No corrections are made to already-aligned
/// frames. Frame-level correction may affect the pitch of corrected frames, and is recommended
/// for atonal audio content such as speech or percussion.
///
public AudioDurationCorrection AudioDurationCorrection
{
get { return this._audioDurationCorrection; }
set { this._audioDurationCorrection = value; }
}
// Check to see if AudioDurationCorrection property is set
internal bool IsSetAudioDurationCorrection()
{
return this._audioDurationCorrection != null;
}
///
/// Gets and sets the property CustomLanguageCode. Selects a specific language code from
/// within an audio source, using the ISO 639-2 or ISO 639-3 three-letter language code
///
[AWSProperty(Min=3, Max=3)]
public string CustomLanguageCode
{
get { return this._customLanguageCode; }
set { this._customLanguageCode = value; }
}
// Check to see if CustomLanguageCode property is set
internal bool IsSetCustomLanguageCode()
{
return this._customLanguageCode != null;
}
///
/// Gets and sets the property DefaultSelection. Enable this setting on one audio selector
/// to set it as the default for the job. The service uses this default for outputs where
/// it can't find the specified input audio. If you don't set a default, those outputs
/// have no audio.
///
public AudioDefaultSelection DefaultSelection
{
get { return this._defaultSelection; }
set { this._defaultSelection = value; }
}
// Check to see if DefaultSelection property is set
internal bool IsSetDefaultSelection()
{
return this._defaultSelection != null;
}
///
/// Gets and sets the property ExternalAudioFileInput. Specifies audio data from an external
/// file source.
///
public string ExternalAudioFileInput
{
get { return this._externalAudioFileInput; }
set { this._externalAudioFileInput = value; }
}
// Check to see if ExternalAudioFileInput property is set
internal bool IsSetExternalAudioFileInput()
{
return this._externalAudioFileInput != null;
}
///
/// Gets and sets the property HlsRenditionGroupSettings. Settings specific to audio sources
/// in an HLS alternate rendition group. Specify the properties (renditionGroupId, renditionName
/// or renditionLanguageCode) to identify the unique audio track among the alternative
/// rendition groups present in the HLS manifest. If no unique track is found, or multiple
/// tracks match the properties provided, the job fails. If no properties in hlsRenditionGroupSettings
/// are specified, the default audio track within the video segment is chosen. If there
/// is no audio within video segment, the alternative audio with DEFAULT=YES is chosen
/// instead.
///
public HlsRenditionGroupSettings HlsRenditionGroupSettings
{
get { return this._hlsRenditionGroupSettings; }
set { this._hlsRenditionGroupSettings = value; }
}
// Check to see if HlsRenditionGroupSettings property is set
internal bool IsSetHlsRenditionGroupSettings()
{
return this._hlsRenditionGroupSettings != null;
}
///
/// Gets and sets the property LanguageCode. Selects a specific language code from within
/// an audio source.
///
public LanguageCode LanguageCode
{
get { return this._languageCode; }
set { this._languageCode = value; }
}
// Check to see if LanguageCode property is set
internal bool IsSetLanguageCode()
{
return this._languageCode != null;
}
///
/// Gets and sets the property Offset. Specifies a time delta in milliseconds to offset
/// the audio from the input video.
///
[AWSProperty(Min=-2147483648, Max=2147483647)]
public int Offset
{
get { return this._offset.GetValueOrDefault(); }
set { this._offset = value; }
}
// Check to see if Offset property is set
internal bool IsSetOffset()
{
return this._offset.HasValue;
}
///
/// Gets and sets the property Pids. Selects a specific PID from within an audio source
/// (e.g. 257 selects PID 0x101).
///
public List Pids
{
get { return this._pids; }
set { this._pids = value; }
}
// Check to see if Pids property is set
internal bool IsSetPids()
{
return this._pids != null && this._pids.Count > 0;
}
///
/// Gets and sets the property ProgramSelection. Use this setting for input streams that
/// contain Dolby E, to have the service extract specific program data from the track.
/// To select multiple programs, create multiple selectors with the same Track and different
/// Program numbers. In the console, this setting is visible when you set Selector type
/// to Track. Choose the program number from the dropdown list. If your input file has
/// incorrect metadata, you can choose All channels instead of a program number to have
/// the service ignore the program IDs and include all the programs in the track.
///
[AWSProperty(Min=0, Max=8)]
public int ProgramSelection
{
get { return this._programSelection.GetValueOrDefault(); }
set { this._programSelection = value; }
}
// Check to see if ProgramSelection property is set
internal bool IsSetProgramSelection()
{
return this._programSelection.HasValue;
}
///
/// Gets and sets the property RemixSettings. Use these settings to reorder the audio
/// channels of one input to match those of another input. This allows you to combine
/// the two files into a single output, one after the other.
///
public RemixSettings RemixSettings
{
get { return this._remixSettings; }
set { this._remixSettings = value; }
}
// Check to see if RemixSettings property is set
internal bool IsSetRemixSettings()
{
return this._remixSettings != null;
}
///
/// Gets and sets the property SelectorType. Specifies the type of the audio selector.
///
public AudioSelectorType SelectorType
{
get { return this._selectorType; }
set { this._selectorType = value; }
}
// Check to see if SelectorType property is set
internal bool IsSetSelectorType()
{
return this._selectorType != null;
}
///
/// Gets and sets the property Tracks. Identify a track from the input audio to include
/// in this selector by entering the track index number. To include several tracks in
/// a single audio selector, specify multiple tracks as follows. Using the console, enter
/// a comma-separated list. For example, type "1,2,3" to include tracks 1 through 3.
///
public List Tracks
{
get { return this._tracks; }
set { this._tracks = value; }
}
// Check to see if Tracks property is set
internal bool IsSetTracks()
{
return this._tracks != null && this._tracks.Count > 0;
}
}
}