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

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

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

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



/**
 * These settings relate to your QuickTime MOV output container.
 */
public class MovSettings private constructor(builder: Builder) {
    /**
     * When enabled, include 'clap' atom if appropriate for the video output settings.
     */
    public val clapAtom: aws.sdk.kotlin.services.mediaconvert.model.MovClapAtom? = builder.clapAtom
    /**
     * When enabled, file composition times will start at zero, composition times in the 'ctts' (composition time to sample) box for B-frames will be negative, and a 'cslg' (composition shift least greatest) box will be included per 14496-1 amendment 1. This improves compatibility with Apple players and tools.
     */
    public val cslgAtom: aws.sdk.kotlin.services.mediaconvert.model.MovCslgAtom? = builder.cslgAtom
    /**
     * When set to XDCAM, writes MPEG2 video streams into the QuickTime file using XDCAM fourcc codes. This increases compatibility with Apple editors and players, but may decrease compatibility with other players. Only applicable when the video codec is MPEG2.
     */
    public val mpeg2FourCcControl: aws.sdk.kotlin.services.mediaconvert.model.MovMpeg2FourCcControl? = builder.mpeg2FourCcControl
    /**
     * Unless you need Omneon compatibility: Keep the default value, None. To make this output compatible with Omneon: Choose Omneon. When you do, MediaConvert increases the length of the 'elst' edit list atom. Note that this might cause file rejections when a recipient of the output file doesn't expect this extra padding.
     */
    public val paddingControl: aws.sdk.kotlin.services.mediaconvert.model.MovPaddingControl? = builder.paddingControl
    /**
     * Always keep the default value (SELF_CONTAINED) for this setting.
     */
    public val reference: aws.sdk.kotlin.services.mediaconvert.model.MovReference? = builder.reference

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

    override fun toString(): kotlin.String = buildString {
        append("MovSettings(")
        append("clapAtom=$clapAtom,")
        append("cslgAtom=$cslgAtom,")
        append("mpeg2FourCcControl=$mpeg2FourCcControl,")
        append("paddingControl=$paddingControl,")
        append("reference=$reference")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = clapAtom?.hashCode() ?: 0
        result = 31 * result + (cslgAtom?.hashCode() ?: 0)
        result = 31 * result + (mpeg2FourCcControl?.hashCode() ?: 0)
        result = 31 * result + (paddingControl?.hashCode() ?: 0)
        result = 31 * result + (reference?.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 MovSettings

        if (clapAtom != other.clapAtom) return false
        if (cslgAtom != other.cslgAtom) return false
        if (mpeg2FourCcControl != other.mpeg2FourCcControl) return false
        if (paddingControl != other.paddingControl) return false
        if (reference != other.reference) return false

        return true
    }

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

    public class Builder {
        /**
         * When enabled, include 'clap' atom if appropriate for the video output settings.
         */
        public var clapAtom: aws.sdk.kotlin.services.mediaconvert.model.MovClapAtom? = null
        /**
         * When enabled, file composition times will start at zero, composition times in the 'ctts' (composition time to sample) box for B-frames will be negative, and a 'cslg' (composition shift least greatest) box will be included per 14496-1 amendment 1. This improves compatibility with Apple players and tools.
         */
        public var cslgAtom: aws.sdk.kotlin.services.mediaconvert.model.MovCslgAtom? = null
        /**
         * When set to XDCAM, writes MPEG2 video streams into the QuickTime file using XDCAM fourcc codes. This increases compatibility with Apple editors and players, but may decrease compatibility with other players. Only applicable when the video codec is MPEG2.
         */
        public var mpeg2FourCcControl: aws.sdk.kotlin.services.mediaconvert.model.MovMpeg2FourCcControl? = null
        /**
         * Unless you need Omneon compatibility: Keep the default value, None. To make this output compatible with Omneon: Choose Omneon. When you do, MediaConvert increases the length of the 'elst' edit list atom. Note that this might cause file rejections when a recipient of the output file doesn't expect this extra padding.
         */
        public var paddingControl: aws.sdk.kotlin.services.mediaconvert.model.MovPaddingControl? = null
        /**
         * Always keep the default value (SELF_CONTAINED) for this setting.
         */
        public var reference: aws.sdk.kotlin.services.mediaconvert.model.MovReference? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediaconvert.model.MovSettings) : this() {
            this.clapAtom = x.clapAtom
            this.cslgAtom = x.cslgAtom
            this.mpeg2FourCcControl = x.mpeg2FourCcControl
            this.paddingControl = x.paddingControl
            this.reference = x.reference
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy