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

commonMain.aws.sdk.kotlin.services.mediaconnect.model.FmtpRequest.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.mediaconnect.model



/**
 * The settings that you want to use to define the media stream.
 */
class FmtpRequest private constructor(builder: Builder) {
    /**
     * The format of the audio channel.
     */
    val channelOrder: kotlin.String? = builder.channelOrder
    /**
     * The format that is used for the representation of color.
     */
    val colorimetry: aws.sdk.kotlin.services.mediaconnect.model.Colorimetry? = builder.colorimetry
    /**
     * The frame rate for the video stream, in frames/second. For example: 60000/1001. If you specify a whole number, MediaConnect uses a ratio of N/1. For example, if you specify 60, MediaConnect uses 60/1 as the exactFramerate.
     */
    val exactFramerate: kotlin.String? = builder.exactFramerate
    /**
     * The pixel aspect ratio (PAR) of the video.
     */
    val par: kotlin.String? = builder.par
    /**
     * The encoding range of the video.
     */
    val range: aws.sdk.kotlin.services.mediaconnect.model.Range? = builder.range
    /**
     * The type of compression that was used to smooth the video’s appearance.
     */
    val scanMode: aws.sdk.kotlin.services.mediaconnect.model.ScanMode? = builder.scanMode
    /**
     * The transfer characteristic system (TCS) that is used in the video.
     */
    val tcs: aws.sdk.kotlin.services.mediaconnect.model.Tcs? = builder.tcs

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

    override fun toString(): kotlin.String = buildString {
        append("FmtpRequest(")
        append("channelOrder=$channelOrder,")
        append("colorimetry=$colorimetry,")
        append("exactFramerate=$exactFramerate,")
        append("par=$par,")
        append("range=$range,")
        append("scanMode=$scanMode,")
        append("tcs=$tcs)")
    }

    override fun hashCode(): kotlin.Int {
        var result = channelOrder?.hashCode() ?: 0
        result = 31 * result + (colorimetry?.hashCode() ?: 0)
        result = 31 * result + (exactFramerate?.hashCode() ?: 0)
        result = 31 * result + (par?.hashCode() ?: 0)
        result = 31 * result + (range?.hashCode() ?: 0)
        result = 31 * result + (scanMode?.hashCode() ?: 0)
        result = 31 * result + (tcs?.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 FmtpRequest

        if (channelOrder != other.channelOrder) return false
        if (colorimetry != other.colorimetry) return false
        if (exactFramerate != other.exactFramerate) return false
        if (par != other.par) return false
        if (range != other.range) return false
        if (scanMode != other.scanMode) return false
        if (tcs != other.tcs) return false

        return true
    }

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

    class Builder {
        /**
         * The format of the audio channel.
         */
        var channelOrder: kotlin.String? = null
        /**
         * The format that is used for the representation of color.
         */
        var colorimetry: aws.sdk.kotlin.services.mediaconnect.model.Colorimetry? = null
        /**
         * The frame rate for the video stream, in frames/second. For example: 60000/1001. If you specify a whole number, MediaConnect uses a ratio of N/1. For example, if you specify 60, MediaConnect uses 60/1 as the exactFramerate.
         */
        var exactFramerate: kotlin.String? = null
        /**
         * The pixel aspect ratio (PAR) of the video.
         */
        var par: kotlin.String? = null
        /**
         * The encoding range of the video.
         */
        var range: aws.sdk.kotlin.services.mediaconnect.model.Range? = null
        /**
         * The type of compression that was used to smooth the video’s appearance.
         */
        var scanMode: aws.sdk.kotlin.services.mediaconnect.model.ScanMode? = null
        /**
         * The transfer characteristic system (TCS) that is used in the video.
         */
        var tcs: aws.sdk.kotlin.services.mediaconnect.model.Tcs? = null

        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediaconnect.model.FmtpRequest) : this() {
            this.channelOrder = x.channelOrder
            this.colorimetry = x.colorimetry
            this.exactFramerate = x.exactFramerate
            this.par = x.par
            this.range = x.range
            this.scanMode = x.scanMode
            this.tcs = x.tcs
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy