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

com.pulumi.googlenative.transcoder.v1.kotlin.outputs.Vp9CodecSettingsResponse.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.googlenative.transcoder.v1.kotlin.outputs

import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress

/**
 * VP9 codec settings.
 * @property bitrateBps The video bitrate in bits per second. The minimum value is 1,000. The maximum value is 480,000,000.
 * @property crfLevel Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21. **Note:** This field is not supported.
 * @property frameRate The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculating frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.
 * @property gopDuration Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.
 * @property gopFrameCount Select the GOP size based on the specified frame count. Must be greater than zero.
 * @property heightPixels The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.
 * @property pixelFormat Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format
 * @property profile Enforces the specified codec profile. The following profiles are supported: * `profile0` (default) * `profile1` * `profile2` * `profile3` The available options are [WebM-compatible](https://www.webmproject.org/vp9/profiles/). Note that certain values for this field may cause the transcoder to override other fields you set in the `Vp9CodecSettings` message.
 * @property rateControlMode Specify the `rate_control_mode`. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate
 * @property widthPixels The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.
 */
public data class Vp9CodecSettingsResponse(
    public val bitrateBps: Int,
    public val crfLevel: Int,
    public val frameRate: Double,
    public val gopDuration: String,
    public val gopFrameCount: Int,
    public val heightPixels: Int,
    public val pixelFormat: String,
    public val profile: String,
    public val rateControlMode: String,
    public val widthPixels: Int,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.googlenative.transcoder.v1.outputs.Vp9CodecSettingsResponse): Vp9CodecSettingsResponse = Vp9CodecSettingsResponse(
            bitrateBps = javaType.bitrateBps(),
            crfLevel = javaType.crfLevel(),
            frameRate = javaType.frameRate(),
            gopDuration = javaType.gopDuration(),
            gopFrameCount = javaType.gopFrameCount(),
            heightPixels = javaType.heightPixels(),
            pixelFormat = javaType.pixelFormat(),
            profile = javaType.profile(),
            rateControlMode = javaType.rateControlMode(),
            widthPixels = javaType.widthPixels(),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy