All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.aws.sdk.kotlin.services.medialive.model.AacSettings.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.medialive.model



/**
 * Aac Settings
 */
public class AacSettings private constructor(builder: Builder) {
    /**
     * Average bitrate in bits/second. Valid values depend on rate control mode and profile.
     */
    public val bitrate: kotlin.Double = builder.bitrate
    /**
     * Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. The adReceiverMix setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E.
     */
    public val codingMode: aws.sdk.kotlin.services.medialive.model.AacCodingMode? = builder.codingMode
    /**
     * Set to "broadcasterMixedAd" when input contains pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3, which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.
     */
    public val inputType: aws.sdk.kotlin.services.medialive.model.AacInputType? = builder.inputType
    /**
     * AAC Profile.
     */
    public val profile: aws.sdk.kotlin.services.medialive.model.AacProfile? = builder.profile
    /**
     * Rate Control Mode.
     */
    public val rateControlMode: aws.sdk.kotlin.services.medialive.model.AacRateControlMode? = builder.rateControlMode
    /**
     * Sets LATM / LOAS AAC output for raw containers.
     */
    public val rawFormat: aws.sdk.kotlin.services.medialive.model.AacRawFormat? = builder.rawFormat
    /**
     * Sample rate in Hz. Valid values depend on rate control mode and profile.
     */
    public val sampleRate: kotlin.Double = builder.sampleRate
    /**
     * Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers.
     */
    public val spec: aws.sdk.kotlin.services.medialive.model.AacSpec? = builder.spec
    /**
     * VBR Quality Level - Only used if rateControlMode is VBR.
     */
    public val vbrQuality: aws.sdk.kotlin.services.medialive.model.AacVbrQuality? = builder.vbrQuality

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.medialive.model.AacSettings = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("AacSettings(")
        append("bitrate=$bitrate,")
        append("codingMode=$codingMode,")
        append("inputType=$inputType,")
        append("profile=$profile,")
        append("rateControlMode=$rateControlMode,")
        append("rawFormat=$rawFormat,")
        append("sampleRate=$sampleRate,")
        append("spec=$spec,")
        append("vbrQuality=$vbrQuality")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = bitrate.hashCode()
        result = 31 * result + (codingMode?.hashCode() ?: 0)
        result = 31 * result + (inputType?.hashCode() ?: 0)
        result = 31 * result + (profile?.hashCode() ?: 0)
        result = 31 * result + (rateControlMode?.hashCode() ?: 0)
        result = 31 * result + (rawFormat?.hashCode() ?: 0)
        result = 31 * result + (sampleRate.hashCode())
        result = 31 * result + (spec?.hashCode() ?: 0)
        result = 31 * result + (vbrQuality?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (other == null || this::class != other::class) return false

        other as AacSettings

        if (bitrate != other.bitrate) return false
        if (codingMode != other.codingMode) return false
        if (inputType != other.inputType) return false
        if (profile != other.profile) return false
        if (rateControlMode != other.rateControlMode) return false
        if (rawFormat != other.rawFormat) return false
        if (sampleRate != other.sampleRate) return false
        if (spec != other.spec) return false
        if (vbrQuality != other.vbrQuality) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.medialive.model.AacSettings = Builder(this).apply(block).build()

    public class Builder {
        /**
         * Average bitrate in bits/second. Valid values depend on rate control mode and profile.
         */
        public var bitrate: kotlin.Double = 0.0
        /**
         * Mono, Stereo, or 5.1 channel layout. Valid values depend on rate control mode and profile. The adReceiverMix setting receives a stereo description plus control track and emits a mono AAC encode of the description track, with control data emitted in the PES header as per ETSI TS 101 154 Annex E.
         */
        public var codingMode: aws.sdk.kotlin.services.medialive.model.AacCodingMode? = null
        /**
         * Set to "broadcasterMixedAd" when input contains pre-mixed main audio + AD (narration) as a stereo pair. The Audio Type field (audioType) will be set to 3, which signals to downstream systems that this stream contains "broadcaster mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the mixing. The values in audioTypeControl and audioType (in AudioDescription) are ignored when set to broadcasterMixedAd. Leave set to "normal" when input does not contain pre-mixed audio + AD.
         */
        public var inputType: aws.sdk.kotlin.services.medialive.model.AacInputType? = null
        /**
         * AAC Profile.
         */
        public var profile: aws.sdk.kotlin.services.medialive.model.AacProfile? = null
        /**
         * Rate Control Mode.
         */
        public var rateControlMode: aws.sdk.kotlin.services.medialive.model.AacRateControlMode? = null
        /**
         * Sets LATM / LOAS AAC output for raw containers.
         */
        public var rawFormat: aws.sdk.kotlin.services.medialive.model.AacRawFormat? = null
        /**
         * Sample rate in Hz. Valid values depend on rate control mode and profile.
         */
        public var sampleRate: kotlin.Double = 0.0
        /**
         * Use MPEG-2 AAC audio instead of MPEG-4 AAC audio for raw or MPEG-2 Transport Stream containers.
         */
        public var spec: aws.sdk.kotlin.services.medialive.model.AacSpec? = null
        /**
         * VBR Quality Level - Only used if rateControlMode is VBR.
         */
        public var vbrQuality: aws.sdk.kotlin.services.medialive.model.AacVbrQuality? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.medialive.model.AacSettings) : this() {
            this.bitrate = x.bitrate
            this.codingMode = x.codingMode
            this.inputType = x.inputType
            this.profile = x.profile
            this.rateControlMode = x.rateControlMode
            this.rawFormat = x.rawFormat
            this.sampleRate = x.sampleRate
            this.spec = x.spec
            this.vbrQuality = x.vbrQuality
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.medialive.model.AacSettings = AacSettings(this)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy