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

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

There is a newer version: 1.3.34
Show newest version
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.mediaconvert.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Required when you set Codec to the value EAC3.
 */
public class Eac3Settings private constructor(builder: Builder) {
    /**
     * If set to ATTENUATE_3_DB, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode.
     */
    public val attenuationControl: aws.sdk.kotlin.services.mediaconvert.model.Eac3AttenuationControl? = builder.attenuationControl
    /**
     * Specify the average bitrate in bits per second. The bitrate that you specify must be a multiple of 8000 within the allowed minimum and maximum values. Leave blank to use the default bitrate for the coding mode you select according ETSI TS 102 366. Valid bitrates for coding mode 1/0: Default: 96000. Minimum: 32000. Maximum: 3024000. Valid bitrates for coding mode 2/0: Default: 192000. Minimum: 96000. Maximum: 3024000. Valid bitrates for coding mode 3/2: Default: 384000. Minimum: 192000. Maximum: 3024000.
     */
    public val bitrate: kotlin.Int? = builder.bitrate
    /**
     * Specify the bitstream mode for the E-AC-3 stream that the encoder emits. For more information about the EAC3 bitstream mode, see ATSC A/52-2012 (Annex E).
     */
    public val bitstreamMode: aws.sdk.kotlin.services.mediaconvert.model.Eac3BitstreamMode? = builder.bitstreamMode
    /**
     * Dolby Digital Plus coding mode. Determines number of channels.
     */
    public val codingMode: aws.sdk.kotlin.services.mediaconvert.model.Eac3CodingMode? = builder.codingMode
    /**
     * Activates a DC highpass filter for all input channels.
     */
    public val dcFilter: aws.sdk.kotlin.services.mediaconvert.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
    /**
     * Choose the Dolby Digital dynamic range control (DRC) profile that MediaConvert uses when encoding the metadata in the Dolby Digital stream for the line operating mode. Related setting: When you use this setting, MediaConvert ignores any value you provide for Dynamic range compression profile. For information about the Dolby Digital DRC operating modes and profiles, see the Dynamic Range Control chapter of the Dolby Metadata Guide at https://developer.dolby.com/globalassets/professional/documents/dolby-metadata-guide.pdf.
     */
    public val dynamicRangeCompressionLine: aws.sdk.kotlin.services.mediaconvert.model.Eac3DynamicRangeCompressionLine? = builder.dynamicRangeCompressionLine
    /**
     * Choose the Dolby Digital dynamic range control (DRC) profile that MediaConvert uses when encoding the metadata in the Dolby Digital stream for the RF operating mode. Related setting: When you use this setting, MediaConvert ignores any value you provide for Dynamic range compression profile. For information about the Dolby Digital DRC operating modes and profiles, see the Dynamic Range Control chapter of the Dolby Metadata Guide at https://developer.dolby.com/globalassets/professional/documents/dolby-metadata-guide.pdf.
     */
    public val dynamicRangeCompressionRf: aws.sdk.kotlin.services.mediaconvert.model.Eac3DynamicRangeCompressionRf? = builder.dynamicRangeCompressionRf
    /**
     * When encoding 3/2 audio, controls whether the LFE channel is enabled
     */
    public val lfeControl: aws.sdk.kotlin.services.mediaconvert.model.Eac3LfeControl? = builder.lfeControl
    /**
     * Applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with 3_2_LFE coding mode.
     */
    public val lfeFilter: aws.sdk.kotlin.services.mediaconvert.model.Eac3LfeFilter? = builder.lfeFilter
    /**
     * Specify a value for the following Dolby Digital Plus setting: Left only/Right only center mix. MediaConvert uses this value for downmixing. How the service uses this value depends on the value that you choose for Stereo downmix. Valid values: 3.0, 1.5, 0.0, -1.5, -3.0, -4.5, -6.0, and -60. The value -60 mutes the channel. This setting applies only if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Left only/Right only center.
     */
    public val loRoCenterMixLevel: kotlin.Double? = builder.loRoCenterMixLevel
    /**
     * Specify a value for the following Dolby Digital Plus setting: Left only/Right only. MediaConvert uses this value for downmixing. How the service uses this value depends on the value that you choose for Stereo downmix. Valid values: -1.5, -3.0, -4.5, -6.0, and -60. The value -60 mutes the channel. This setting applies only if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Left only/Right only surround.
     */
    public val loRoSurroundMixLevel: kotlin.Double? = builder.loRoSurroundMixLevel
    /**
     * Specify a value for the following Dolby Digital Plus setting: Left total/Right total center mix. MediaConvert uses this value for downmixing. How the service uses this value depends on the value that you choose for Stereo downmix. Valid values: 3.0, 1.5, 0.0, -1.5, -3.0, -4.5, -6.0, and -60. The value -60 mutes the channel. This setting applies only if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Left total/Right total center.
     */
    public val ltRtCenterMixLevel: kotlin.Double? = builder.ltRtCenterMixLevel
    /**
     * Specify a value for the following Dolby Digital Plus setting: Left total/Right total surround mix. MediaConvert uses this value for downmixing. How the service uses this value depends on the value that you choose for Stereo downmix. Valid values: -1.5, -3.0, -4.5, -6.0, and -60. The value -60 mutes the channel. This setting applies only if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Left total/Right total surround.
     */
    public val ltRtSurroundMixLevel: kotlin.Double? = builder.ltRtSurroundMixLevel
    /**
     * When set to FOLLOW_INPUT, 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.mediaconvert.model.Eac3MetadataControl? = builder.metadataControl
    /**
     * When set to WHEN_POSSIBLE, 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.mediaconvert.model.Eac3PassthroughControl? = builder.passthroughControl
    /**
     * Controls the amount of phase-shift applied to the surround channels. Only used for 3/2 coding mode.
     */
    public val phaseControl: aws.sdk.kotlin.services.mediaconvert.model.Eac3PhaseControl? = builder.phaseControl
    /**
     * This value is always 48000. It represents the sample rate in Hz.
     */
    public val sampleRate: kotlin.Int? = builder.sampleRate
    /**
     * Choose how the service does stereo downmixing. This setting only applies if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Stereo downmix.
     */
    public val stereoDownmix: aws.sdk.kotlin.services.mediaconvert.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.mediaconvert.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.mediaconvert.model.Eac3SurroundMode? = builder.surroundMode

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.mediaconvert.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("dynamicRangeCompressionLine=$dynamicRangeCompressionLine,")
        append("dynamicRangeCompressionRf=$dynamicRangeCompressionRf,")
        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("sampleRate=$sampleRate,")
        append("stereoDownmix=$stereoDownmix,")
        append("surroundExMode=$surroundExMode,")
        append("surroundMode=$surroundMode")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = attenuationControl?.hashCode() ?: 0
        result = 31 * result + (bitrate ?: 0)
        result = 31 * result + (bitstreamMode?.hashCode() ?: 0)
        result = 31 * result + (codingMode?.hashCode() ?: 0)
        result = 31 * result + (dcFilter?.hashCode() ?: 0)
        result = 31 * result + (dialnorm ?: 0)
        result = 31 * result + (dynamicRangeCompressionLine?.hashCode() ?: 0)
        result = 31 * result + (dynamicRangeCompressionRf?.hashCode() ?: 0)
        result = 31 * result + (lfeControl?.hashCode() ?: 0)
        result = 31 * result + (lfeFilter?.hashCode() ?: 0)
        result = 31 * result + (loRoCenterMixLevel?.hashCode() ?: 0)
        result = 31 * result + (loRoSurroundMixLevel?.hashCode() ?: 0)
        result = 31 * result + (ltRtCenterMixLevel?.hashCode() ?: 0)
        result = 31 * result + (ltRtSurroundMixLevel?.hashCode() ?: 0)
        result = 31 * result + (metadataControl?.hashCode() ?: 0)
        result = 31 * result + (passthroughControl?.hashCode() ?: 0)
        result = 31 * result + (phaseControl?.hashCode() ?: 0)
        result = 31 * result + (sampleRate ?: 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 (dynamicRangeCompressionLine != other.dynamicRangeCompressionLine) return false
        if (dynamicRangeCompressionRf != other.dynamicRangeCompressionRf) return false
        if (lfeControl != other.lfeControl) return false
        if (lfeFilter != other.lfeFilter) return false
        if (!(loRoCenterMixLevel?.equals(other.loRoCenterMixLevel) ?: (other.loRoCenterMixLevel == null))) return false
        if (!(loRoSurroundMixLevel?.equals(other.loRoSurroundMixLevel) ?: (other.loRoSurroundMixLevel == null))) return false
        if (!(ltRtCenterMixLevel?.equals(other.ltRtCenterMixLevel) ?: (other.ltRtCenterMixLevel == null))) return false
        if (!(ltRtSurroundMixLevel?.equals(other.ltRtSurroundMixLevel) ?: (other.ltRtSurroundMixLevel == null))) return false
        if (metadataControl != other.metadataControl) return false
        if (passthroughControl != other.passthroughControl) return false
        if (phaseControl != other.phaseControl) return false
        if (sampleRate != other.sampleRate) 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.mediaconvert.model.Eac3Settings = Builder(this).apply(block).build()

    @SdkDsl
    public class Builder {
        /**
         * If set to ATTENUATE_3_DB, applies a 3 dB attenuation to the surround channels. Only used for 3/2 coding mode.
         */
        public var attenuationControl: aws.sdk.kotlin.services.mediaconvert.model.Eac3AttenuationControl? = null
        /**
         * Specify the average bitrate in bits per second. The bitrate that you specify must be a multiple of 8000 within the allowed minimum and maximum values. Leave blank to use the default bitrate for the coding mode you select according ETSI TS 102 366. Valid bitrates for coding mode 1/0: Default: 96000. Minimum: 32000. Maximum: 3024000. Valid bitrates for coding mode 2/0: Default: 192000. Minimum: 96000. Maximum: 3024000. Valid bitrates for coding mode 3/2: Default: 384000. Minimum: 192000. Maximum: 3024000.
         */
        public var bitrate: kotlin.Int? = null
        /**
         * Specify the bitstream mode for the E-AC-3 stream that the encoder emits. For more information about the EAC3 bitstream mode, see ATSC A/52-2012 (Annex E).
         */
        public var bitstreamMode: aws.sdk.kotlin.services.mediaconvert.model.Eac3BitstreamMode? = null
        /**
         * Dolby Digital Plus coding mode. Determines number of channels.
         */
        public var codingMode: aws.sdk.kotlin.services.mediaconvert.model.Eac3CodingMode? = null
        /**
         * Activates a DC highpass filter for all input channels.
         */
        public var dcFilter: aws.sdk.kotlin.services.mediaconvert.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? = null
        /**
         * Choose the Dolby Digital dynamic range control (DRC) profile that MediaConvert uses when encoding the metadata in the Dolby Digital stream for the line operating mode. Related setting: When you use this setting, MediaConvert ignores any value you provide for Dynamic range compression profile. For information about the Dolby Digital DRC operating modes and profiles, see the Dynamic Range Control chapter of the Dolby Metadata Guide at https://developer.dolby.com/globalassets/professional/documents/dolby-metadata-guide.pdf.
         */
        public var dynamicRangeCompressionLine: aws.sdk.kotlin.services.mediaconvert.model.Eac3DynamicRangeCompressionLine? = null
        /**
         * Choose the Dolby Digital dynamic range control (DRC) profile that MediaConvert uses when encoding the metadata in the Dolby Digital stream for the RF operating mode. Related setting: When you use this setting, MediaConvert ignores any value you provide for Dynamic range compression profile. For information about the Dolby Digital DRC operating modes and profiles, see the Dynamic Range Control chapter of the Dolby Metadata Guide at https://developer.dolby.com/globalassets/professional/documents/dolby-metadata-guide.pdf.
         */
        public var dynamicRangeCompressionRf: aws.sdk.kotlin.services.mediaconvert.model.Eac3DynamicRangeCompressionRf? = null
        /**
         * When encoding 3/2 audio, controls whether the LFE channel is enabled
         */
        public var lfeControl: aws.sdk.kotlin.services.mediaconvert.model.Eac3LfeControl? = null
        /**
         * Applies a 120Hz lowpass filter to the LFE channel prior to encoding. Only valid with 3_2_LFE coding mode.
         */
        public var lfeFilter: aws.sdk.kotlin.services.mediaconvert.model.Eac3LfeFilter? = null
        /**
         * Specify a value for the following Dolby Digital Plus setting: Left only/Right only center mix. MediaConvert uses this value for downmixing. How the service uses this value depends on the value that you choose for Stereo downmix. Valid values: 3.0, 1.5, 0.0, -1.5, -3.0, -4.5, -6.0, and -60. The value -60 mutes the channel. This setting applies only if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Left only/Right only center.
         */
        public var loRoCenterMixLevel: kotlin.Double? = null
        /**
         * Specify a value for the following Dolby Digital Plus setting: Left only/Right only. MediaConvert uses this value for downmixing. How the service uses this value depends on the value that you choose for Stereo downmix. Valid values: -1.5, -3.0, -4.5, -6.0, and -60. The value -60 mutes the channel. This setting applies only if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Left only/Right only surround.
         */
        public var loRoSurroundMixLevel: kotlin.Double? = null
        /**
         * Specify a value for the following Dolby Digital Plus setting: Left total/Right total center mix. MediaConvert uses this value for downmixing. How the service uses this value depends on the value that you choose for Stereo downmix. Valid values: 3.0, 1.5, 0.0, -1.5, -3.0, -4.5, -6.0, and -60. The value -60 mutes the channel. This setting applies only if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Left total/Right total center.
         */
        public var ltRtCenterMixLevel: kotlin.Double? = null
        /**
         * Specify a value for the following Dolby Digital Plus setting: Left total/Right total surround mix. MediaConvert uses this value for downmixing. How the service uses this value depends on the value that you choose for Stereo downmix. Valid values: -1.5, -3.0, -4.5, -6.0, and -60. The value -60 mutes the channel. This setting applies only if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Left total/Right total surround.
         */
        public var ltRtSurroundMixLevel: kotlin.Double? = null
        /**
         * When set to FOLLOW_INPUT, 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.mediaconvert.model.Eac3MetadataControl? = null
        /**
         * When set to WHEN_POSSIBLE, 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.mediaconvert.model.Eac3PassthroughControl? = null
        /**
         * Controls the amount of phase-shift applied to the surround channels. Only used for 3/2 coding mode.
         */
        public var phaseControl: aws.sdk.kotlin.services.mediaconvert.model.Eac3PhaseControl? = null
        /**
         * This value is always 48000. It represents the sample rate in Hz.
         */
        public var sampleRate: kotlin.Int? = null
        /**
         * Choose how the service does stereo downmixing. This setting only applies if you keep the default value of 3/2 - L, R, C, Ls, Rs for the setting Coding mode. If you choose a different value for Coding mode, the service ignores Stereo downmix.
         */
        public var stereoDownmix: aws.sdk.kotlin.services.mediaconvert.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.mediaconvert.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.mediaconvert.model.Eac3SurroundMode? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediaconvert.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.dynamicRangeCompressionLine = x.dynamicRangeCompressionLine
            this.dynamicRangeCompressionRf = x.dynamicRangeCompressionRf
            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.sampleRate = x.sampleRate
            this.stereoDownmix = x.stereoDownmix
            this.surroundExMode = x.surroundExMode
            this.surroundMode = x.surroundMode
        }

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

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy