com.amazonaws.services.medialive.model.AudioDescription Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-java-sdk-medialive Show documentation
Show all versions of aws-java-sdk-medialive Show documentation
The AWS Java SDK for AWS Elemental MediaLive module holds the client classes that are used for communicating with AWS Elemental MediaLive Service
/*
* Copyright 2018-2023 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.
*/
package com.amazonaws.services.medialive.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;
/**
* Audio Description
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class AudioDescription implements Serializable, Cloneable, StructuredPojo {
/** Advanced audio normalization settings. */
private AudioNormalizationSettings audioNormalizationSettings;
/** The name of the AudioSelector used as the source for this AudioDescription. */
private String audioSelectorName;
/** Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC 13818-1. */
private String audioType;
/**
* Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then that value
* is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio Type is included
* in the output. useConfigured: The value in Audio Type is included in the output. Note that this field and
* audioType are both ignored if inputType is broadcasterMixedAd.
*/
private String audioTypeControl;
/** Settings to configure one or more solutions that insert audio watermarks in the audio encode */
private AudioWatermarkSettings audioWatermarkingSettings;
/** Audio codec settings. */
private AudioCodecSettings codecSettings;
/**
* RFC 5646 language code representing the language of the audio output track. Only used if languageControlMode is
* useConfigured, or there is no ISO 639 language code specified in the input.
*/
private String languageCode;
/**
* Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language code of
* the input. The languageCode will be used when useConfigured is set, or when followInput is selected but there is
* no ISO 639 language code specified by the input.
*/
private String languageCodeControl;
/**
* The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription.
* Description names should be unique within this Live Event.
*/
private String name;
/** Settings that control how input audio channels are remixed into the output audio channels. */
private RemixSettings remixSettings;
/**
* Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director
* Commentary).
*/
private String streamName;
/**
* Advanced audio normalization settings.
*
* @param audioNormalizationSettings
* Advanced audio normalization settings.
*/
public void setAudioNormalizationSettings(AudioNormalizationSettings audioNormalizationSettings) {
this.audioNormalizationSettings = audioNormalizationSettings;
}
/**
* Advanced audio normalization settings.
*
* @return Advanced audio normalization settings.
*/
public AudioNormalizationSettings getAudioNormalizationSettings() {
return this.audioNormalizationSettings;
}
/**
* Advanced audio normalization settings.
*
* @param audioNormalizationSettings
* Advanced audio normalization settings.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AudioDescription withAudioNormalizationSettings(AudioNormalizationSettings audioNormalizationSettings) {
setAudioNormalizationSettings(audioNormalizationSettings);
return this;
}
/**
* The name of the AudioSelector used as the source for this AudioDescription.
*
* @param audioSelectorName
* The name of the AudioSelector used as the source for this AudioDescription.
*/
public void setAudioSelectorName(String audioSelectorName) {
this.audioSelectorName = audioSelectorName;
}
/**
* The name of the AudioSelector used as the source for this AudioDescription.
*
* @return The name of the AudioSelector used as the source for this AudioDescription.
*/
public String getAudioSelectorName() {
return this.audioSelectorName;
}
/**
* The name of the AudioSelector used as the source for this AudioDescription.
*
* @param audioSelectorName
* The name of the AudioSelector used as the source for this AudioDescription.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AudioDescription withAudioSelectorName(String audioSelectorName) {
setAudioSelectorName(audioSelectorName);
return this;
}
/**
* Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC 13818-1.
*
* @param audioType
* Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC
* 13818-1.
* @see AudioType
*/
public void setAudioType(String audioType) {
this.audioType = audioType;
}
/**
* Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC 13818-1.
*
* @return Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC
* 13818-1.
* @see AudioType
*/
public String getAudioType() {
return this.audioType;
}
/**
* Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC 13818-1.
*
* @param audioType
* Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC
* 13818-1.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AudioType
*/
public AudioDescription withAudioType(String audioType) {
setAudioType(audioType);
return this;
}
/**
* Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC 13818-1.
*
* @param audioType
* Applies only if audioTypeControl is useConfigured. The values for audioType are defined in ISO-IEC
* 13818-1.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AudioType
*/
public AudioDescription withAudioType(AudioType audioType) {
this.audioType = audioType.toString();
return this;
}
/**
* Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then that value
* is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio Type is included
* in the output. useConfigured: The value in Audio Type is included in the output. Note that this field and
* audioType are both ignored if inputType is broadcasterMixedAd.
*
* @param audioTypeControl
* Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then
* that value is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio
* Type is included in the output. useConfigured: The value in Audio Type is included in the output. Note
* that this field and audioType are both ignored if inputType is broadcasterMixedAd.
* @see AudioDescriptionAudioTypeControl
*/
public void setAudioTypeControl(String audioTypeControl) {
this.audioTypeControl = audioTypeControl;
}
/**
* Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then that value
* is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio Type is included
* in the output. useConfigured: The value in Audio Type is included in the output. Note that this field and
* audioType are both ignored if inputType is broadcasterMixedAd.
*
* @return Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then
* that value is passed through to the output. If the input contains no ISO 639 audioType, the value in
* Audio Type is included in the output. useConfigured: The value in Audio Type is included in the output.
* Note that this field and audioType are both ignored if inputType is broadcasterMixedAd.
* @see AudioDescriptionAudioTypeControl
*/
public String getAudioTypeControl() {
return this.audioTypeControl;
}
/**
* Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then that value
* is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio Type is included
* in the output. useConfigured: The value in Audio Type is included in the output. Note that this field and
* audioType are both ignored if inputType is broadcasterMixedAd.
*
* @param audioTypeControl
* Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then
* that value is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio
* Type is included in the output. useConfigured: The value in Audio Type is included in the output. Note
* that this field and audioType are both ignored if inputType is broadcasterMixedAd.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AudioDescriptionAudioTypeControl
*/
public AudioDescription withAudioTypeControl(String audioTypeControl) {
setAudioTypeControl(audioTypeControl);
return this;
}
/**
* Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then that value
* is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio Type is included
* in the output. useConfigured: The value in Audio Type is included in the output. Note that this field and
* audioType are both ignored if inputType is broadcasterMixedAd.
*
* @param audioTypeControl
* Determines how audio type is determined. followInput: If the input contains an ISO 639 audioType, then
* that value is passed through to the output. If the input contains no ISO 639 audioType, the value in Audio
* Type is included in the output. useConfigured: The value in Audio Type is included in the output. Note
* that this field and audioType are both ignored if inputType is broadcasterMixedAd.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AudioDescriptionAudioTypeControl
*/
public AudioDescription withAudioTypeControl(AudioDescriptionAudioTypeControl audioTypeControl) {
this.audioTypeControl = audioTypeControl.toString();
return this;
}
/**
* Settings to configure one or more solutions that insert audio watermarks in the audio encode
*
* @param audioWatermarkingSettings
* Settings to configure one or more solutions that insert audio watermarks in the audio encode
*/
public void setAudioWatermarkingSettings(AudioWatermarkSettings audioWatermarkingSettings) {
this.audioWatermarkingSettings = audioWatermarkingSettings;
}
/**
* Settings to configure one or more solutions that insert audio watermarks in the audio encode
*
* @return Settings to configure one or more solutions that insert audio watermarks in the audio encode
*/
public AudioWatermarkSettings getAudioWatermarkingSettings() {
return this.audioWatermarkingSettings;
}
/**
* Settings to configure one or more solutions that insert audio watermarks in the audio encode
*
* @param audioWatermarkingSettings
* Settings to configure one or more solutions that insert audio watermarks in the audio encode
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AudioDescription withAudioWatermarkingSettings(AudioWatermarkSettings audioWatermarkingSettings) {
setAudioWatermarkingSettings(audioWatermarkingSettings);
return this;
}
/**
* Audio codec settings.
*
* @param codecSettings
* Audio codec settings.
*/
public void setCodecSettings(AudioCodecSettings codecSettings) {
this.codecSettings = codecSettings;
}
/**
* Audio codec settings.
*
* @return Audio codec settings.
*/
public AudioCodecSettings getCodecSettings() {
return this.codecSettings;
}
/**
* Audio codec settings.
*
* @param codecSettings
* Audio codec settings.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AudioDescription withCodecSettings(AudioCodecSettings codecSettings) {
setCodecSettings(codecSettings);
return this;
}
/**
* RFC 5646 language code representing the language of the audio output track. Only used if languageControlMode is
* useConfigured, or there is no ISO 639 language code specified in the input.
*
* @param languageCode
* RFC 5646 language code representing the language of the audio output track. Only used if
* languageControlMode is useConfigured, or there is no ISO 639 language code specified in the input.
*/
public void setLanguageCode(String languageCode) {
this.languageCode = languageCode;
}
/**
* RFC 5646 language code representing the language of the audio output track. Only used if languageControlMode is
* useConfigured, or there is no ISO 639 language code specified in the input.
*
* @return RFC 5646 language code representing the language of the audio output track. Only used if
* languageControlMode is useConfigured, or there is no ISO 639 language code specified in the input.
*/
public String getLanguageCode() {
return this.languageCode;
}
/**
* RFC 5646 language code representing the language of the audio output track. Only used if languageControlMode is
* useConfigured, or there is no ISO 639 language code specified in the input.
*
* @param languageCode
* RFC 5646 language code representing the language of the audio output track. Only used if
* languageControlMode is useConfigured, or there is no ISO 639 language code specified in the input.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AudioDescription withLanguageCode(String languageCode) {
setLanguageCode(languageCode);
return this;
}
/**
* Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language code of
* the input. The languageCode will be used when useConfigured is set, or when followInput is selected but there is
* no ISO 639 language code specified by the input.
*
* @param languageCodeControl
* Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language
* code of the input. The languageCode will be used when useConfigured is set, or when followInput is
* selected but there is no ISO 639 language code specified by the input.
* @see AudioDescriptionLanguageCodeControl
*/
public void setLanguageCodeControl(String languageCodeControl) {
this.languageCodeControl = languageCodeControl;
}
/**
* Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language code of
* the input. The languageCode will be used when useConfigured is set, or when followInput is selected but there is
* no ISO 639 language code specified by the input.
*
* @return Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language
* code of the input. The languageCode will be used when useConfigured is set, or when followInput is
* selected but there is no ISO 639 language code specified by the input.
* @see AudioDescriptionLanguageCodeControl
*/
public String getLanguageCodeControl() {
return this.languageCodeControl;
}
/**
* Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language code of
* the input. The languageCode will be used when useConfigured is set, or when followInput is selected but there is
* no ISO 639 language code specified by the input.
*
* @param languageCodeControl
* Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language
* code of the input. The languageCode will be used when useConfigured is set, or when followInput is
* selected but there is no ISO 639 language code specified by the input.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AudioDescriptionLanguageCodeControl
*/
public AudioDescription withLanguageCodeControl(String languageCodeControl) {
setLanguageCodeControl(languageCodeControl);
return this;
}
/**
* Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language code of
* the input. The languageCode will be used when useConfigured is set, or when followInput is selected but there is
* no ISO 639 language code specified by the input.
*
* @param languageCodeControl
* Choosing followInput will cause the ISO 639 language code of the output to follow the ISO 639 language
* code of the input. The languageCode will be used when useConfigured is set, or when followInput is
* selected but there is no ISO 639 language code specified by the input.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AudioDescriptionLanguageCodeControl
*/
public AudioDescription withLanguageCodeControl(AudioDescriptionLanguageCodeControl languageCodeControl) {
this.languageCodeControl = languageCodeControl.toString();
return this;
}
/**
* The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription.
* Description names should be unique within this Live Event.
*
* @param name
* The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription.
* Description names should be unique within this Live Event.
*/
public void setName(String name) {
this.name = name;
}
/**
* The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription.
* Description names should be unique within this Live Event.
*
* @return The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription.
* Description names should be unique within this Live Event.
*/
public String getName() {
return this.name;
}
/**
* The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription.
* Description names should be unique within this Live Event.
*
* @param name
* The name of this AudioDescription. Outputs will use this name to uniquely identify this AudioDescription.
* Description names should be unique within this Live Event.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AudioDescription withName(String name) {
setName(name);
return this;
}
/**
* Settings that control how input audio channels are remixed into the output audio channels.
*
* @param remixSettings
* Settings that control how input audio channels are remixed into the output audio channels.
*/
public void setRemixSettings(RemixSettings remixSettings) {
this.remixSettings = remixSettings;
}
/**
* Settings that control how input audio channels are remixed into the output audio channels.
*
* @return Settings that control how input audio channels are remixed into the output audio channels.
*/
public RemixSettings getRemixSettings() {
return this.remixSettings;
}
/**
* Settings that control how input audio channels are remixed into the output audio channels.
*
* @param remixSettings
* Settings that control how input audio channels are remixed into the output audio channels.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AudioDescription withRemixSettings(RemixSettings remixSettings) {
setRemixSettings(remixSettings);
return this;
}
/**
* Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director
* Commentary).
*
* @param streamName
* Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or
* Director Commentary).
*/
public void setStreamName(String streamName) {
this.streamName = streamName;
}
/**
* Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director
* Commentary).
*
* @return Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or
* Director Commentary).
*/
public String getStreamName() {
return this.streamName;
}
/**
* Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or Director
* Commentary).
*
* @param streamName
* Used for MS Smooth and Apple HLS outputs. Indicates the name displayed by the player (eg. English, or
* Director Commentary).
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AudioDescription withStreamName(String streamName) {
setStreamName(streamName);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getAudioNormalizationSettings() != null)
sb.append("AudioNormalizationSettings: ").append(getAudioNormalizationSettings()).append(",");
if (getAudioSelectorName() != null)
sb.append("AudioSelectorName: ").append(getAudioSelectorName()).append(",");
if (getAudioType() != null)
sb.append("AudioType: ").append(getAudioType()).append(",");
if (getAudioTypeControl() != null)
sb.append("AudioTypeControl: ").append(getAudioTypeControl()).append(",");
if (getAudioWatermarkingSettings() != null)
sb.append("AudioWatermarkingSettings: ").append(getAudioWatermarkingSettings()).append(",");
if (getCodecSettings() != null)
sb.append("CodecSettings: ").append(getCodecSettings()).append(",");
if (getLanguageCode() != null)
sb.append("LanguageCode: ").append(getLanguageCode()).append(",");
if (getLanguageCodeControl() != null)
sb.append("LanguageCodeControl: ").append(getLanguageCodeControl()).append(",");
if (getName() != null)
sb.append("Name: ").append(getName()).append(",");
if (getRemixSettings() != null)
sb.append("RemixSettings: ").append(getRemixSettings()).append(",");
if (getStreamName() != null)
sb.append("StreamName: ").append(getStreamName());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof AudioDescription == false)
return false;
AudioDescription other = (AudioDescription) obj;
if (other.getAudioNormalizationSettings() == null ^ this.getAudioNormalizationSettings() == null)
return false;
if (other.getAudioNormalizationSettings() != null && other.getAudioNormalizationSettings().equals(this.getAudioNormalizationSettings()) == false)
return false;
if (other.getAudioSelectorName() == null ^ this.getAudioSelectorName() == null)
return false;
if (other.getAudioSelectorName() != null && other.getAudioSelectorName().equals(this.getAudioSelectorName()) == false)
return false;
if (other.getAudioType() == null ^ this.getAudioType() == null)
return false;
if (other.getAudioType() != null && other.getAudioType().equals(this.getAudioType()) == false)
return false;
if (other.getAudioTypeControl() == null ^ this.getAudioTypeControl() == null)
return false;
if (other.getAudioTypeControl() != null && other.getAudioTypeControl().equals(this.getAudioTypeControl()) == false)
return false;
if (other.getAudioWatermarkingSettings() == null ^ this.getAudioWatermarkingSettings() == null)
return false;
if (other.getAudioWatermarkingSettings() != null && other.getAudioWatermarkingSettings().equals(this.getAudioWatermarkingSettings()) == false)
return false;
if (other.getCodecSettings() == null ^ this.getCodecSettings() == null)
return false;
if (other.getCodecSettings() != null && other.getCodecSettings().equals(this.getCodecSettings()) == false)
return false;
if (other.getLanguageCode() == null ^ this.getLanguageCode() == null)
return false;
if (other.getLanguageCode() != null && other.getLanguageCode().equals(this.getLanguageCode()) == false)
return false;
if (other.getLanguageCodeControl() == null ^ this.getLanguageCodeControl() == null)
return false;
if (other.getLanguageCodeControl() != null && other.getLanguageCodeControl().equals(this.getLanguageCodeControl()) == false)
return false;
if (other.getName() == null ^ this.getName() == null)
return false;
if (other.getName() != null && other.getName().equals(this.getName()) == false)
return false;
if (other.getRemixSettings() == null ^ this.getRemixSettings() == null)
return false;
if (other.getRemixSettings() != null && other.getRemixSettings().equals(this.getRemixSettings()) == false)
return false;
if (other.getStreamName() == null ^ this.getStreamName() == null)
return false;
if (other.getStreamName() != null && other.getStreamName().equals(this.getStreamName()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getAudioNormalizationSettings() == null) ? 0 : getAudioNormalizationSettings().hashCode());
hashCode = prime * hashCode + ((getAudioSelectorName() == null) ? 0 : getAudioSelectorName().hashCode());
hashCode = prime * hashCode + ((getAudioType() == null) ? 0 : getAudioType().hashCode());
hashCode = prime * hashCode + ((getAudioTypeControl() == null) ? 0 : getAudioTypeControl().hashCode());
hashCode = prime * hashCode + ((getAudioWatermarkingSettings() == null) ? 0 : getAudioWatermarkingSettings().hashCode());
hashCode = prime * hashCode + ((getCodecSettings() == null) ? 0 : getCodecSettings().hashCode());
hashCode = prime * hashCode + ((getLanguageCode() == null) ? 0 : getLanguageCode().hashCode());
hashCode = prime * hashCode + ((getLanguageCodeControl() == null) ? 0 : getLanguageCodeControl().hashCode());
hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode());
hashCode = prime * hashCode + ((getRemixSettings() == null) ? 0 : getRemixSettings().hashCode());
hashCode = prime * hashCode + ((getStreamName() == null) ? 0 : getStreamName().hashCode());
return hashCode;
}
@Override
public AudioDescription clone() {
try {
return (AudioDescription) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
@com.amazonaws.annotation.SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
com.amazonaws.services.medialive.model.transform.AudioDescriptionMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}