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.azure.media.kotlin.inputs
import com.pulumi.azure.media.inputs.TransformOutputCustomPresetCodecH264VideoArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
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
/**
*
* @property complexity The complexity of the encoding. Possible values are `Balanced`, `Speed` or `Quality`. Default to `Balanced`.
* @property keyFrameInterval The distance between two key frames. The value should be non-zero in the range `0.5` to `20` seconds, specified in ISO 8601 format. Note that this setting is ignored if `sync_mode` is set to `Passthrough`, where the KeyFrameInterval value will follow the input source setting. Defaults to `PT2S`.
* @property label The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file.
* @property layers One or more `layer` blocks as defined below.
* @property rateControlMode The rate control mode. Possible values are `ABR`, `CBR` or `CRF`. Default to `ABR`.
* @property sceneChangeDetectionEnabled Whether the encoder should insert key frames at scene changes. This flag should be set to true only when the encoder is being configured to produce a single output video. Default to `false`.
* @property stretchMode Specifies the resizing mode - how the input video will be resized to fit the desired output resolution(s). Possible values are `AutoFit`, `AutoSize` or `None`. Default to `AutoSize`.
* @property syncMode Specifies the synchronization mode for the video. Possible values are `Auto`, `Cfr`, `Passthrough` or `Vfr`. Default to `Auto`.
*/
public data class TransformOutputCustomPresetCodecH264VideoArgs(
public val complexity: Output? = null,
public val keyFrameInterval: Output? = null,
public val label: Output? = null,
public val layers: Output>? = null,
public val rateControlMode: Output? = null,
public val sceneChangeDetectionEnabled: Output? = null,
public val stretchMode: Output? = null,
public val syncMode: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azure.media.inputs.TransformOutputCustomPresetCodecH264VideoArgs = com.pulumi.azure.media.inputs.TransformOutputCustomPresetCodecH264VideoArgs.builder()
.complexity(complexity?.applyValue({ args0 -> args0 }))
.keyFrameInterval(keyFrameInterval?.applyValue({ args0 -> args0 }))
.label(label?.applyValue({ args0 -> args0 }))
.layers(layers?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.rateControlMode(rateControlMode?.applyValue({ args0 -> args0 }))
.sceneChangeDetectionEnabled(sceneChangeDetectionEnabled?.applyValue({ args0 -> args0 }))
.stretchMode(stretchMode?.applyValue({ args0 -> args0 }))
.syncMode(syncMode?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [TransformOutputCustomPresetCodecH264VideoArgs].
*/
@PulumiTagMarker
public class TransformOutputCustomPresetCodecH264VideoArgsBuilder internal constructor() {
private var complexity: Output? = null
private var keyFrameInterval: Output? = null
private var label: Output? = null
private var layers: Output>? = null
private var rateControlMode: Output? = null
private var sceneChangeDetectionEnabled: Output? = null
private var stretchMode: Output? = null
private var syncMode: Output? = null
/**
* @param value The complexity of the encoding. Possible values are `Balanced`, `Speed` or `Quality`. Default to `Balanced`.
*/
@JvmName("gibhwjjwydpkrogi")
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` to `20` seconds, specified in ISO 8601 format. Note that this setting is ignored if `sync_mode` is set to `Passthrough`, where the KeyFrameInterval value will follow the input source setting. Defaults to `PT2S`.
*/
@JvmName("lyuwfdrncrefkqea")
public suspend fun keyFrameInterval(`value`: Output) {
this.keyFrameInterval = value
}
/**
* @param value The alphanumeric label for this layer, which can be used in multiplexing different video and audio layers, or in naming the output file.
*/
@JvmName("ttqgcffohmvcogcc")
public suspend fun label(`value`: Output) {
this.label = value
}
/**
* @param value One or more `layer` blocks as defined below.
*/
@JvmName("onsntgitdhgnkdic")
public suspend fun layers(`value`: Output>) {
this.layers = value
}
@JvmName("vrgmxsvvmmfdumvi")
public suspend fun layers(vararg values: Output) {
this.layers = Output.all(values.asList())
}
/**
* @param values One or more `layer` blocks as defined below.
*/
@JvmName("nlwgrykuvkbcuioj")
public suspend fun layers(values: List