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

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

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

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



/**
 * The video configuration for each program in a multiplex.
 */
public class MultiplexVideoSettings private constructor(builder: Builder) {
    /**
     * The constant bitrate configuration for the video encode. When this field is defined, StatmuxSettings must be undefined.
     */
    public val constantBitrate: kotlin.Int = builder.constantBitrate
    /**
     * Statmux rate control settings. When this field is defined, ConstantBitrate must be undefined.
     */
    public val statmuxSettings: aws.sdk.kotlin.services.medialive.model.MultiplexStatmuxVideoSettings? = builder.statmuxSettings

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

    override fun toString(): kotlin.String = buildString {
        append("MultiplexVideoSettings(")
        append("constantBitrate=$constantBitrate,")
        append("statmuxSettings=$statmuxSettings")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = constantBitrate
        result = 31 * result + (statmuxSettings?.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 MultiplexVideoSettings

        if (constantBitrate != other.constantBitrate) return false
        if (statmuxSettings != other.statmuxSettings) return false

        return true
    }

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

    public class Builder {
        /**
         * The constant bitrate configuration for the video encode. When this field is defined, StatmuxSettings must be undefined.
         */
        public var constantBitrate: kotlin.Int = 0
        /**
         * Statmux rate control settings. When this field is defined, ConstantBitrate must be undefined.
         */
        public var statmuxSettings: aws.sdk.kotlin.services.medialive.model.MultiplexStatmuxVideoSettings? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.medialive.model.MultiplexVideoSettings) : this() {
            this.constantBitrate = x.constantBitrate
            this.statmuxSettings = x.statmuxSettings
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy