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

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

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

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



/**
 * Global Configuration
 */
public class GlobalConfiguration private constructor(builder: Builder) {
    /**
     * Value to set the initial audio gain for the Live Event.
     */
    public val initialAudioGain: kotlin.Int = builder.initialAudioGain
    /**
     * Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input. When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).
     */
    public val inputEndAction: aws.sdk.kotlin.services.medialive.model.GlobalConfigurationInputEndAction? = builder.inputEndAction
    /**
     * Settings for system actions when input is lost.
     */
    public val inputLossBehavior: aws.sdk.kotlin.services.medialive.model.InputLossBehavior? = builder.inputLossBehavior
    /**
     * Indicates how MediaLive pipelines are synchronized. PIPELINE_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the other. EPOCH_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the Unix epoch.
     */
    public val outputLockingMode: aws.sdk.kotlin.services.medialive.model.GlobalConfigurationOutputLockingMode? = builder.outputLockingMode
    /**
     * Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock (which optionally may be locked to another source via NTP) or should be locked to the clock of the source that is providing the input stream.
     */
    public val outputTimingSource: aws.sdk.kotlin.services.medialive.model.GlobalConfigurationOutputTimingSource? = builder.outputTimingSource
    /**
     * Adjusts video input buffer for streams with very low video framerates. This is commonly set to enabled for music channels with less than one video frame per second.
     */
    public val supportLowFramerateInputs: aws.sdk.kotlin.services.medialive.model.GlobalConfigurationLowFramerateInputs? = builder.supportLowFramerateInputs

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

    override fun toString(): kotlin.String = buildString {
        append("GlobalConfiguration(")
        append("initialAudioGain=$initialAudioGain,")
        append("inputEndAction=$inputEndAction,")
        append("inputLossBehavior=$inputLossBehavior,")
        append("outputLockingMode=$outputLockingMode,")
        append("outputTimingSource=$outputTimingSource,")
        append("supportLowFramerateInputs=$supportLowFramerateInputs")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = initialAudioGain
        result = 31 * result + (inputEndAction?.hashCode() ?: 0)
        result = 31 * result + (inputLossBehavior?.hashCode() ?: 0)
        result = 31 * result + (outputLockingMode?.hashCode() ?: 0)
        result = 31 * result + (outputTimingSource?.hashCode() ?: 0)
        result = 31 * result + (supportLowFramerateInputs?.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 GlobalConfiguration

        if (initialAudioGain != other.initialAudioGain) return false
        if (inputEndAction != other.inputEndAction) return false
        if (inputLossBehavior != other.inputLossBehavior) return false
        if (outputLockingMode != other.outputLockingMode) return false
        if (outputTimingSource != other.outputTimingSource) return false
        if (supportLowFramerateInputs != other.supportLowFramerateInputs) return false

        return true
    }

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

    public class Builder {
        /**
         * Value to set the initial audio gain for the Live Event.
         */
        public var initialAudioGain: kotlin.Int = 0
        /**
         * Indicates the action to take when the current input completes (e.g. end-of-file). When switchAndLoopInputs is configured the encoder will restart at the beginning of the first input. When "none" is configured the encoder will transcode either black, a solid color, or a user specified slate images per the "Input Loss Behavior" configuration until the next input switch occurs (which is controlled through the Channel Schedule API).
         */
        public var inputEndAction: aws.sdk.kotlin.services.medialive.model.GlobalConfigurationInputEndAction? = null
        /**
         * Settings for system actions when input is lost.
         */
        public var inputLossBehavior: aws.sdk.kotlin.services.medialive.model.InputLossBehavior? = null
        /**
         * Indicates how MediaLive pipelines are synchronized. PIPELINE_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the other. EPOCH_LOCKING - MediaLive will attempt to synchronize the output of each pipeline to the Unix epoch.
         */
        public var outputLockingMode: aws.sdk.kotlin.services.medialive.model.GlobalConfigurationOutputLockingMode? = null
        /**
         * Indicates whether the rate of frames emitted by the Live encoder should be paced by its system clock (which optionally may be locked to another source via NTP) or should be locked to the clock of the source that is providing the input stream.
         */
        public var outputTimingSource: aws.sdk.kotlin.services.medialive.model.GlobalConfigurationOutputTimingSource? = null
        /**
         * Adjusts video input buffer for streams with very low video framerates. This is commonly set to enabled for music channels with less than one video frame per second.
         */
        public var supportLowFramerateInputs: aws.sdk.kotlin.services.medialive.model.GlobalConfigurationLowFramerateInputs? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.medialive.model.GlobalConfiguration) : this() {
            this.initialAudioGain = x.initialAudioGain
            this.inputEndAction = x.inputEndAction
            this.inputLossBehavior = x.inputLossBehavior
            this.outputLockingMode = x.outputLockingMode
            this.outputTimingSource = x.outputTimingSource
            this.supportLowFramerateInputs = x.supportLowFramerateInputs
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.medialive.model.InputLossBehavior] inside the given [block]
         */
        public fun inputLossBehavior(block: aws.sdk.kotlin.services.medialive.model.InputLossBehavior.Builder.() -> kotlin.Unit) {
            this.inputLossBehavior = aws.sdk.kotlin.services.medialive.model.InputLossBehavior.invoke(block)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy