commonMain.aws.sdk.kotlin.services.mediaconvert.model.UncompressedSettings.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mediaconvert-jvm Show documentation
Show all versions of mediaconvert-jvm Show documentation
The AWS SDK for Kotlin client for MediaConvert
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.mediaconvert.model
import aws.smithy.kotlin.runtime.SdkDsl
/**
* Required when you set Codec, under VideoDescription>CodecSettings to the value UNCOMPRESSED.
*/
public class UncompressedSettings private constructor(builder: Builder) {
/**
* The four character code for the uncompressed video.
*/
public val fourcc: aws.sdk.kotlin.services.mediaconvert.model.UncompressedFourcc? = builder.fourcc
/**
* Use the Framerate setting to specify the frame rate for this output. If you want to keep the same frame rate as the input video, choose Follow source. If you want to do frame rate conversion, choose a frame rate from the dropdown list or choose Custom. The framerates shown in the dropdown list are decimal approximations of fractions. If you choose Custom, specify your frame rate as a fraction.
*/
public val framerateControl: aws.sdk.kotlin.services.mediaconvert.model.UncompressedFramerateControl? = builder.framerateControl
/**
* Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least 128x96.
*/
public val framerateConversionAlgorithm: aws.sdk.kotlin.services.mediaconvert.model.UncompressedFramerateConversionAlgorithm? = builder.framerateConversionAlgorithm
/**
* When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.
*/
public val framerateDenominator: kotlin.Int? = builder.framerateDenominator
/**
* When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this example, use 24000 for the value of FramerateNumerator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.
*/
public val framerateNumerator: kotlin.Int? = builder.framerateNumerator
/**
* Optional. Choose the scan line type for this output. If you don't specify a value, MediaConvert will create a progressive output.
*/
public val interlaceMode: aws.sdk.kotlin.services.mediaconvert.model.UncompressedInterlaceMode? = builder.interlaceMode
/**
* Use this setting for interlaced outputs, when your output frame rate is half of your input frame rate. In this situation, choose Optimized interlacing to create a better quality interlaced output. In this case, each progressive frame from the input corresponds to an interlaced field in the output. Keep the default value, Basic interlacing, for all other output frame rates. With basic interlacing, MediaConvert performs any frame rate conversion first and then interlaces the frames. When you choose Optimized interlacing and you set your output frame rate to a value that isn't suitable for optimized interlacing, MediaConvert automatically falls back to basic interlacing. Required settings: To use optimized interlacing, you must set Telecine to None or Soft. You can't use optimized interlacing for hard telecine outputs. You must also set Interlace mode to a value other than Progressive.
*/
public val scanTypeConversionMode: aws.sdk.kotlin.services.mediaconvert.model.UncompressedScanTypeConversionMode? = builder.scanTypeConversionMode
/**
* Ignore this setting unless your input frame rate is 23.976 or 24 frames per second (fps). Enable slow PAL to create a 25 fps output by relabeling the video frames and resampling your audio. Note that enabling this setting will slightly reduce the duration of your video. Related settings: You must also set Framerate to 25.
*/
public val slowPal: aws.sdk.kotlin.services.mediaconvert.model.UncompressedSlowPal? = builder.slowPal
/**
* When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 fps, and your output scan type is interlaced, you can optionally enable hard telecine to create a smoother picture. When you keep the default value, None, MediaConvert does a standard frame rate conversion to 29.97 without doing anything with the field polarity to create a smoother picture.
*/
public val telecine: aws.sdk.kotlin.services.mediaconvert.model.UncompressedTelecine? = builder.telecine
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.mediaconvert.model.UncompressedSettings = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("UncompressedSettings(")
append("fourcc=$fourcc,")
append("framerateControl=$framerateControl,")
append("framerateConversionAlgorithm=$framerateConversionAlgorithm,")
append("framerateDenominator=$framerateDenominator,")
append("framerateNumerator=$framerateNumerator,")
append("interlaceMode=$interlaceMode,")
append("scanTypeConversionMode=$scanTypeConversionMode,")
append("slowPal=$slowPal,")
append("telecine=$telecine")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = fourcc?.hashCode() ?: 0
result = 31 * result + (framerateControl?.hashCode() ?: 0)
result = 31 * result + (framerateConversionAlgorithm?.hashCode() ?: 0)
result = 31 * result + (framerateDenominator ?: 0)
result = 31 * result + (framerateNumerator ?: 0)
result = 31 * result + (interlaceMode?.hashCode() ?: 0)
result = 31 * result + (scanTypeConversionMode?.hashCode() ?: 0)
result = 31 * result + (slowPal?.hashCode() ?: 0)
result = 31 * result + (telecine?.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 UncompressedSettings
if (fourcc != other.fourcc) return false
if (framerateControl != other.framerateControl) return false
if (framerateConversionAlgorithm != other.framerateConversionAlgorithm) return false
if (framerateDenominator != other.framerateDenominator) return false
if (framerateNumerator != other.framerateNumerator) return false
if (interlaceMode != other.interlaceMode) return false
if (scanTypeConversionMode != other.scanTypeConversionMode) return false
if (slowPal != other.slowPal) return false
if (telecine != other.telecine) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.mediaconvert.model.UncompressedSettings = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The four character code for the uncompressed video.
*/
public var fourcc: aws.sdk.kotlin.services.mediaconvert.model.UncompressedFourcc? = null
/**
* Use the Framerate setting to specify the frame rate for this output. If you want to keep the same frame rate as the input video, choose Follow source. If you want to do frame rate conversion, choose a frame rate from the dropdown list or choose Custom. The framerates shown in the dropdown list are decimal approximations of fractions. If you choose Custom, specify your frame rate as a fraction.
*/
public var framerateControl: aws.sdk.kotlin.services.mediaconvert.model.UncompressedFramerateControl? = null
/**
* Choose the method that you want MediaConvert to use when increasing or decreasing the frame rate. For numerically simple conversions, such as 60 fps to 30 fps: We recommend that you keep the default value, Drop duplicate. For numerically complex conversions, to avoid stutter: Choose Interpolate. This results in a smooth picture, but might introduce undesirable video artifacts. For complex frame rate conversions, especially if your source video has already been converted from its original cadence: Choose FrameFormer to do motion-compensated interpolation. FrameFormer uses the best conversion method frame by frame. Note that using FrameFormer increases the transcoding time and incurs a significant add-on cost. When you choose FrameFormer, your input video resolution must be at least 128x96.
*/
public var framerateConversionAlgorithm: aws.sdk.kotlin.services.mediaconvert.model.UncompressedFramerateConversionAlgorithm? = null
/**
* When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateDenominator to specify the denominator of this fraction. In this example, use 1001 for the value of FramerateDenominator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.
*/
public var framerateDenominator: kotlin.Int? = null
/**
* When you use the API for transcode jobs that use frame rate conversion, specify the frame rate as a fraction. For example, 24000 / 1001 = 23.976 fps. Use FramerateNumerator to specify the numerator of this fraction. In this example, use 24000 for the value of FramerateNumerator. When you use the console for transcode jobs that use frame rate conversion, provide the value as a decimal number for Framerate. In this example, specify 23.976.
*/
public var framerateNumerator: kotlin.Int? = null
/**
* Optional. Choose the scan line type for this output. If you don't specify a value, MediaConvert will create a progressive output.
*/
public var interlaceMode: aws.sdk.kotlin.services.mediaconvert.model.UncompressedInterlaceMode? = null
/**
* Use this setting for interlaced outputs, when your output frame rate is half of your input frame rate. In this situation, choose Optimized interlacing to create a better quality interlaced output. In this case, each progressive frame from the input corresponds to an interlaced field in the output. Keep the default value, Basic interlacing, for all other output frame rates. With basic interlacing, MediaConvert performs any frame rate conversion first and then interlaces the frames. When you choose Optimized interlacing and you set your output frame rate to a value that isn't suitable for optimized interlacing, MediaConvert automatically falls back to basic interlacing. Required settings: To use optimized interlacing, you must set Telecine to None or Soft. You can't use optimized interlacing for hard telecine outputs. You must also set Interlace mode to a value other than Progressive.
*/
public var scanTypeConversionMode: aws.sdk.kotlin.services.mediaconvert.model.UncompressedScanTypeConversionMode? = null
/**
* Ignore this setting unless your input frame rate is 23.976 or 24 frames per second (fps). Enable slow PAL to create a 25 fps output by relabeling the video frames and resampling your audio. Note that enabling this setting will slightly reduce the duration of your video. Related settings: You must also set Framerate to 25.
*/
public var slowPal: aws.sdk.kotlin.services.mediaconvert.model.UncompressedSlowPal? = null
/**
* When you do frame rate conversion from 23.976 frames per second (fps) to 29.97 fps, and your output scan type is interlaced, you can optionally enable hard telecine to create a smoother picture. When you keep the default value, None, MediaConvert does a standard frame rate conversion to 29.97 without doing anything with the field polarity to create a smoother picture.
*/
public var telecine: aws.sdk.kotlin.services.mediaconvert.model.UncompressedTelecine? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.mediaconvert.model.UncompressedSettings) : this() {
this.fourcc = x.fourcc
this.framerateControl = x.framerateControl
this.framerateConversionAlgorithm = x.framerateConversionAlgorithm
this.framerateDenominator = x.framerateDenominator
this.framerateNumerator = x.framerateNumerator
this.interlaceMode = x.interlaceMode
this.scanTypeConversionMode = x.scanTypeConversionMode
this.slowPal = x.slowPal
this.telecine = x.telecine
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.mediaconvert.model.UncompressedSettings = UncompressedSettings(this)
internal fun correctErrors(): Builder {
return this
}
}
}