com.amazonaws.services.elastictranscoder.model.AudioCodecOptions Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * Copyright 2010-2016 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.elastictranscoder.model;
import java.io.Serializable;
/**
 * 
 * Options associated with your audio codec.
 * 
 */
public class AudioCodecOptions implements Serializable, Cloneable {
    /**
     * 
     * You can only choose an audio profile when you specify AAC for the value
     * of Audio:Codec.
     * 
     * 
     * Specify the AAC profile for the output file. Elastic Transcoder supports
     * the following profiles:
     * 
     * 
     * -  
auto: If you specify auto, Elastic
     * Transcoder will select the profile based on the bit rate selected for the
     * output file. 
     * -  
AAC-LC: The most common AAC profile. Use for bit rates
     * larger than 64 kbps. 
     * -  
HE-AAC: Not supported on some older players and devices.
     * Use for bit rates between 40 and 80 kbps. 
     * -  
HE-AACv2: Not supported on some players and devices. Use
     * for bit rates less than 48 kbps. 
     * 
     * 
     * All outputs in a Smooth playlist must have the same value
     * for Profile.
     * 
     * 
     * 
     * If you created any presets before AAC profiles were added, Elastic
     * Transcoder automatically updated your presets to use AAC-LC. You can
     * change the value as required.
     * 
     *  
     */
    private String profile;
    /**
     * 
     * You can only choose an audio bit depth when you specify flac
     * or pcm for the value of Audio:Codec.
     * 
     * 
     * The bit depth of a sample is how many bits of information are included in
     * the audio samples. The higher the bit depth, the better the audio, but
     * the larger the file.
     * 
     * 
     * Valid values are 16 and 24.
     * 
     * 
     * The most common bit depth is 24.
     * 
     */
    private String bitDepth;
    /**
     * 
     * You can only choose an audio bit order when you specify pcm
     * for the value of Audio:Codec.
     * 
     * 
     * The order the bits of a PCM sample are stored in.
     * 
     * 
     * The supported value is LittleEndian.
     * 
     */
    private String bitOrder;
    /**
     * 
     * You can only choose whether an audio sample is signed when you specify
     * pcm for the value of Audio:Codec.
     * 
     * 
     * Whether audio samples are represented with negative and positive numbers
     * (signed) or only positive numbers (unsigned).
     * 
     * 
     * The supported value is Signed.
     * 
     */
    private String signed;
    /**
     * 
     * You can only choose an audio profile when you specify AAC for the value
     * of Audio:Codec.
     * 
     * 
     * Specify the AAC profile for the output file. Elastic Transcoder supports
     * the following profiles:
     * 
     * 
     * -  
auto: If you specify auto, Elastic
     * Transcoder will select the profile based on the bit rate selected for the
     * output file. 
     * -  
AAC-LC: The most common AAC profile. Use for bit rates
     * larger than 64 kbps. 
     * -  
HE-AAC: Not supported on some older players and devices.
     * Use for bit rates between 40 and 80 kbps. 
     * -  
HE-AACv2: Not supported on some players and devices. Use
     * for bit rates less than 48 kbps. 
     * 
     * 
     * All outputs in a Smooth playlist must have the same value
     * for Profile.
     * 
     * 
     * 
     * If you created any presets before AAC profiles were added, Elastic
     * Transcoder automatically updated your presets to use AAC-LC. You can
     * change the value as required.
     * 
     *  
     * 
     * @param profile
     *        You can only choose an audio profile when you specify AAC for the
     *        value of Audio:Codec.
     *        
     *        Specify the AAC profile for the output file. Elastic Transcoder
     *        supports the following profiles:
     *        
     *        
     *        -  
auto: If you specify auto, Elastic
     *        Transcoder will select the profile based on the bit rate selected
     *        for the output file. 
     *        -  
AAC-LC: The most common AAC profile. Use for bit
     *        rates larger than 64 kbps. 
     *        -  
HE-AAC: Not supported on some older players and
     *        devices. Use for bit rates between 40 and 80 kbps. 
     *        -  
HE-AACv2: Not supported on some players and
     *        devices. Use for bit rates less than 48 kbps. 
     *        
     *        
     *        All outputs in a Smooth playlist must have the same
     *        value for Profile.
     *        
     *        
     *        
     *        If you created any presets before AAC profiles were added, Elastic
     *        Transcoder automatically updated your presets to use AAC-LC. You
     *        can change the value as required.
     *        
     */
    public void setProfile(String profile) {
        this.profile = profile;
    }
    /**
     * 
     * You can only choose an audio profile when you specify AAC for the value
     * of Audio:Codec.
     * 
     * 
     * Specify the AAC profile for the output file. Elastic Transcoder supports
     * the following profiles:
     * 
     * 
     * -  
auto: If you specify auto, Elastic
     * Transcoder will select the profile based on the bit rate selected for the
     * output file. 
     * -  
AAC-LC: The most common AAC profile. Use for bit rates
     * larger than 64 kbps. 
     * -  
HE-AAC: Not supported on some older players and devices.
     * Use for bit rates between 40 and 80 kbps. 
     * -  
HE-AACv2: Not supported on some players and devices. Use
     * for bit rates less than 48 kbps. 
     * 
     * 
     * All outputs in a Smooth playlist must have the same value
     * for Profile.
     * 
     * 
     * 
     * If you created any presets before AAC profiles were added, Elastic
     * Transcoder automatically updated your presets to use AAC-LC. You can
     * change the value as required.
     * 
     *  
     * 
     * @return You can only choose an audio profile when you specify AAC for the
     *         value of Audio:Codec.
     *         
     *         Specify the AAC profile for the output file. Elastic Transcoder
     *         supports the following profiles:
     *         
     *         
     *         -  
auto: If you specify auto, Elastic
     *         Transcoder will select the profile based on the bit rate selected
     *         for the output file. 
     *         -  
AAC-LC: The most common AAC profile. Use for bit
     *         rates larger than 64 kbps. 
     *         -  
HE-AAC: Not supported on some older players and
     *         devices. Use for bit rates between 40 and 80 kbps. 
     *         -  
HE-AACv2: Not supported on some players and
     *         devices. Use for bit rates less than 48 kbps. 
     *         
     *         
     *         All outputs in a Smooth playlist must have the same
     *         value for Profile.
     *         
     *         
     *         
     *         If you created any presets before AAC profiles were added,
     *         Elastic Transcoder automatically updated your presets to use
     *         AAC-LC. You can change the value as required.
     *         
     */
    public String getProfile() {
        return this.profile;
    }
    /**
     * 
     * You can only choose an audio profile when you specify AAC for the value
     * of Audio:Codec.
     * 
     * 
     * Specify the AAC profile for the output file. Elastic Transcoder supports
     * the following profiles:
     * 
     * 
     * -  
auto: If you specify auto, Elastic
     * Transcoder will select the profile based on the bit rate selected for the
     * output file. 
     * -  
AAC-LC: The most common AAC profile. Use for bit rates
     * larger than 64 kbps. 
     * -  
HE-AAC: Not supported on some older players and devices.
     * Use for bit rates between 40 and 80 kbps. 
     * -  
HE-AACv2: Not supported on some players and devices. Use
     * for bit rates less than 48 kbps. 
     * 
     * 
     * All outputs in a Smooth playlist must have the same value
     * for Profile.
     * 
     * 
     * 
     * If you created any presets before AAC profiles were added, Elastic
     * Transcoder automatically updated your presets to use AAC-LC. You can
     * change the value as required.
     * 
     *  
     * 
     * @param profile
     *        You can only choose an audio profile when you specify AAC for the
     *        value of Audio:Codec.
     *        
     *        Specify the AAC profile for the output file. Elastic Transcoder
     *        supports the following profiles:
     *        
     *        
     *        -  
auto: If you specify auto, Elastic
     *        Transcoder will select the profile based on the bit rate selected
     *        for the output file. 
     *        -  
AAC-LC: The most common AAC profile. Use for bit
     *        rates larger than 64 kbps. 
     *        -  
HE-AAC: Not supported on some older players and
     *        devices. Use for bit rates between 40 and 80 kbps. 
     *        -  
HE-AACv2: Not supported on some players and
     *        devices. Use for bit rates less than 48 kbps. 
     *        
     *        
     *        All outputs in a Smooth playlist must have the same
     *        value for Profile.
     *        
     *        
     *        
     *        If you created any presets before AAC profiles were added, Elastic
     *        Transcoder automatically updated your presets to use AAC-LC. You
     *        can change the value as required.
     *        
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public AudioCodecOptions withProfile(String profile) {
        setProfile(profile);
        return this;
    }
    /**
     * 
     * You can only choose an audio bit depth when you specify flac
     * or pcm for the value of Audio:Codec.
     * 
     * 
     * The bit depth of a sample is how many bits of information are included in
     * the audio samples. The higher the bit depth, the better the audio, but
     * the larger the file.
     * 
     * 
     * Valid values are 16 and 24.
     * 
     * 
     * The most common bit depth is 24.
     * 
     * 
     * @param bitDepth
     *        You can only choose an audio bit depth when you specify
     *        flac or pcm for the value of
     *        Audio:Codec.
     *        
     *        The bit depth of a sample is how many bits of information are
     *        included in the audio samples. The higher the bit depth, the
     *        better the audio, but the larger the file.
     *        
     *        
     *        Valid values are 16 and 24.
     *        
     *        
     *        The most common bit depth is 24.
     */
    public void setBitDepth(String bitDepth) {
        this.bitDepth = bitDepth;
    }
    /**
     * 
     * You can only choose an audio bit depth when you specify flac
     * or pcm for the value of Audio:Codec.
     * 
     * 
     * The bit depth of a sample is how many bits of information are included in
     * the audio samples. The higher the bit depth, the better the audio, but
     * the larger the file.
     * 
     * 
     * Valid values are 16 and 24.
     * 
     * 
     * The most common bit depth is 24.
     * 
     * 
     * @return You can only choose an audio bit depth when you specify
     *         flac or pcm for the value of
     *         Audio:Codec.
     *         
     *         The bit depth of a sample is how many bits of information are
     *         included in the audio samples. The higher the bit depth, the
     *         better the audio, but the larger the file.
     *         
     *         
     *         Valid values are 16 and 24.
     *         
     *         
     *         The most common bit depth is 24.
     */
    public String getBitDepth() {
        return this.bitDepth;
    }
    /**
     * 
     * You can only choose an audio bit depth when you specify flac
     * or pcm for the value of Audio:Codec.
     * 
     * 
     * The bit depth of a sample is how many bits of information are included in
     * the audio samples. The higher the bit depth, the better the audio, but
     * the larger the file.
     * 
     * 
     * Valid values are 16 and 24.
     * 
     * 
     * The most common bit depth is 24.
     * 
     * 
     * @param bitDepth
     *        You can only choose an audio bit depth when you specify
     *        flac or pcm for the value of
     *        Audio:Codec.
     *        
     *        The bit depth of a sample is how many bits of information are
     *        included in the audio samples. The higher the bit depth, the
     *        better the audio, but the larger the file.
     *        
     *        
     *        Valid values are 16 and 24.
     *        
     *        
     *        The most common bit depth is 24.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public AudioCodecOptions withBitDepth(String bitDepth) {
        setBitDepth(bitDepth);
        return this;
    }
    /**
     * 
     * You can only choose an audio bit order when you specify pcm
     * for the value of Audio:Codec.
     * 
     * 
     * The order the bits of a PCM sample are stored in.
     * 
     * 
     * The supported value is LittleEndian.
     * 
     * 
     * @param bitOrder
     *        You can only choose an audio bit order when you specify
     *        pcm for the value of Audio:Codec.
     *        
     *        The order the bits of a PCM sample are stored in.
     *        
     *        
     *        The supported value is LittleEndian.
     */
    public void setBitOrder(String bitOrder) {
        this.bitOrder = bitOrder;
    }
    /**
     * 
     * You can only choose an audio bit order when you specify pcm
     * for the value of Audio:Codec.
     * 
     * 
     * The order the bits of a PCM sample are stored in.
     * 
     * 
     * The supported value is LittleEndian.
     * 
     * 
     * @return You can only choose an audio bit order when you specify
     *         pcm for the value of Audio:Codec.
     *         
     *         The order the bits of a PCM sample are stored in.
     *         
     *         
     *         The supported value is LittleEndian.
     */
    public String getBitOrder() {
        return this.bitOrder;
    }
    /**
     * 
     * You can only choose an audio bit order when you specify pcm
     * for the value of Audio:Codec.
     * 
     * 
     * The order the bits of a PCM sample are stored in.
     * 
     * 
     * The supported value is LittleEndian.
     * 
     * 
     * @param bitOrder
     *        You can only choose an audio bit order when you specify
     *        pcm for the value of Audio:Codec.
     *        
     *        The order the bits of a PCM sample are stored in.
     *        
     *        
     *        The supported value is LittleEndian.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public AudioCodecOptions withBitOrder(String bitOrder) {
        setBitOrder(bitOrder);
        return this;
    }
    /**
     * 
     * You can only choose whether an audio sample is signed when you specify
     * pcm for the value of Audio:Codec.
     * 
     * 
     * Whether audio samples are represented with negative and positive numbers
     * (signed) or only positive numbers (unsigned).
     * 
     * 
     * The supported value is Signed.
     * 
     * 
     * @param signed
     *        You can only choose whether an audio sample is signed when you
     *        specify pcm for the value of Audio:Codec.
     *        
     *        Whether audio samples are represented with negative and positive
     *        numbers (signed) or only positive numbers (unsigned).
     *        
     *        
     *        The supported value is Signed.
     */
    public void setSigned(String signed) {
        this.signed = signed;
    }
    /**
     * 
     * You can only choose whether an audio sample is signed when you specify
     * pcm for the value of Audio:Codec.
     * 
     * 
     * Whether audio samples are represented with negative and positive numbers
     * (signed) or only positive numbers (unsigned).
     * 
     * 
     * The supported value is Signed.
     * 
     * 
     * @return You can only choose whether an audio sample is signed when you
     *         specify pcm for the value of Audio:Codec.
     *         
     *         Whether audio samples are represented with negative and positive
     *         numbers (signed) or only positive numbers (unsigned).
     *         
     *         
     *         The supported value is Signed.
     */
    public String getSigned() {
        return this.signed;
    }
    /**
     * 
     * You can only choose whether an audio sample is signed when you specify
     * pcm for the value of Audio:Codec.
     * 
     * 
     * Whether audio samples are represented with negative and positive numbers
     * (signed) or only positive numbers (unsigned).
     * 
     * 
     * The supported value is Signed.
     * 
     * 
     * @param signed
     *        You can only choose whether an audio sample is signed when you
     *        specify pcm for the value of Audio:Codec.
     *        
     *        Whether audio samples are represented with negative and positive
     *        numbers (signed) or only positive numbers (unsigned).
     *        
     *        
     *        The supported value is Signed.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public AudioCodecOptions withSigned(String signed) {
        setSigned(signed);
        return this;
    }
    /**
     * Returns a string representation of this object; useful for testing and
     * debugging.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getProfile() != null)
            sb.append("Profile: " + getProfile() + ",");
        if (getBitDepth() != null)
            sb.append("BitDepth: " + getBitDepth() + ",");
        if (getBitOrder() != null)
            sb.append("BitOrder: " + getBitOrder() + ",");
        if (getSigned() != null)
            sb.append("Signed: " + getSigned());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof AudioCodecOptions == false)
            return false;
        AudioCodecOptions other = (AudioCodecOptions) obj;
        if (other.getProfile() == null ^ this.getProfile() == null)
            return false;
        if (other.getProfile() != null
                && other.getProfile().equals(this.getProfile()) == false)
            return false;
        if (other.getBitDepth() == null ^ this.getBitDepth() == null)
            return false;
        if (other.getBitDepth() != null
                && other.getBitDepth().equals(this.getBitDepth()) == false)
            return false;
        if (other.getBitOrder() == null ^ this.getBitOrder() == null)
            return false;
        if (other.getBitOrder() != null
                && other.getBitOrder().equals(this.getBitOrder()) == false)
            return false;
        if (other.getSigned() == null ^ this.getSigned() == null)
            return false;
        if (other.getSigned() != null
                && other.getSigned().equals(this.getSigned()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime * hashCode
                + ((getProfile() == null) ? 0 : getProfile().hashCode());
        hashCode = prime * hashCode
                + ((getBitDepth() == null) ? 0 : getBitDepth().hashCode());
        hashCode = prime * hashCode
                + ((getBitOrder() == null) ? 0 : getBitOrder().hashCode());
        hashCode = prime * hashCode
                + ((getSigned() == null) ? 0 : getSigned().hashCode());
        return hashCode;
    }
    @Override
    public AudioCodecOptions clone() {
        try {
            return (AudioCodecOptions) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException(
                    "Got a CloneNotSupportedException from Object.clone() "
                            + "even though we're Cloneable!", e);
        }
    }
}