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

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

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

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



/**
 * Settings for HLS output groups
 */
public class HlsSettings private constructor(builder: Builder) {
    /**
     * Specifies the group to which the audio rendition belongs.
     */
    public val audioGroupId: kotlin.String? = builder.audioGroupId
    /**
     * Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream (M2TS) to create a file in an MPEG2-TS container. Keep the default value Automatic to create an audio-only file in a raw container. Regardless of the value that you specify here, if this output has video, the service will place the output into an MPEG2-TS container.
     */
    public val audioOnlyContainer: aws.sdk.kotlin.services.mediaconvert.model.HlsAudioOnlyContainer? = builder.audioOnlyContainer
    /**
     * List all the audio groups that are used with the video output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.
     */
    public val audioRenditionSets: kotlin.String? = builder.audioRenditionSets
    /**
     * Four types of audio-only tracks are supported: Audio-Only Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
     */
    public val audioTrackType: aws.sdk.kotlin.services.mediaconvert.model.HlsAudioTrackType? = builder.audioTrackType
    /**
     * Specify whether to flag this audio track as descriptive video service (DVS) in your HLS parent manifest. When you choose Flag, MediaConvert includes the parameter CHARACTERISTICS="public.accessibility.describes-video" in the EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag, MediaConvert leaves this parameter out. The DVS flag can help with accessibility on Apple devices. For more information, see the Apple documentation.
     */
    public val descriptiveVideoServiceFlag: aws.sdk.kotlin.services.mediaconvert.model.HlsDescriptiveVideoServiceFlag? = builder.descriptiveVideoServiceFlag
    /**
     * Choose Include to have MediaConvert generate a child manifest that lists only the I-frames for this rendition, in addition to your regular manifest for this rendition. You might use this manifest as part of a workflow that creates preview functions for your video. MediaConvert adds both the I-frame only child manifest and the regular child manifest to the parent manifest. When you don't need the I-frame only child manifest, keep the default value Exclude.
     */
    public val iFrameOnlyManifest: aws.sdk.kotlin.services.mediaconvert.model.HlsIFrameOnlyManifest? = builder.iFrameOnlyManifest
    /**
     * Use this setting to add an identifying string to the filename of each segment. The service adds this string between the name modifier and segment index number. You can use format identifiers in the string. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
     */
    public val segmentModifier: kotlin.String? = builder.segmentModifier

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

    override fun toString(): kotlin.String = buildString {
        append("HlsSettings(")
        append("audioGroupId=$audioGroupId,")
        append("audioOnlyContainer=$audioOnlyContainer,")
        append("audioRenditionSets=$audioRenditionSets,")
        append("audioTrackType=$audioTrackType,")
        append("descriptiveVideoServiceFlag=$descriptiveVideoServiceFlag,")
        append("iFrameOnlyManifest=$iFrameOnlyManifest,")
        append("segmentModifier=$segmentModifier")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = audioGroupId?.hashCode() ?: 0
        result = 31 * result + (audioOnlyContainer?.hashCode() ?: 0)
        result = 31 * result + (audioRenditionSets?.hashCode() ?: 0)
        result = 31 * result + (audioTrackType?.hashCode() ?: 0)
        result = 31 * result + (descriptiveVideoServiceFlag?.hashCode() ?: 0)
        result = 31 * result + (iFrameOnlyManifest?.hashCode() ?: 0)
        result = 31 * result + (segmentModifier?.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 HlsSettings

        if (audioGroupId != other.audioGroupId) return false
        if (audioOnlyContainer != other.audioOnlyContainer) return false
        if (audioRenditionSets != other.audioRenditionSets) return false
        if (audioTrackType != other.audioTrackType) return false
        if (descriptiveVideoServiceFlag != other.descriptiveVideoServiceFlag) return false
        if (iFrameOnlyManifest != other.iFrameOnlyManifest) return false
        if (segmentModifier != other.segmentModifier) return false

        return true
    }

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

    public class Builder {
        /**
         * Specifies the group to which the audio rendition belongs.
         */
        public var audioGroupId: kotlin.String? = null
        /**
         * Use this setting only in audio-only outputs. Choose MPEG-2 Transport Stream (M2TS) to create a file in an MPEG2-TS container. Keep the default value Automatic to create an audio-only file in a raw container. Regardless of the value that you specify here, if this output has video, the service will place the output into an MPEG2-TS container.
         */
        public var audioOnlyContainer: aws.sdk.kotlin.services.mediaconvert.model.HlsAudioOnlyContainer? = null
        /**
         * List all the audio groups that are used with the video output stream. Input all the audio GROUP-IDs that are associated to the video, separate by ','.
         */
        public var audioRenditionSets: kotlin.String? = null
        /**
         * Four types of audio-only tracks are supported: Audio-Only Variant Stream The client can play back this audio-only stream instead of video in low-bandwidth scenarios. Represented as an EXT-X-STREAM-INF in the HLS manifest. Alternate Audio, Auto Select, Default Alternate rendition that the client should try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=YES, AUTOSELECT=YES Alternate Audio, Auto Select, Not Default Alternate rendition that the client may try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=YES Alternate Audio, not Auto Select Alternate rendition that the client will not try to play back by default. Represented as an EXT-X-MEDIA in the HLS manifest with DEFAULT=NO, AUTOSELECT=NO
         */
        public var audioTrackType: aws.sdk.kotlin.services.mediaconvert.model.HlsAudioTrackType? = null
        /**
         * Specify whether to flag this audio track as descriptive video service (DVS) in your HLS parent manifest. When you choose Flag, MediaConvert includes the parameter CHARACTERISTICS="public.accessibility.describes-video" in the EXT-X-MEDIA entry for this track. When you keep the default choice, Don't flag, MediaConvert leaves this parameter out. The DVS flag can help with accessibility on Apple devices. For more information, see the Apple documentation.
         */
        public var descriptiveVideoServiceFlag: aws.sdk.kotlin.services.mediaconvert.model.HlsDescriptiveVideoServiceFlag? = null
        /**
         * Choose Include to have MediaConvert generate a child manifest that lists only the I-frames for this rendition, in addition to your regular manifest for this rendition. You might use this manifest as part of a workflow that creates preview functions for your video. MediaConvert adds both the I-frame only child manifest and the regular child manifest to the parent manifest. When you don't need the I-frame only child manifest, keep the default value Exclude.
         */
        public var iFrameOnlyManifest: aws.sdk.kotlin.services.mediaconvert.model.HlsIFrameOnlyManifest? = null
        /**
         * Use this setting to add an identifying string to the filename of each segment. The service adds this string between the name modifier and segment index number. You can use format identifiers in the string. For more information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/using-variables-in-your-job-settings.html
         */
        public var segmentModifier: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.mediaconvert.model.HlsSettings) : this() {
            this.audioGroupId = x.audioGroupId
            this.audioOnlyContainer = x.audioOnlyContainer
            this.audioRenditionSets = x.audioRenditionSets
            this.audioTrackType = x.audioTrackType
            this.descriptiveVideoServiceFlag = x.descriptiveVideoServiceFlag
            this.iFrameOnlyManifest = x.iFrameOnlyManifest
            this.segmentModifier = x.segmentModifier
        }

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy