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

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

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

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



/**
 * Eac3 Settings
 */
public class Eac3Settings private constructor(builder: Builder) {
    /**
     * When set to attenuate3Db, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode.
     */
    public val attenuationControl: aws.sdk.kotlin.services.medialive.model.Eac3AttenuationControl? = builder.attenuationControl
    /**
     * Average bitrate in bits/second. Valid bitrates depend on the coding mode.
     */
    public val bitrate: kotlin.Double = builder.bitrate
    /**
     * Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.
     */
    public val bitstreamMode: aws.sdk.kotlin.services.medialive.model.Eac3BitstreamMode? = builder.bitstreamMode
    /**
     * Dolby Digital Plus coding mode. Determines number of channels.
     */
    public val codingMode: aws.sdk.kotlin.services.medialive.model.Eac3CodingMode? = builder.codingMode
    /**
     * When set to enabled, activates a DC highpass filter for all input channels.
     */
    public val dcFilter: aws.sdk.kotlin.services.medialive.model.Eac3DcFilter? = builder.dcFilter
    /**
     * Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through.
     */
    public val dialnorm: kotlin.Int = builder.dialnorm
    /**
     * Sets the Dolby dynamic range compression profile.
     */
    public val drcLine: aws.sdk.kotlin.services.medialive.model.Eac3DrcLine? = builder.drcLine
    /**
     * Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels.
     */
    public val drcRf: aws.sdk.kotlin.services.medialive.model.Eac3DrcRf? = builder.drcRf
    /**
     * When encoding 3/2 audio, setting to lfe enables the LFE channel
     */
    public val lfeControl: aws.sdk.kotlin.services.medialive.model.Eac3LfeControl? = builder.lfeControl
    /**
     * When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with codingMode32 coding mode.
     */
    public val lfeFilter: aws.sdk.kotlin.services.medialive.model.Eac3LfeFilter? = builder.lfeFilter
    /**
     * Left only/Right only center mix level. Only used for 3/2 coding mode.
     */
    public val loRoCenterMixLevel: kotlin.Double = builder.loRoCenterMixLevel
    /**
     * Left only/Right only surround mix level. Only used for 3/2 coding mode.
     */
    public val loRoSurroundMixLevel: kotlin.Double = builder.loRoSurroundMixLevel
    /**
     * Left total/Right total center mix level. Only used for 3/2 coding mode.
     */
    public val ltRtCenterMixLevel: kotlin.Double = builder.ltRtCenterMixLevel
    /**
     * Left total/Right total surround mix level. Only used for 3/2 coding mode.
     */
    public val ltRtSurroundMixLevel: kotlin.Double = builder.ltRtSurroundMixLevel
    /**
     * When set to followInput, encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used.
     */
    public val metadataControl: aws.sdk.kotlin.services.medialive.model.Eac3MetadataControl? = builder.metadataControl
    /**
     * When set to whenPossible, input DD+ audio will be passed through if it is present on the input. This detection is dynamic over the life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the system alternates between passthrough and encoding.
     */
    public val passthroughControl: aws.sdk.kotlin.services.medialive.model.Eac3PassthroughControl? = builder.passthroughControl
    /**
     * When set to shift90Degrees, applies a 90-degree phase shift to the surround channels. Only used for 3/2 coding mode.
     */
    public val phaseControl: aws.sdk.kotlin.services.medialive.model.Eac3PhaseControl? = builder.phaseControl
    /**
     * Stereo downmix preference. Only used for 3/2 coding mode.
     */
    public val stereoDownmix: aws.sdk.kotlin.services.medialive.model.Eac3StereoDownmix? = builder.stereoDownmix
    /**
     * When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels.
     */
    public val surroundExMode: aws.sdk.kotlin.services.medialive.model.Eac3SurroundExMode? = builder.surroundExMode
    /**
     * When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the two channels.
     */
    public val surroundMode: aws.sdk.kotlin.services.medialive.model.Eac3SurroundMode? = builder.surroundMode

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

    override fun toString(): kotlin.String = buildString {
        append("Eac3Settings(")
        append("attenuationControl=$attenuationControl,")
        append("bitrate=$bitrate,")
        append("bitstreamMode=$bitstreamMode,")
        append("codingMode=$codingMode,")
        append("dcFilter=$dcFilter,")
        append("dialnorm=$dialnorm,")
        append("drcLine=$drcLine,")
        append("drcRf=$drcRf,")
        append("lfeControl=$lfeControl,")
        append("lfeFilter=$lfeFilter,")
        append("loRoCenterMixLevel=$loRoCenterMixLevel,")
        append("loRoSurroundMixLevel=$loRoSurroundMixLevel,")
        append("ltRtCenterMixLevel=$ltRtCenterMixLevel,")
        append("ltRtSurroundMixLevel=$ltRtSurroundMixLevel,")
        append("metadataControl=$metadataControl,")
        append("passthroughControl=$passthroughControl,")
        append("phaseControl=$phaseControl,")
        append("stereoDownmix=$stereoDownmix,")
        append("surroundExMode=$surroundExMode,")
        append("surroundMode=$surroundMode")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = attenuationControl?.hashCode() ?: 0
        result = 31 * result + (bitrate.hashCode())
        result = 31 * result + (bitstreamMode?.hashCode() ?: 0)
        result = 31 * result + (codingMode?.hashCode() ?: 0)
        result = 31 * result + (dcFilter?.hashCode() ?: 0)
        result = 31 * result + (dialnorm)
        result = 31 * result + (drcLine?.hashCode() ?: 0)
        result = 31 * result + (drcRf?.hashCode() ?: 0)
        result = 31 * result + (lfeControl?.hashCode() ?: 0)
        result = 31 * result + (lfeFilter?.hashCode() ?: 0)
        result = 31 * result + (loRoCenterMixLevel.hashCode())
        result = 31 * result + (loRoSurroundMixLevel.hashCode())
        result = 31 * result + (ltRtCenterMixLevel.hashCode())
        result = 31 * result + (ltRtSurroundMixLevel.hashCode())
        result = 31 * result + (metadataControl?.hashCode() ?: 0)
        result = 31 * result + (passthroughControl?.hashCode() ?: 0)
        result = 31 * result + (phaseControl?.hashCode() ?: 0)
        result = 31 * result + (stereoDownmix?.hashCode() ?: 0)
        result = 31 * result + (surroundExMode?.hashCode() ?: 0)
        result = 31 * result + (surroundMode?.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 Eac3Settings

        if (attenuationControl != other.attenuationControl) return false
        if (bitrate != other.bitrate) return false
        if (bitstreamMode != other.bitstreamMode) return false
        if (codingMode != other.codingMode) return false
        if (dcFilter != other.dcFilter) return false
        if (dialnorm != other.dialnorm) return false
        if (drcLine != other.drcLine) return false
        if (drcRf != other.drcRf) return false
        if (lfeControl != other.lfeControl) return false
        if (lfeFilter != other.lfeFilter) return false
        if (loRoCenterMixLevel != other.loRoCenterMixLevel) return false
        if (loRoSurroundMixLevel != other.loRoSurroundMixLevel) return false
        if (ltRtCenterMixLevel != other.ltRtCenterMixLevel) return false
        if (ltRtSurroundMixLevel != other.ltRtSurroundMixLevel) return false
        if (metadataControl != other.metadataControl) return false
        if (passthroughControl != other.passthroughControl) return false
        if (phaseControl != other.phaseControl) return false
        if (stereoDownmix != other.stereoDownmix) return false
        if (surroundExMode != other.surroundExMode) return false
        if (surroundMode != other.surroundMode) return false

        return true
    }

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

    public class Builder {
        /**
         * When set to attenuate3Db, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode.
         */
        public var attenuationControl: aws.sdk.kotlin.services.medialive.model.Eac3AttenuationControl? = null
        /**
         * Average bitrate in bits/second. Valid bitrates depend on the coding mode.
         */
        public var bitrate: kotlin.Double = 0.0
        /**
         * Specifies the bitstream mode (bsmod) for the emitted E-AC-3 stream. See ATSC A/52-2012 (Annex E) for background on these values.
         */
        public var bitstreamMode: aws.sdk.kotlin.services.medialive.model.Eac3BitstreamMode? = null
        /**
         * Dolby Digital Plus coding mode. Determines number of channels.
         */
        public var codingMode: aws.sdk.kotlin.services.medialive.model.Eac3CodingMode? = null
        /**
         * When set to enabled, activates a DC highpass filter for all input channels.
         */
        public var dcFilter: aws.sdk.kotlin.services.medialive.model.Eac3DcFilter? = null
        /**
         * Sets the dialnorm for the output. If blank and input audio is Dolby Digital Plus, dialnorm will be passed through.
         */
        public var dialnorm: kotlin.Int = 0
        /**
         * Sets the Dolby dynamic range compression profile.
         */
        public var drcLine: aws.sdk.kotlin.services.medialive.model.Eac3DrcLine? = null
        /**
         * Sets the profile for heavy Dolby dynamic range compression, ensures that the instantaneous signal peaks do not exceed specified levels.
         */
        public var drcRf: aws.sdk.kotlin.services.medialive.model.Eac3DrcRf? = null
        /**
         * When encoding 3/2 audio, setting to lfe enables the LFE channel
         */
        public var lfeControl: aws.sdk.kotlin.services.medialive.model.Eac3LfeControl? = null
        /**
         * When set to enabled, applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with codingMode32 coding mode.
         */
        public var lfeFilter: aws.sdk.kotlin.services.medialive.model.Eac3LfeFilter? = null
        /**
         * Left only/Right only center mix level. Only used for 3/2 coding mode.
         */
        public var loRoCenterMixLevel: kotlin.Double = 0.0
        /**
         * Left only/Right only surround mix level. Only used for 3/2 coding mode.
         */
        public var loRoSurroundMixLevel: kotlin.Double = 0.0
        /**
         * Left total/Right total center mix level. Only used for 3/2 coding mode.
         */
        public var ltRtCenterMixLevel: kotlin.Double = 0.0
        /**
         * Left total/Right total surround mix level. Only used for 3/2 coding mode.
         */
        public var ltRtSurroundMixLevel: kotlin.Double = 0.0
        /**
         * When set to followInput, encoder metadata will be sourced from the DD, DD+, or DolbyE decoder that supplied this audio data. If audio was not supplied from one of these streams, then the static metadata settings will be used.
         */
        public var metadataControl: aws.sdk.kotlin.services.medialive.model.Eac3MetadataControl? = null
        /**
         * When set to whenPossible, input DD+ audio will be passed through if it is present on the input. This detection is dynamic over the life of the transcode. Inputs that alternate between DD+ and non-DD+ content will have a consistent DD+ output as the system alternates between passthrough and encoding.
         */
        public var passthroughControl: aws.sdk.kotlin.services.medialive.model.Eac3PassthroughControl? = null
        /**
         * When set to shift90Degrees, applies a 90-degree phase shift to the surround channels. Only used for 3/2 coding mode.
         */
        public var phaseControl: aws.sdk.kotlin.services.medialive.model.Eac3PhaseControl? = null
        /**
         * Stereo downmix preference. Only used for 3/2 coding mode.
         */
        public var stereoDownmix: aws.sdk.kotlin.services.medialive.model.Eac3StereoDownmix? = null
        /**
         * When encoding 3/2 audio, sets whether an extra center back surround channel is matrix encoded into the left and right surround channels.
         */
        public var surroundExMode: aws.sdk.kotlin.services.medialive.model.Eac3SurroundExMode? = null
        /**
         * When encoding 2/0 audio, sets whether Dolby Surround is matrix encoded into the two channels.
         */
        public var surroundMode: aws.sdk.kotlin.services.medialive.model.Eac3SurroundMode? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.medialive.model.Eac3Settings) : this() {
            this.attenuationControl = x.attenuationControl
            this.bitrate = x.bitrate
            this.bitstreamMode = x.bitstreamMode
            this.codingMode = x.codingMode
            this.dcFilter = x.dcFilter
            this.dialnorm = x.dialnorm
            this.drcLine = x.drcLine
            this.drcRf = x.drcRf
            this.lfeControl = x.lfeControl
            this.lfeFilter = x.lfeFilter
            this.loRoCenterMixLevel = x.loRoCenterMixLevel
            this.loRoSurroundMixLevel = x.loRoSurroundMixLevel
            this.ltRtCenterMixLevel = x.ltRtCenterMixLevel
            this.ltRtSurroundMixLevel = x.ltRtSurroundMixLevel
            this.metadataControl = x.metadataControl
            this.passthroughControl = x.passthroughControl
            this.phaseControl = x.phaseControl
            this.stereoDownmix = x.stereoDownmix
            this.surroundExMode = x.surroundExMode
            this.surroundMode = x.surroundMode
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy