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

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

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

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



/**
 * Fec Output Settings
 */
public class FecOutputSettings private constructor(builder: Builder) {
    /**
     * Parameter D from SMPTE 2022-1. The height of the FEC protection matrix. The number of transport stream packets per column error correction packet. Must be between 4 and 20, inclusive.
     */
    public val columnDepth: kotlin.Int = builder.columnDepth
    /**
     * Enables column only or column and row based FEC
     */
    public val includeFec: aws.sdk.kotlin.services.medialive.model.FecOutputIncludeFec? = builder.includeFec
    /**
     * Parameter L from SMPTE 2022-1. The width of the FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values increase robustness. If Row FEC is used, then this is the number of transport stream packets per row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
     */
    public val rowLength: kotlin.Int = builder.rowLength

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

    override fun toString(): kotlin.String = buildString {
        append("FecOutputSettings(")
        append("columnDepth=$columnDepth,")
        append("includeFec=$includeFec,")
        append("rowLength=$rowLength")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = columnDepth
        result = 31 * result + (includeFec?.hashCode() ?: 0)
        result = 31 * result + (rowLength)
        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 FecOutputSettings

        if (columnDepth != other.columnDepth) return false
        if (includeFec != other.includeFec) return false
        if (rowLength != other.rowLength) return false

        return true
    }

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

    public class Builder {
        /**
         * Parameter D from SMPTE 2022-1. The height of the FEC protection matrix. The number of transport stream packets per column error correction packet. Must be between 4 and 20, inclusive.
         */
        public var columnDepth: kotlin.Int = 0
        /**
         * Enables column only or column and row based FEC
         */
        public var includeFec: aws.sdk.kotlin.services.medialive.model.FecOutputIncludeFec? = null
        /**
         * Parameter L from SMPTE 2022-1. The width of the FEC protection matrix. Must be between 1 and 20, inclusive. If only Column FEC is used, then larger values increase robustness. If Row FEC is used, then this is the number of transport stream packets per row error correction packet, and the value must be between 4 and 20, inclusive, if includeFec is columnAndRow. If includeFec is column, this value must be 1 to 20, inclusive.
         */
        public var rowLength: kotlin.Int = 0

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.medialive.model.FecOutputSettings) : this() {
            this.columnDepth = x.columnDepth
            this.includeFec = x.includeFec
            this.rowLength = x.rowLength
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy