# frozen_string_literal: true
# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
module Google
module Cloud
module Video
module Transcoder
module V1beta1
# Transcoding job resource.
# @!attribute [rw] name
# @return [::String]
# The resource name of the job.
# Format: `projects/{project}/locations/{location}/jobs/{job}`
# @!attribute [rw] input_uri
# @return [::String]
# Input only. Specify the `input_uri` to populate empty `uri` fields in each element of
# `Job.config.inputs` or `JobTemplate.config.inputs` when using template.
# URI of the media. Input files must be at least 5 seconds in duration and
# stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`).
# @!attribute [rw] output_uri
# @return [::String]
# Input only. Specify the `output_uri` to populate an empty `Job.config.output.uri` or
# `JobTemplate.config.output.uri` when using template.
# URI for the output file(s). For example, `gs://my-bucket/outputs/`.
# @!attribute [rw] template_id
# @return [::String]
# Input only. Specify the `template_id` to use for populating `Job.config`. The default
# is `preset/web-hd`.
#
# Preset Transcoder templates:
# - `preset/{preset_id}`
#
# - User defined JobTemplate:
# `{job_template_id}`
# @!attribute [rw] config
# @return [::Google::Cloud::Video::Transcoder::V1beta1::JobConfig]
# The configuration for this job.
# @!attribute [rw] priority
# @return [::Integer]
# Specify the priority of the job. Enter a value between 0 and 100, where 0
# is the lowest priority and 100 is the highest priority. The default is 0.
# @!attribute [r] origin_uri
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Job::OriginUri]
# Output only. The origin URI.
#
# @!attribute [r] state
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Job::ProcessingState]
# Output only. The current state of the job.
# @!attribute [r] progress
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Progress]
# Output only. Estimated fractional progress, from `0` to `1` for each
# step.
#
# @!attribute [r] failure_reason
# @return [::String]
# Output only. A description of the reason for the failure. This property is
# always present when `state` is `FAILED`.
# @!attribute [r] failure_details
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::FailureDetail>]
# Output only. List of failure details. This property may contain additional
# information about the failure when `failure_reason` is present.
#
# @!attribute [r] create_time
# @return [::Google::Protobuf::Timestamp]
# Output only. The time the job was created.
# @!attribute [r] start_time
# @return [::Google::Protobuf::Timestamp]
# Output only. The time the transcoding started.
# @!attribute [r] end_time
# @return [::Google::Protobuf::Timestamp]
# Output only. The time the transcoding finished.
# @!attribute [rw] ttl_after_completion_days
# @return [::Integer]
# Job time to live value in days, which will be effective after job
# completion. Job should be deleted automatically after the given TTL. Enter
# a value between 1 and 90. The default is 30.
class Job
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# The origin URI.
# @!attribute [rw] hls
# @return [::String]
# HLS manifest URI per https://tools.ietf.org/html/rfc8216#section-4.3.4.
# If multiple HLS manifests are created, only the first one is listed.
# @!attribute [rw] dash
# @return [::String]
# Dash manifest URI. If multiple Dash manifests are created, only the first
# one is listed.
class OriginUri
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# The current state of the job.
module ProcessingState
# The processing state is not specified.
PROCESSING_STATE_UNSPECIFIED = 0
# The job is enqueued and will be picked up for processing soon.
PENDING = 1
# The job is being processed.
RUNNING = 2
# The job has been completed successfully.
SUCCEEDED = 3
# The job has failed. For additional information, see `failure_reason` and
# `failure_details`
FAILED = 4
end
end
# Transcoding job template resource.
# @!attribute [rw] name
# @return [::String]
# The resource name of the job template.
# Format:
# `projects/{project}/locations/{location}/jobTemplates/{job_template}`
# @!attribute [rw] config
# @return [::Google::Cloud::Video::Transcoder::V1beta1::JobConfig]
# The configuration for this template.
class JobTemplate
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Job configuration
# @!attribute [rw] inputs
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::Input>]
# List of input assets stored in Cloud Storage.
# @!attribute [rw] edit_list
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::EditAtom>]
# List of `Edit atom`s. Defines the ultimate timeline of the resulting
# file or manifest.
# @!attribute [rw] elementary_streams
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::ElementaryStream>]
# List of elementary streams.
# @!attribute [rw] mux_streams
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::MuxStream>]
# List of multiplexing settings for output streams.
# @!attribute [rw] manifests
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::Manifest>]
# List of output manifests.
# @!attribute [rw] output
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Output]
# Output configuration.
# @!attribute [rw] ad_breaks
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::AdBreak>]
# List of ad breaks. Specifies where to insert ad break tags in the output
# manifests.
# @!attribute [rw] pubsub_destination
# @return [::Google::Cloud::Video::Transcoder::V1beta1::PubsubDestination]
# Destination on Pub/Sub.
# @!attribute [rw] sprite_sheets
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet>]
# List of output sprite sheets.
# @!attribute [rw] overlays
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::Overlay>]
# List of overlays on the output video, in descending Z-order.
class JobConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Input asset.
# @!attribute [rw] key
# @return [::String]
# A unique key for this input. Must be specified when using advanced
# mapping and edit lists.
# @!attribute [rw] uri
# @return [::String]
# URI of the media. Input files must be at least 5 seconds in duration and
# stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`).
# If empty, the value will be populated from `Job.input_uri`.
# @!attribute [rw] preprocessing_config
# @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig]
# Preprocessing configurations.
class Input
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Location of output file(s) in a Cloud Storage bucket.
# @!attribute [rw] uri
# @return [::String]
# URI for the output file(s). For example, `gs://my-bucket/outputs/`.
# If empty the value is populated from `Job.output_uri`.
class Output
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Edit atom.
# @!attribute [rw] key
# @return [::String]
# A unique key for this atom. Must be specified when using advanced
# mapping.
# @!attribute [rw] inputs
# @return [::Array<::String>]
# List of `Input.key`s identifying files that should be used in this atom.
# The listed `inputs` must have the same timeline.
# @!attribute [rw] end_time_offset
# @return [::Google::Protobuf::Duration]
# End time in seconds for the atom, relative to the input file timeline.
# When `end_time_offset` is not specified, the `inputs` are used until
# the end of the atom.
# @!attribute [rw] start_time_offset
# @return [::Google::Protobuf::Duration]
# Start time in seconds for the atom, relative to the input file timeline.
# The default is `0s`.
class EditAtom
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Ad break.
# @!attribute [rw] start_time_offset
# @return [::Google::Protobuf::Duration]
# Start time in seconds for the ad break, relative to the output file
# timeline. The default is `0s`.
class AdBreak
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Encoding of an input file such as an audio, video, or text track.
# Elementary streams must be packaged before
# mapping and sharing between different output formats.
# @!attribute [rw] key
# @return [::String]
# A unique key for this elementary stream.
# @!attribute [rw] video_stream
# @return [::Google::Cloud::Video::Transcoder::V1beta1::VideoStream]
# Encoding of a video stream.
# @!attribute [rw] audio_stream
# @return [::Google::Cloud::Video::Transcoder::V1beta1::AudioStream]
# Encoding of an audio stream.
# @!attribute [rw] text_stream
# @return [::Google::Cloud::Video::Transcoder::V1beta1::TextStream]
# Encoding of a text stream. For example, closed captions or subtitles.
class ElementaryStream
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Multiplexing settings for output stream.
# @!attribute [rw] key
# @return [::String]
# A unique key for this multiplexed stream. HLS media manifests will be
# named `MuxStream.key` with the `".m3u8"` extension suffix.
# @!attribute [rw] file_name
# @return [::String]
# The name of the generated file. The default is `MuxStream.key` with the
# extension suffix corresponding to the `MuxStream.container`.
#
# Individual segments also have an incremental 10-digit zero-padded suffix
# starting from 0 before the extension, such as `"mux_stream0000000123.ts"`.
# @!attribute [rw] container
# @return [::String]
# The container format. The default is `"mp4"`
#
# Supported container formats:
# - 'ts'
# - 'fmp4'- the corresponding file extension is `".m4s"`
# - 'mp4'
# - 'vtt'
# @!attribute [rw] elementary_streams
# @return [::Array<::String>]
# List of `ElementaryStream.key`s multiplexed in this stream.
# @!attribute [rw] segment_settings
# @return [::Google::Cloud::Video::Transcoder::V1beta1::SegmentSettings]
# Segment settings for `"ts"`, `"fmp4"` and `"vtt"`.
# @!attribute [rw] encryption
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Encryption]
# Encryption settings.
class MuxStream
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Manifest configuration.
# @!attribute [rw] file_name
# @return [::String]
# The name of the generated file. The default is `"manifest"` with the
# extension suffix corresponding to the `Manifest.type`.
# @!attribute [rw] type
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Manifest::ManifestType]
# Required. Type of the manifest, can be "HLS" or "DASH".
# @!attribute [rw] mux_streams
# @return [::Array<::String>]
# Required. List of user given `MuxStream.key`s that should appear in this manifest.
#
# When `Manifest.type` is `HLS`, a media manifest with name `MuxStream.key`
# and `.m3u8` extension is generated for each element of the
# `Manifest.mux_streams`.
class Manifest
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# The manifest type can be either `"HLS"` or `"DASH"`.
module ManifestType
# The manifest type is not specified.
MANIFEST_TYPE_UNSPECIFIED = 0
# Create `"HLS"` manifest. The corresponding file extension is `".m3u8"`.
HLS = 1
# Create `"DASH"` manifest. The corresponding file extension is `".mpd"`.
DASH = 2
end
end
# A Pub/Sub destination.
# @!attribute [rw] topic
# @return [::String]
# The name of the Pub/Sub topic to publish job completion notification
# to. For example: `projects/{project}/topics/{topic}`.
class PubsubDestination
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Sprite sheet configuration.
# @!attribute [rw] format
# @return [::String]
# Format type. The default is `"jpeg"`.
#
# Supported formats:
# - 'jpeg'
# @!attribute [rw] file_prefix
# @return [::String]
# Required. File name prefix for the generated sprite sheets.
#
# Each sprite sheet has an incremental 10-digit zero-padded suffix starting
# from 0 before the extension, such as `"sprite_sheet0000000123.jpeg"`.
# @!attribute [rw] sprite_width_pixels
# @return [::Integer]
# Required. The width of sprite in pixels. Must be an even integer. To preserve the
# source aspect ratio, set the {::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet#sprite_width_pixels SpriteSheet.sprite_width_pixels} field or
# the {::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet#sprite_height_pixels SpriteSheet.sprite_height_pixels} field, but not both (the API will
# automatically calculate the missing field).
# @!attribute [rw] sprite_height_pixels
# @return [::Integer]
# Required. The height of sprite in pixels. Must be an even integer. To preserve the
# source aspect ratio, set the {::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet#sprite_height_pixels SpriteSheet.sprite_height_pixels} field or
# the {::Google::Cloud::Video::Transcoder::V1beta1::SpriteSheet#sprite_width_pixels SpriteSheet.sprite_width_pixels} field, but not both (the API will
# automatically calculate the missing field).
# @!attribute [rw] column_count
# @return [::Integer]
# The maximum number of sprites per row in a sprite sheet. The default is 0,
# which indicates no maximum limit.
# @!attribute [rw] row_count
# @return [::Integer]
# The maximum number of rows per sprite sheet. When the sprite sheet is full,
# a new sprite sheet is created. The default is 0, which indicates no maximum
# limit.
# @!attribute [rw] start_time_offset
# @return [::Google::Protobuf::Duration]
# Start time in seconds, relative to the output file timeline. Determines the
# first sprite to pick. The default is `0s`.
# @!attribute [rw] end_time_offset
# @return [::Google::Protobuf::Duration]
# End time in seconds, relative to the output file timeline. When
# `end_time_offset` is not specified, the sprites are generated until the end
# of the output file.
# @!attribute [rw] total_count
# @return [::Integer]
# Total number of sprites. Create the specified number of sprites
# distributed evenly across the timeline of the output media. The default
# is 100.
# @!attribute [rw] interval
# @return [::Google::Protobuf::Duration]
# Starting from `0s`, create sprites at regular intervals. Specify the
# interval value in seconds.
# @!attribute [rw] quality
# @return [::Integer]
# The quality of the generated sprite sheet. Enter a value between 1
# and 100, where 1 is the lowest quality and 100 is the highest quality.
# The default is 100. A high quality value corresponds to a low image data
# compression ratio.
class SpriteSheet
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Overlay configuration.
# @!attribute [rw] image
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::Image]
# Image overlay.
# @!attribute [rw] animations
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::Overlay::Animation>]
# List of Animations. The list should be chronological, without any time
# overlap.
class Overlay
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# 2D normalized coordinates. Default: `{0.0, 0.0}`
# @!attribute [rw] x
# @return [::Float]
# Normalized x coordinate.
# @!attribute [rw] y
# @return [::Float]
# Normalized y coordinate.
class NormalizedCoordinate
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Overlaid jpeg image.
# @!attribute [rw] uri
# @return [::String]
# Required. URI of the JPEG image in Cloud Storage. For example,
# `gs://bucket/inputs/image.jpeg`. JPEG is the only supported image type.
# @!attribute [rw] resolution
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::NormalizedCoordinate]
# Normalized image resolution, based on output video resolution. Valid
# values: `0.0`–`1.0`. To respect the original image aspect ratio, set
# either `x` or `y` to `0.0`. To use the original image resolution, set
# both `x` and `y` to `0.0`.
# @!attribute [rw] alpha
# @return [::Float]
# Target image opacity. Valid values are from `1.0` (solid, default) to
# `0.0` (transparent), exclusive. Set this to a value greater than `0.0`.
class Image
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Display static overlay object.
# @!attribute [rw] xy
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::NormalizedCoordinate]
# Normalized coordinates based on output video resolution. Valid
# values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay
# object. For example, use the x and y coordinates \\{0,0} to position the
# top-left corner of the overlay animation in the top-left corner of the
# output video.
# @!attribute [rw] start_time_offset
# @return [::Google::Protobuf::Duration]
# The time to start displaying the overlay object, in seconds. Default: 0
class AnimationStatic
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Display overlay object with fade animation.
# @!attribute [rw] fade_type
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::FadeType]
# Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
# @!attribute [rw] xy
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::NormalizedCoordinate]
# Normalized coordinates based on output video resolution. Valid
# values: `0.0`–`1.0`. `xy` is the upper-left coordinate of the overlay
# object. For example, use the x and y coordinates \\{0,0} to position the
# top-left corner of the overlay animation in the top-left corner of the
# output video.
# @!attribute [rw] start_time_offset
# @return [::Google::Protobuf::Duration]
# The time to start the fade animation, in seconds. Default: 0
# @!attribute [rw] end_time_offset
# @return [::Google::Protobuf::Duration]
# The time to end the fade animation, in seconds. Default:
# `start_time_offset` + 1s
class AnimationFade
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# End previous overlay animation from the video. Without AnimationEnd, the
# overlay object will keep the state of previous animation until the end of
# the video.
# @!attribute [rw] start_time_offset
# @return [::Google::Protobuf::Duration]
# The time to end overlay object, in seconds. Default: 0
class AnimationEnd
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Animation types.
# @!attribute [rw] animation_static
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::AnimationStatic]
# Display static overlay object.
# @!attribute [rw] animation_fade
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::AnimationFade]
# Display overlay object with fade animation.
# @!attribute [rw] animation_end
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Overlay::AnimationEnd]
# End previous animation.
class Animation
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Fade type for the overlay: `FADE_IN` or `FADE_OUT`.
module FadeType
# The fade type is not specified.
FADE_TYPE_UNSPECIFIED = 0
# Fade the overlay object into view.
FADE_IN = 1
# Fade the overlay object out of view.
FADE_OUT = 2
end
end
# Preprocessing configurations.
# @!attribute [rw] color
# @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Color]
# Color preprocessing configuration.
# @!attribute [rw] denoise
# @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Denoise]
# Denoise preprocessing configuration.
# @!attribute [rw] deblock
# @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Deblock]
# Deblock preprocessing configuration.
# @!attribute [rw] audio
# @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Audio]
# Audio preprocessing configuration.
# @!attribute [rw] crop
# @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Crop]
# Specify the video cropping configuration.
# @!attribute [rw] pad
# @return [::Google::Cloud::Video::Transcoder::V1beta1::PreprocessingConfig::Pad]
# Specify the video pad filter configuration.
class PreprocessingConfig
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# Color preprocessing configuration.
# @!attribute [rw] saturation
# @return [::Float]
# Control color saturation of the video. Enter a value between -1 and 1,
# where -1 is fully desaturated and 1 is maximum saturation. 0 is no
# change. The default is 0.
# @!attribute [rw] contrast
# @return [::Float]
# Control black and white contrast of the video. Enter a value between -1
# and 1, where -1 is minimum contrast and 1 is maximum contrast. 0 is no
# change. The default is 0.
# @!attribute [rw] brightness
# @return [::Float]
# Control brightness of the video. Enter a value between -1 and 1, where -1
# is minimum brightness and 1 is maximum brightness. 0 is no change. The
# default is 0.
class Color
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Denoise preprocessing configuration.
# @!attribute [rw] strength
# @return [::Float]
# Set strength of the denoise. Enter a value between 0 and 1. The higher
# the value, the smoother the image. 0 is no denoising. The default is 0.
# @!attribute [rw] tune
# @return [::String]
# Set the denoiser mode. The default is `"standard"`.
#
# Supported denoiser modes:
# - 'standard'
# - 'grain'
class Denoise
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Deblock preprocessing configuration.
# @!attribute [rw] strength
# @return [::Float]
# Set strength of the deblocker. Enter a value between 0 and 1. The higher
# the value, the stronger the block removal. 0 is no deblocking. The
# default is 0.
# @!attribute [rw] enabled
# @return [::Boolean]
# Enable deblocker. The default is `false`.
class Deblock
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Audio preprocessing configuration.
# @!attribute [rw] lufs
# @return [::Float]
# Specify audio loudness normalization in loudness units relative to full
# scale (LUFS). Enter a value between -24 and 0 (the default), where:
#
# * -24 is the Advanced Television Systems Committee (ATSC A/85) standard
# * -23 is the EU R128 broadcast standard
# * -19 is the prior standard for online mono audio
# * -18 is the ReplayGain standard
# * -16 is the prior standard for stereo audio
# * -14 is the new online audio standard recommended by Spotify, as well
# as Amazon Echo
# * 0 disables normalization
# @!attribute [rw] high_boost
# @return [::Boolean]
# Enable boosting high frequency components. The default is `false`.
# @!attribute [rw] low_boost
# @return [::Boolean]
# Enable boosting low frequency components. The default is `false`.
class Audio
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Video cropping configuration for the input video. The cropped input video
# is scaled to match the output resolution.
# @!attribute [rw] top_pixels
# @return [::Integer]
# The number of pixels to crop from the top. The default is 0.
# @!attribute [rw] bottom_pixels
# @return [::Integer]
# The number of pixels to crop from the bottom. The default is 0.
# @!attribute [rw] left_pixels
# @return [::Integer]
# The number of pixels to crop from the left. The default is 0.
# @!attribute [rw] right_pixels
# @return [::Integer]
# The number of pixels to crop from the right. The default is 0.
class Crop
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Pad filter configuration for the input video. The padded input video
# is scaled after padding with black to match the output resolution.
# @!attribute [rw] top_pixels
# @return [::Integer]
# The number of pixels to add to the top. The default is 0.
# @!attribute [rw] bottom_pixels
# @return [::Integer]
# The number of pixels to add to the bottom. The default is 0.
# @!attribute [rw] left_pixels
# @return [::Integer]
# The number of pixels to add to the left. The default is 0.
# @!attribute [rw] right_pixels
# @return [::Integer]
# The number of pixels to add to the right. The default is 0.
class Pad
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
# Video stream resource.
# @!attribute [rw] codec
# @return [::String]
# Codec type. The following codecs are supported:
#
# * `h264` (default)
# * `h265`
# * `vp9`
# @!attribute [rw] profile
# @return [::String]
# Enforces the specified codec profile. The following profiles are supported:
#
# * `baseline`
# * `main`
# * `high` (default)
#
# The available options are
# FFmpeg-compatible. Note that certain values for this
# field may cause the transcoder to override other fields you set in the
# `VideoStream` message.
# @!attribute [rw] tune
# @return [::String]
# Enforces the specified codec tune. The available options are
# FFmpeg-compatible. Note that certain values for this
# field may cause the transcoder to override other fields you set in the
# `VideoStream` message.
# @!attribute [rw] preset
# @return [::String]
# Enforces the specified codec preset. The default is `veryfast`. The
# available options are
# FFmpeg-compatible. Note that certain values for this
# field may cause the transcoder to override other fields you set in the
# `VideoStream` message.
# @!attribute [rw] height_pixels
# @return [::Integer]
# 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.
# @!attribute [rw] width_pixels
# @return [::Integer]
# 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.
# @!attribute [rw] pixel_format
# @return [::String]
# 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.
# @!attribute [rw] bitrate_bps
# @return [::Integer]
# Required. The video bitrate in bits per second. The minimum value is 1,000.
# The maximum value for H264/H265 is 800,000,000. The maximum value for VP9
# is 480,000,000.
# @!attribute [rw] rate_control_mode
# @return [::String]
# Specify the `rate_control_mode`. The default is `"vbr"`.
#
# Supported rate control modes:
# - 'vbr' - variable bitrate
# - 'crf' - constant rate factor
# @!attribute [rw] enable_two_pass
# @return [::Boolean]
# Use two-pass encoding strategy to achieve better video quality.
# `VideoStream.rate_control_mode` must be `"vbr"`. The default is `false`.
# @!attribute [rw] crf_level
# @return [::Integer]
# 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.
# @!attribute [rw] vbv_size_bits
# @return [::Integer]
# Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater
# than zero. The default is equal to `VideoStream.bitrate_bps`.
# @!attribute [rw] vbv_fullness_bits
# @return [::Integer]
# Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must
# be greater than zero. The default is equal to 90% of
# `VideoStream.vbv_size_bits`.
# @!attribute [rw] allow_open_gop
# @return [::Boolean]
# Specifies whether an open Group of Pictures (GOP) structure should be
# allowed or not. The default is `false`.
# @!attribute [rw] gop_frame_count
# @return [::Integer]
# Select the GOP size based on the specified frame count. Must be greater
# than zero.
# @!attribute [rw] gop_duration
# @return [::Google::Protobuf::Duration]
# 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`.
# @!attribute [rw] entropy_coder
# @return [::String]
# The entropy coder to use. The default is `"cabac"`.
#
# Supported entropy coders:
# - 'cavlc'
# - 'cabac'
# @!attribute [rw] b_pyramid
# @return [::Boolean]
# Allow B-pyramid for reference frame selection. This may not be supported
# on all decoders. The default is `false`.
# @!attribute [rw] b_frame_count
# @return [::Integer]
# The number of consecutive B-frames. Must be greater than or equal to zero.
# Must be less than `VideoStream.gop_frame_count` if set. The default is 0.
# @!attribute [rw] frame_rate
# @return [::Float]
# Required. 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
# [Calculate frame
# rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
# more information.
# @!attribute [rw] aq_strength
# @return [::Float]
# Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and
# 1, where 0 disables the quantizer and 1 maximizes the quantizer. A
# higher value equals a lower bitrate but smoother image. The default is 0.
class VideoStream
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Audio stream resource.
# @!attribute [rw] codec
# @return [::String]
# The codec for this audio stream. The default is `"aac"`.
#
# Supported audio codecs:
# - 'aac'
# - 'aac-he'
# - 'aac-he-v2'
# - 'mp3'
# - 'ac3'
# - 'eac3'
# @!attribute [rw] bitrate_bps
# @return [::Integer]
# Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000.
# @!attribute [rw] channel_count
# @return [::Integer]
# Number of audio channels. Must be between 1 and 6. The default is 2.
# @!attribute [rw] channel_layout
# @return [::Array<::String>]
# A list of channel names specifying layout of the audio channels.
# This only affects the metadata embedded in the container headers, if
# supported by the specified format. The default is `["fl", "fr"]`.
#
# Supported channel names:
# - 'fl' - Front left channel
# - 'fr' - Front right channel
# - 'sl' - Side left channel
# - 'sr' - Side right channel
# - 'fc' - Front center channel
# - 'lfe' - Low frequency
# @!attribute [rw] mapping
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::AudioStream::AudioAtom>]
# The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
# @!attribute [rw] sample_rate_hertz
# @return [::Integer]
# The audio sample rate in Hertz. The default is 48000 Hertz.
class AudioStream
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
# @!attribute [rw] key
# @return [::String]
# Required. The `EditAtom.key` that references the atom with audio inputs in the
# `Job.edit_list`.
# @!attribute [rw] channels
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::AudioStream::AudioAtom::AudioChannel>]
# List of `Channel`s for this audio stream.
# for in-depth explanation.
class AudioAtom
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# The audio channel.
# @!attribute [rw] inputs
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::AudioStream::AudioAtom::AudioChannel::AudioChannelInput>]
# List of `Job.inputs` for this audio channel.
class AudioChannel
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# Identifies which input file, track, and channel should be used.
# @!attribute [rw] key
# @return [::String]
# Required. The `Input.key` that identifies the input file.
# @!attribute [rw] track
# @return [::Integer]
# Required. The zero-based index of the track in the input file.
# @!attribute [rw] channel
# @return [::Integer]
# Required. The zero-based index of the channel in the input file.
# @!attribute [rw] gain_db
# @return [::Float]
# Audio volume control in dB. Negative values decrease volume,
# positive values increase. The default is 0.
class AudioChannelInput
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
end
end
# Encoding of a text stream. For example, closed captions or subtitles.
# @!attribute [rw] codec
# @return [::String]
# The codec for this text stream. The default is `"webvtt"`.
#
# Supported text codecs:
# - 'srt'
# - 'ttml'
# - 'cea608'
# - 'cea708'
# - 'webvtt'
# @!attribute [rw] language_code
# @return [::String]
# Required. The BCP-47 language code, such as `"en-US"` or `"sr-Latn"`. For more
# information, see
# https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
# @!attribute [rw] mapping
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::TextStream::TextAtom>]
# The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
class TextStream
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
# @!attribute [rw] key
# @return [::String]
# Required. The `EditAtom.key` that references atom with text inputs in the
# `Job.edit_list`.
# @!attribute [rw] inputs
# @return [::Array<::Google::Cloud::Video::Transcoder::V1beta1::TextStream::TextAtom::TextInput>]
# List of `Job.inputs` that should be embedded in this atom. Only one
# input is supported.
class TextAtom
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# Identifies which input file and track should be used.
# @!attribute [rw] key
# @return [::String]
# Required. The `Input.key` that identifies the input file.
# @!attribute [rw] track
# @return [::Integer]
# Required. The zero-based index of the track in the input file.
class TextInput
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
end
# Segment settings for `"ts"`, `"fmp4"` and `"vtt"`.
# @!attribute [rw] segment_duration
# @return [::Google::Protobuf::Duration]
# Duration of the segments in seconds. The default is `"6.0s"`. Note that
# `segmentDuration` must be greater than or equal to
# [`gopDuration`](#videostream), and `segmentDuration` must be divisible by
# [`gopDuration`](#videostream).
# @!attribute [rw] individual_segments
# @return [::Boolean]
# Required. Create an individual segment file. The default is `false`.
class SegmentSettings
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Encryption settings.
# @!attribute [rw] key
# @return [::String]
# Required. 128 bit encryption key represented as lowercase hexadecimal digits.
# @!attribute [rw] iv
# @return [::String]
# Required. 128 bit Initialization Vector (IV) represented as lowercase hexadecimal
# digits.
# @!attribute [rw] aes_128
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Encryption::Aes128Encryption]
# Configuration for AES-128 encryption.
# @!attribute [rw] sample_aes
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Encryption::SampleAesEncryption]
# Configuration for SAMPLE-AES encryption.
# @!attribute [rw] mpeg_cenc
# @return [::Google::Cloud::Video::Transcoder::V1beta1::Encryption::MpegCommonEncryption]
# Configuration for MPEG Common Encryption (MPEG-CENC).
class Encryption
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
# Configuration for AES-128 encryption.
# @!attribute [rw] key_uri
# @return [::String]
# Required. URI of the key delivery service. This URI is inserted into the M3U8
# header.
class Aes128Encryption
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Configuration for SAMPLE-AES encryption.
# @!attribute [rw] key_uri
# @return [::String]
# Required. URI of the key delivery service. This URI is inserted into the M3U8
# header.
class SampleAesEncryption
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Configuration for MPEG Common Encryption (MPEG-CENC).
# @!attribute [rw] key_id
# @return [::String]
# Required. 128 bit Key ID represented as lowercase hexadecimal digits for use with
# common encryption.
# @!attribute [rw] scheme
# @return [::String]
# Required. Specify the encryption scheme.
#
# Supported encryption schemes:
# - 'cenc'
# - 'cbcs'
class MpegCommonEncryption
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
# Estimated fractional progress for each step, from `0` to `1`.
# @!attribute [rw] analyzed
# @return [::Float]
# Estimated fractional progress for `analyzing` step.
# @!attribute [rw] encoded
# @return [::Float]
# Estimated fractional progress for `encoding` step.
# @!attribute [rw] uploaded
# @return [::Float]
# Estimated fractional progress for `uploading` step.
# @!attribute [rw] notified
# @return [::Float]
# Estimated fractional progress for `notifying` step.
class Progress
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
# Additional information about the reasons for the failure.
# @!attribute [rw] description
# @return [::String]
# A description of the failure.
class FailureDetail
include ::Google::Protobuf::MessageExts
extend ::Google::Protobuf::MessageExts::ClassMethods
end
end
end
end
end
end