Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azurenative.media.kotlin.inputs
import com.pulumi.azurenative.media.inputs.H265VideoArgs.builder
import com.pulumi.azurenative.media.kotlin.enums.H265Complexity
import com.pulumi.azurenative.media.kotlin.enums.StretchMode
import com.pulumi.azurenative.media.kotlin.enums.VideoSyncMode
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Describes all the properties for encoding a video with the H.265 codec.
* @property complexity Tells the encoder how to choose its encoding settings. Quality will provide for a higher compression ratio but at a higher cost and longer compute time. Speed will produce a relatively larger file but is faster and more economical. The default value is Balanced.
* @property keyFrameInterval The distance between two key frames. The value should be non-zero in the range [0.5, 20] seconds, specified in ISO 8601 format. The default is 2 seconds(PT2S). Note that this setting is ignored if VideoSyncMode.Passthrough is set, where the KeyFrameInterval value will follow the input source setting.
* @property label An optional label for the codec. The label can be used to control muxing behavior.
* @property layers The collection of output H.265 layers to be produced by the encoder.
* @property odataType The discriminator for derived types.
* Expected value is '#Microsoft.Media.H265Video'.
* @property sceneChangeDetection Specifies whether or not the encoder should insert key frames at scene changes. If not specified, the default is false. This flag should be set to true only when the encoder is being configured to produce a single output video.
* @property stretchMode The resizing mode - how the input video will be resized to fit the desired output resolution(s). Default is AutoSize
* @property syncMode The Video Sync Mode
*/
public data class H265VideoArgs(
public val complexity: Output>? = null,
public val keyFrameInterval: Output? = null,
public val label: Output? = null,
public val layers: Output>? = null,
public val odataType: Output,
public val sceneChangeDetection: Output? = null,
public val stretchMode: Output>? = null,
public val syncMode: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azurenative.media.inputs.H265VideoArgs =
com.pulumi.azurenative.media.inputs.H265VideoArgs.builder()
.complexity(
complexity?.applyValue({ args0 ->
args0.transform({ args0 -> args0 }, { args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.keyFrameInterval(keyFrameInterval?.applyValue({ args0 -> args0 }))
.label(label?.applyValue({ args0 -> args0 }))
.layers(layers?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.odataType(odataType.applyValue({ args0 -> args0 }))
.sceneChangeDetection(sceneChangeDetection?.applyValue({ args0 -> args0 }))
.stretchMode(
stretchMode?.applyValue({ args0 ->
args0.transform({ args0 -> args0 }, { args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.syncMode(
syncMode?.applyValue({ args0 ->
args0.transform({ args0 -> args0 }, { args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
).build()
}
/**
* Builder for [H265VideoArgs].
*/
@PulumiTagMarker
public class H265VideoArgsBuilder internal constructor() {
private var complexity: Output>? = null
private var keyFrameInterval: Output? = null
private var label: Output? = null
private var layers: Output>? = null
private var odataType: Output? = null
private var sceneChangeDetection: Output? = null
private var stretchMode: Output>? = null
private var syncMode: Output>? = null
/**
* @param value Tells the encoder how to choose its encoding settings. Quality will provide for a higher compression ratio but at a higher cost and longer compute time. Speed will produce a relatively larger file but is faster and more economical. The default value is Balanced.
*/
@JvmName("nyoiqjawsxrxwore")
public suspend fun complexity(`value`: Output>) {
this.complexity = value
}
/**
* @param value The distance between two key frames. The value should be non-zero in the range [0.5, 20] seconds, specified in ISO 8601 format. The default is 2 seconds(PT2S). Note that this setting is ignored if VideoSyncMode.Passthrough is set, where the KeyFrameInterval value will follow the input source setting.
*/
@JvmName("tlslplnageeifgsx")
public suspend fun keyFrameInterval(`value`: Output) {
this.keyFrameInterval = value
}
/**
* @param value An optional label for the codec. The label can be used to control muxing behavior.
*/
@JvmName("hyisiltlcwpplubu")
public suspend fun label(`value`: Output) {
this.label = value
}
/**
* @param value The collection of output H.265 layers to be produced by the encoder.
*/
@JvmName("inagvxfhurxcadcp")
public suspend fun layers(`value`: Output>) {
this.layers = value
}
@JvmName("bidxckaksbngcdtt")
public suspend fun layers(vararg values: Output) {
this.layers = Output.all(values.asList())
}
/**
* @param values The collection of output H.265 layers to be produced by the encoder.
*/
@JvmName("mgrsjuonekdcnfpy")
public suspend fun layers(values: List