blob: 8ee3c3cc2f80140ddf2c551a60393d9c719d6dcd [file] [log] [blame]
// Copyright 2022 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
//
// http://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.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.26.0
// protoc v3.12.2
// source: google/cloud/video/transcoder/v1/resources.proto
package transcoderpb
import (
reflect "reflect"
sync "sync"
duration "github.com/golang/protobuf/ptypes/duration"
timestamp "github.com/golang/protobuf/ptypes/timestamp"
_ "google.golang.org/genproto/googleapis/api/annotations"
status "google.golang.org/genproto/googleapis/rpc/status"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// The current state of the job.
type Job_ProcessingState int32
const (
// The processing state is not specified.
Job_PROCESSING_STATE_UNSPECIFIED Job_ProcessingState = 0
// The job is enqueued and will be picked up for processing soon.
Job_PENDING Job_ProcessingState = 1
// The job is being processed.
Job_RUNNING Job_ProcessingState = 2
// The job has been completed successfully.
Job_SUCCEEDED Job_ProcessingState = 3
// The job has failed. For additional information, see `failure_reason` and
// `failure_details`
Job_FAILED Job_ProcessingState = 4
)
// Enum value maps for Job_ProcessingState.
var (
Job_ProcessingState_name = map[int32]string{
0: "PROCESSING_STATE_UNSPECIFIED",
1: "PENDING",
2: "RUNNING",
3: "SUCCEEDED",
4: "FAILED",
}
Job_ProcessingState_value = map[string]int32{
"PROCESSING_STATE_UNSPECIFIED": 0,
"PENDING": 1,
"RUNNING": 2,
"SUCCEEDED": 3,
"FAILED": 4,
}
)
func (x Job_ProcessingState) Enum() *Job_ProcessingState {
p := new(Job_ProcessingState)
*p = x
return p
}
func (x Job_ProcessingState) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Job_ProcessingState) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_video_transcoder_v1_resources_proto_enumTypes[0].Descriptor()
}
func (Job_ProcessingState) Type() protoreflect.EnumType {
return &file_google_cloud_video_transcoder_v1_resources_proto_enumTypes[0]
}
func (x Job_ProcessingState) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Job_ProcessingState.Descriptor instead.
func (Job_ProcessingState) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{0, 0}
}
// The manifest type can be either `HLS` or `DASH`.
type Manifest_ManifestType int32
const (
// The manifest type is not specified.
Manifest_MANIFEST_TYPE_UNSPECIFIED Manifest_ManifestType = 0
// Create `HLS` manifest. The corresponding file extension is `.m3u8`.
Manifest_HLS Manifest_ManifestType = 1
// Create `DASH` manifest. The corresponding file extension is `.mpd`.
Manifest_DASH Manifest_ManifestType = 2
)
// Enum value maps for Manifest_ManifestType.
var (
Manifest_ManifestType_name = map[int32]string{
0: "MANIFEST_TYPE_UNSPECIFIED",
1: "HLS",
2: "DASH",
}
Manifest_ManifestType_value = map[string]int32{
"MANIFEST_TYPE_UNSPECIFIED": 0,
"HLS": 1,
"DASH": 2,
}
)
func (x Manifest_ManifestType) Enum() *Manifest_ManifestType {
p := new(Manifest_ManifestType)
*p = x
return p
}
func (x Manifest_ManifestType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Manifest_ManifestType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_video_transcoder_v1_resources_proto_enumTypes[1].Descriptor()
}
func (Manifest_ManifestType) Type() protoreflect.EnumType {
return &file_google_cloud_video_transcoder_v1_resources_proto_enumTypes[1]
}
func (x Manifest_ManifestType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Manifest_ManifestType.Descriptor instead.
func (Manifest_ManifestType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{9, 0}
}
// Fade type for the overlay: `FADE_IN` or `FADE_OUT`.
type Overlay_FadeType int32
const (
// The fade type is not specified.
Overlay_FADE_TYPE_UNSPECIFIED Overlay_FadeType = 0
// Fade the overlay object into view.
Overlay_FADE_IN Overlay_FadeType = 1
// Fade the overlay object out of view.
Overlay_FADE_OUT Overlay_FadeType = 2
)
// Enum value maps for Overlay_FadeType.
var (
Overlay_FadeType_name = map[int32]string{
0: "FADE_TYPE_UNSPECIFIED",
1: "FADE_IN",
2: "FADE_OUT",
}
Overlay_FadeType_value = map[string]int32{
"FADE_TYPE_UNSPECIFIED": 0,
"FADE_IN": 1,
"FADE_OUT": 2,
}
)
func (x Overlay_FadeType) Enum() *Overlay_FadeType {
p := new(Overlay_FadeType)
*p = x
return p
}
func (x Overlay_FadeType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Overlay_FadeType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_video_transcoder_v1_resources_proto_enumTypes[2].Descriptor()
}
func (Overlay_FadeType) Type() protoreflect.EnumType {
return &file_google_cloud_video_transcoder_v1_resources_proto_enumTypes[2]
}
func (x Overlay_FadeType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Overlay_FadeType.Descriptor instead.
func (Overlay_FadeType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{12, 0}
}
// Transcoding job resource.
type Job struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The resource name of the job.
// Format: `projects/{project_number}/locations/{location}/jobs/{job}`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// 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`). See
// [Supported input and output
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).
InputUri string `protobuf:"bytes,2,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"`
// 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/`. See
// [Supported input and output
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).
OutputUri string `protobuf:"bytes,3,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"`
// Specify the `job_config` for the transcoding job. If you don't specify the
// `job_config`, the API selects `templateId`; this template ID is set to
// `preset/web-hd` by default. When you use a `template_id` to create a job,
// the `Job.config` is populated by the `JobTemplate.config`.<br>
//
// Types that are assignable to JobConfig:
//
// *Job_TemplateId
// *Job_Config
JobConfig isJob_JobConfig `protobuf_oneof:"job_config"`
// Output only. The current state of the job.
State Job_ProcessingState `protobuf:"varint,8,opt,name=state,proto3,enum=google.cloud.video.transcoder.v1.Job_ProcessingState" json:"state,omitempty"`
// Output only. The time the job was created.
CreateTime *timestamp.Timestamp `protobuf:"bytes,12,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. The time the transcoding started.
StartTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Output only. The time the transcoding finished.
EndTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// 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.
TtlAfterCompletionDays int32 `protobuf:"varint,15,opt,name=ttl_after_completion_days,json=ttlAfterCompletionDays,proto3" json:"ttl_after_completion_days,omitempty"`
// The labels associated with this job. You can use these to organize and
// group your jobs.
Labels map[string]string `protobuf:"bytes,16,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Output only. An error object that describes the reason for the failure.
// This property is always present when `state` is `FAILED`.
Error *status.Status `protobuf:"bytes,17,opt,name=error,proto3" json:"error,omitempty"`
}
func (x *Job) Reset() {
*x = Job{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Job) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Job) ProtoMessage() {}
func (x *Job) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Job.ProtoReflect.Descriptor instead.
func (*Job) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{0}
}
func (x *Job) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Job) GetInputUri() string {
if x != nil {
return x.InputUri
}
return ""
}
func (x *Job) GetOutputUri() string {
if x != nil {
return x.OutputUri
}
return ""
}
func (m *Job) GetJobConfig() isJob_JobConfig {
if m != nil {
return m.JobConfig
}
return nil
}
func (x *Job) GetTemplateId() string {
if x, ok := x.GetJobConfig().(*Job_TemplateId); ok {
return x.TemplateId
}
return ""
}
func (x *Job) GetConfig() *JobConfig {
if x, ok := x.GetJobConfig().(*Job_Config); ok {
return x.Config
}
return nil
}
func (x *Job) GetState() Job_ProcessingState {
if x != nil {
return x.State
}
return Job_PROCESSING_STATE_UNSPECIFIED
}
func (x *Job) GetCreateTime() *timestamp.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *Job) GetStartTime() *timestamp.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *Job) GetEndTime() *timestamp.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
func (x *Job) GetTtlAfterCompletionDays() int32 {
if x != nil {
return x.TtlAfterCompletionDays
}
return 0
}
func (x *Job) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
func (x *Job) GetError() *status.Status {
if x != nil {
return x.Error
}
return nil
}
type isJob_JobConfig interface {
isJob_JobConfig()
}
type Job_TemplateId struct {
// 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}`
TemplateId string `protobuf:"bytes,4,opt,name=template_id,json=templateId,proto3,oneof"`
}
type Job_Config struct {
// The configuration for this job.
Config *JobConfig `protobuf:"bytes,5,opt,name=config,proto3,oneof"`
}
func (*Job_TemplateId) isJob_JobConfig() {}
func (*Job_Config) isJob_JobConfig() {}
// Transcoding job template resource.
type JobTemplate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The resource name of the job template.
// Format:
// `projects/{project_number}/locations/{location}/jobTemplates/{job_template}`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The configuration for this template.
Config *JobConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"`
// The labels associated with this job template. You can use these to organize
// and group your job templates.
Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *JobTemplate) Reset() {
*x = JobTemplate{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *JobTemplate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*JobTemplate) ProtoMessage() {}
func (x *JobTemplate) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use JobTemplate.ProtoReflect.Descriptor instead.
func (*JobTemplate) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{1}
}
func (x *JobTemplate) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *JobTemplate) GetConfig() *JobConfig {
if x != nil {
return x.Config
}
return nil
}
func (x *JobTemplate) GetLabels() map[string]string {
if x != nil {
return x.Labels
}
return nil
}
// Job configuration
type JobConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// List of input assets stored in Cloud Storage.
Inputs []*Input `protobuf:"bytes,1,rep,name=inputs,proto3" json:"inputs,omitempty"`
// List of `Edit atom`s. Defines the ultimate timeline of the resulting
// file or manifest.
EditList []*EditAtom `protobuf:"bytes,2,rep,name=edit_list,json=editList,proto3" json:"edit_list,omitempty"`
// List of elementary streams.
ElementaryStreams []*ElementaryStream `protobuf:"bytes,3,rep,name=elementary_streams,json=elementaryStreams,proto3" json:"elementary_streams,omitempty"`
// List of multiplexing settings for output streams.
MuxStreams []*MuxStream `protobuf:"bytes,4,rep,name=mux_streams,json=muxStreams,proto3" json:"mux_streams,omitempty"`
// List of output manifests.
Manifests []*Manifest `protobuf:"bytes,5,rep,name=manifests,proto3" json:"manifests,omitempty"`
// Output configuration.
Output *Output `protobuf:"bytes,6,opt,name=output,proto3" json:"output,omitempty"`
// List of ad breaks. Specifies where to insert ad break tags in the output
// manifests.
AdBreaks []*AdBreak `protobuf:"bytes,7,rep,name=ad_breaks,json=adBreaks,proto3" json:"ad_breaks,omitempty"`
// Destination on Pub/Sub.
PubsubDestination *PubsubDestination `protobuf:"bytes,8,opt,name=pubsub_destination,json=pubsubDestination,proto3" json:"pubsub_destination,omitempty"`
// List of output sprite sheets.
// Spritesheets require at least one VideoStream in the Jobconfig.
SpriteSheets []*SpriteSheet `protobuf:"bytes,9,rep,name=sprite_sheets,json=spriteSheets,proto3" json:"sprite_sheets,omitempty"`
// List of overlays on the output video, in descending Z-order.
Overlays []*Overlay `protobuf:"bytes,10,rep,name=overlays,proto3" json:"overlays,omitempty"`
}
func (x *JobConfig) Reset() {
*x = JobConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *JobConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*JobConfig) ProtoMessage() {}
func (x *JobConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use JobConfig.ProtoReflect.Descriptor instead.
func (*JobConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{2}
}
func (x *JobConfig) GetInputs() []*Input {
if x != nil {
return x.Inputs
}
return nil
}
func (x *JobConfig) GetEditList() []*EditAtom {
if x != nil {
return x.EditList
}
return nil
}
func (x *JobConfig) GetElementaryStreams() []*ElementaryStream {
if x != nil {
return x.ElementaryStreams
}
return nil
}
func (x *JobConfig) GetMuxStreams() []*MuxStream {
if x != nil {
return x.MuxStreams
}
return nil
}
func (x *JobConfig) GetManifests() []*Manifest {
if x != nil {
return x.Manifests
}
return nil
}
func (x *JobConfig) GetOutput() *Output {
if x != nil {
return x.Output
}
return nil
}
func (x *JobConfig) GetAdBreaks() []*AdBreak {
if x != nil {
return x.AdBreaks
}
return nil
}
func (x *JobConfig) GetPubsubDestination() *PubsubDestination {
if x != nil {
return x.PubsubDestination
}
return nil
}
func (x *JobConfig) GetSpriteSheets() []*SpriteSheet {
if x != nil {
return x.SpriteSheets
}
return nil
}
func (x *JobConfig) GetOverlays() []*Overlay {
if x != nil {
return x.Overlays
}
return nil
}
// Input asset.
type Input struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A unique key for this input. Must be specified when using advanced
// mapping and edit lists.
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// 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 is populated from `Job.input_uri`. See
// [Supported input and output
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).
Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"`
// Preprocessing configurations.
PreprocessingConfig *PreprocessingConfig `protobuf:"bytes,3,opt,name=preprocessing_config,json=preprocessingConfig,proto3" json:"preprocessing_config,omitempty"`
}
func (x *Input) Reset() {
*x = Input{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Input) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Input) ProtoMessage() {}
func (x *Input) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Input.ProtoReflect.Descriptor instead.
func (*Input) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{3}
}
func (x *Input) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *Input) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
func (x *Input) GetPreprocessingConfig() *PreprocessingConfig {
if x != nil {
return x.PreprocessingConfig
}
return nil
}
// Location of output file(s) in a Cloud Storage bucket.
type Output struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// URI for the output file(s). For example, `gs://my-bucket/outputs/`.
// If empty, the value is populated from `Job.output_uri`. See
// [Supported input and output
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).
Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
}
func (x *Output) Reset() {
*x = Output{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Output) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Output) ProtoMessage() {}
func (x *Output) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Output.ProtoReflect.Descriptor instead.
func (*Output) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{4}
}
func (x *Output) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
// Edit atom.
type EditAtom struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A unique key for this atom. Must be specified when using advanced
// mapping.
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// List of `Input.key`s identifying files that should be used in this atom.
// The listed `inputs` must have the same timeline.
Inputs []string `protobuf:"bytes,2,rep,name=inputs,proto3" json:"inputs,omitempty"`
// 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.
EndTimeOffset *duration.Duration `protobuf:"bytes,3,opt,name=end_time_offset,json=endTimeOffset,proto3" json:"end_time_offset,omitempty"`
// Start time in seconds for the atom, relative to the input file timeline.
// The default is `0s`.
StartTimeOffset *duration.Duration `protobuf:"bytes,4,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
}
func (x *EditAtom) Reset() {
*x = EditAtom{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EditAtom) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EditAtom) ProtoMessage() {}
func (x *EditAtom) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EditAtom.ProtoReflect.Descriptor instead.
func (*EditAtom) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{5}
}
func (x *EditAtom) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *EditAtom) GetInputs() []string {
if x != nil {
return x.Inputs
}
return nil
}
func (x *EditAtom) GetEndTimeOffset() *duration.Duration {
if x != nil {
return x.EndTimeOffset
}
return nil
}
func (x *EditAtom) GetStartTimeOffset() *duration.Duration {
if x != nil {
return x.StartTimeOffset
}
return nil
}
// Ad break.
type AdBreak struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Start time in seconds for the ad break, relative to the output file
// timeline. The default is `0s`.
StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
}
func (x *AdBreak) Reset() {
*x = AdBreak{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AdBreak) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AdBreak) ProtoMessage() {}
func (x *AdBreak) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AdBreak.ProtoReflect.Descriptor instead.
func (*AdBreak) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{6}
}
func (x *AdBreak) GetStartTimeOffset() *duration.Duration {
if x != nil {
return x.StartTimeOffset
}
return nil
}
// 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.
type ElementaryStream struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A unique key for this elementary stream.
Key string `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"`
// Encoding of an audio, video, or text track.
//
// Types that are assignable to ElementaryStream:
//
// *ElementaryStream_VideoStream
// *ElementaryStream_AudioStream
// *ElementaryStream_TextStream
ElementaryStream isElementaryStream_ElementaryStream `protobuf_oneof:"elementary_stream"`
}
func (x *ElementaryStream) Reset() {
*x = ElementaryStream{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ElementaryStream) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ElementaryStream) ProtoMessage() {}
func (x *ElementaryStream) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ElementaryStream.ProtoReflect.Descriptor instead.
func (*ElementaryStream) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{7}
}
func (x *ElementaryStream) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (m *ElementaryStream) GetElementaryStream() isElementaryStream_ElementaryStream {
if m != nil {
return m.ElementaryStream
}
return nil
}
func (x *ElementaryStream) GetVideoStream() *VideoStream {
if x, ok := x.GetElementaryStream().(*ElementaryStream_VideoStream); ok {
return x.VideoStream
}
return nil
}
func (x *ElementaryStream) GetAudioStream() *AudioStream {
if x, ok := x.GetElementaryStream().(*ElementaryStream_AudioStream); ok {
return x.AudioStream
}
return nil
}
func (x *ElementaryStream) GetTextStream() *TextStream {
if x, ok := x.GetElementaryStream().(*ElementaryStream_TextStream); ok {
return x.TextStream
}
return nil
}
type isElementaryStream_ElementaryStream interface {
isElementaryStream_ElementaryStream()
}
type ElementaryStream_VideoStream struct {
// Encoding of a video stream.
VideoStream *VideoStream `protobuf:"bytes,1,opt,name=video_stream,json=videoStream,proto3,oneof"`
}
type ElementaryStream_AudioStream struct {
// Encoding of an audio stream.
AudioStream *AudioStream `protobuf:"bytes,2,opt,name=audio_stream,json=audioStream,proto3,oneof"`
}
type ElementaryStream_TextStream struct {
// Encoding of a text stream. For example, closed captions or subtitles.
TextStream *TextStream `protobuf:"bytes,3,opt,name=text_stream,json=textStream,proto3,oneof"`
}
func (*ElementaryStream_VideoStream) isElementaryStream_ElementaryStream() {}
func (*ElementaryStream_AudioStream) isElementaryStream_ElementaryStream() {}
func (*ElementaryStream_TextStream) isElementaryStream_ElementaryStream() {}
// Multiplexing settings for output stream.
type MuxStream struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A unique key for this multiplexed stream. HLS media manifests will be
// named `MuxStream.key` with the `.m3u8` extension suffix.
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
// 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`.
FileName string `protobuf:"bytes,2,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
// The container format. The default is `mp4`
//
// Supported container formats:
//
// - `ts`
// - `fmp4`- the corresponding file extension is `.m4s`
// - `mp4`
// - `vtt`
//
// See also:
// [Supported input and output
// formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats)
Container string `protobuf:"bytes,3,opt,name=container,proto3" json:"container,omitempty"`
// List of `ElementaryStream.key`s multiplexed in this stream.
ElementaryStreams []string `protobuf:"bytes,4,rep,name=elementary_streams,json=elementaryStreams,proto3" json:"elementary_streams,omitempty"`
// Segment settings for `ts`, `fmp4` and `vtt`.
SegmentSettings *SegmentSettings `protobuf:"bytes,5,opt,name=segment_settings,json=segmentSettings,proto3" json:"segment_settings,omitempty"`
}
func (x *MuxStream) Reset() {
*x = MuxStream{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MuxStream) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MuxStream) ProtoMessage() {}
func (x *MuxStream) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MuxStream.ProtoReflect.Descriptor instead.
func (*MuxStream) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{8}
}
func (x *MuxStream) GetKey() string {
if x != nil {
return x.Key
}
return ""
}
func (x *MuxStream) GetFileName() string {
if x != nil {
return x.FileName
}
return ""
}
func (x *MuxStream) GetContainer() string {
if x != nil {
return x.Container
}
return ""
}
func (x *MuxStream) GetElementaryStreams() []string {
if x != nil {
return x.ElementaryStreams
}
return nil
}
func (x *MuxStream) GetSegmentSettings() *SegmentSettings {
if x != nil {
return x.SegmentSettings
}
return nil
}
// Manifest configuration.
type Manifest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The name of the generated file. The default is `manifest` with the
// extension suffix corresponding to the `Manifest.type`.
FileName string `protobuf:"bytes,1,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
// Required. Type of the manifest, can be `HLS` or `DASH`.
Type Manifest_ManifestType `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.video.transcoder.v1.Manifest_ManifestType" json:"type,omitempty"`
// 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`.
MuxStreams []string `protobuf:"bytes,3,rep,name=mux_streams,json=muxStreams,proto3" json:"mux_streams,omitempty"`
}
func (x *Manifest) Reset() {
*x = Manifest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Manifest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Manifest) ProtoMessage() {}
func (x *Manifest) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Manifest.ProtoReflect.Descriptor instead.
func (*Manifest) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{9}
}
func (x *Manifest) GetFileName() string {
if x != nil {
return x.FileName
}
return ""
}
func (x *Manifest) GetType() Manifest_ManifestType {
if x != nil {
return x.Type
}
return Manifest_MANIFEST_TYPE_UNSPECIFIED
}
func (x *Manifest) GetMuxStreams() []string {
if x != nil {
return x.MuxStreams
}
return nil
}
// A Pub/Sub destination.
type PubsubDestination struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The name of the Pub/Sub topic to publish job completion notification
// to. For example: `projects/{project}/topics/{topic}`.
Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"`
}
func (x *PubsubDestination) Reset() {
*x = PubsubDestination{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PubsubDestination) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PubsubDestination) ProtoMessage() {}
func (x *PubsubDestination) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PubsubDestination.ProtoReflect.Descriptor instead.
func (*PubsubDestination) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{10}
}
func (x *PubsubDestination) GetTopic() string {
if x != nil {
return x.Topic
}
return ""
}
// Sprite sheet configuration.
type SpriteSheet struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Format type. The default is `jpeg`.
//
// Supported formats:
//
// - `jpeg`
Format string `protobuf:"bytes,1,opt,name=format,proto3" json:"format,omitempty"`
// 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`.
FilePrefix string `protobuf:"bytes,2,opt,name=file_prefix,json=filePrefix,proto3" json:"file_prefix,omitempty"`
// Required. The width of sprite in pixels. Must be an even integer. To preserve the
// source aspect ratio, set the [SpriteSheet.sprite_width_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_width_pixels] field or
// the [SpriteSheet.sprite_height_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_height_pixels] field, but not both (the API will
// automatically calculate the missing field).
SpriteWidthPixels int32 `protobuf:"varint,3,opt,name=sprite_width_pixels,json=spriteWidthPixels,proto3" json:"sprite_width_pixels,omitempty"`
// Required. The height of sprite in pixels. Must be an even integer. To preserve the
// source aspect ratio, set the [SpriteSheet.sprite_height_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_height_pixels] field or
// the [SpriteSheet.sprite_width_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_width_pixels] field, but not both (the API will
// automatically calculate the missing field).
SpriteHeightPixels int32 `protobuf:"varint,4,opt,name=sprite_height_pixels,json=spriteHeightPixels,proto3" json:"sprite_height_pixels,omitempty"`
// The maximum number of sprites per row in a sprite sheet. The default is 0,
// which indicates no maximum limit.
ColumnCount int32 `protobuf:"varint,5,opt,name=column_count,json=columnCount,proto3" json:"column_count,omitempty"`
// 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.
RowCount int32 `protobuf:"varint,6,opt,name=row_count,json=rowCount,proto3" json:"row_count,omitempty"`
// Start time in seconds, relative to the output file timeline. Determines the
// first sprite to pick. The default is `0s`.
StartTimeOffset *duration.Duration `protobuf:"bytes,7,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
// 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.
EndTimeOffset *duration.Duration `protobuf:"bytes,8,opt,name=end_time_offset,json=endTimeOffset,proto3" json:"end_time_offset,omitempty"`
// Specify either total number of sprites or interval to create sprites.
//
// Types that are assignable to ExtractionStrategy:
//
// *SpriteSheet_TotalCount
// *SpriteSheet_Interval
ExtractionStrategy isSpriteSheet_ExtractionStrategy `protobuf_oneof:"extraction_strategy"`
// 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.
Quality int32 `protobuf:"varint,11,opt,name=quality,proto3" json:"quality,omitempty"`
}
func (x *SpriteSheet) Reset() {
*x = SpriteSheet{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SpriteSheet) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SpriteSheet) ProtoMessage() {}
func (x *SpriteSheet) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SpriteSheet.ProtoReflect.Descriptor instead.
func (*SpriteSheet) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{11}
}
func (x *SpriteSheet) GetFormat() string {
if x != nil {
return x.Format
}
return ""
}
func (x *SpriteSheet) GetFilePrefix() string {
if x != nil {
return x.FilePrefix
}
return ""
}
func (x *SpriteSheet) GetSpriteWidthPixels() int32 {
if x != nil {
return x.SpriteWidthPixels
}
return 0
}
func (x *SpriteSheet) GetSpriteHeightPixels() int32 {
if x != nil {
return x.SpriteHeightPixels
}
return 0
}
func (x *SpriteSheet) GetColumnCount() int32 {
if x != nil {
return x.ColumnCount
}
return 0
}
func (x *SpriteSheet) GetRowCount() int32 {
if x != nil {
return x.RowCount
}
return 0
}
func (x *SpriteSheet) GetStartTimeOffset() *duration.Duration {
if x != nil {
return x.StartTimeOffset
}
return nil
}
func (x *SpriteSheet) GetEndTimeOffset() *duration.Duration {
if x != nil {
return x.EndTimeOffset
}
return nil
}
func (m *SpriteSheet) GetExtractionStrategy() isSpriteSheet_ExtractionStrategy {
if m != nil {
return m.ExtractionStrategy
}
return nil
}
func (x *SpriteSheet) GetTotalCount() int32 {
if x, ok := x.GetExtractionStrategy().(*SpriteSheet_TotalCount); ok {
return x.TotalCount
}
return 0
}
func (x *SpriteSheet) GetInterval() *duration.Duration {
if x, ok := x.GetExtractionStrategy().(*SpriteSheet_Interval); ok {
return x.Interval
}
return nil
}
func (x *SpriteSheet) GetQuality() int32 {
if x != nil {
return x.Quality
}
return 0
}
type isSpriteSheet_ExtractionStrategy interface {
isSpriteSheet_ExtractionStrategy()
}
type SpriteSheet_TotalCount struct {
// Total number of sprites. Create the specified number of sprites
// distributed evenly across the timeline of the output media. The default
// is 100.
TotalCount int32 `protobuf:"varint,9,opt,name=total_count,json=totalCount,proto3,oneof"`
}
type SpriteSheet_Interval struct {
// Starting from `0s`, create sprites at regular intervals. Specify the
// interval value in seconds.
Interval *duration.Duration `protobuf:"bytes,10,opt,name=interval,proto3,oneof"`
}
func (*SpriteSheet_TotalCount) isSpriteSheet_ExtractionStrategy() {}
func (*SpriteSheet_Interval) isSpriteSheet_ExtractionStrategy() {}
// Overlay configuration.
type Overlay struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Image overlay.
Image *Overlay_Image `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"`
// List of Animations. The list should be chronological, without any time
// overlap.
Animations []*Overlay_Animation `protobuf:"bytes,2,rep,name=animations,proto3" json:"animations,omitempty"`
}
func (x *Overlay) Reset() {
*x = Overlay{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Overlay) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Overlay) ProtoMessage() {}
func (x *Overlay) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Overlay.ProtoReflect.Descriptor instead.
func (*Overlay) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{12}
}
func (x *Overlay) GetImage() *Overlay_Image {
if x != nil {
return x.Image
}
return nil
}
func (x *Overlay) GetAnimations() []*Overlay_Animation {
if x != nil {
return x.Animations
}
return nil
}
// Preprocessing configurations.
type PreprocessingConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Color preprocessing configuration.
Color *PreprocessingConfig_Color `protobuf:"bytes,1,opt,name=color,proto3" json:"color,omitempty"`
// Denoise preprocessing configuration.
Denoise *PreprocessingConfig_Denoise `protobuf:"bytes,2,opt,name=denoise,proto3" json:"denoise,omitempty"`
// Deblock preprocessing configuration.
Deblock *PreprocessingConfig_Deblock `protobuf:"bytes,3,opt,name=deblock,proto3" json:"deblock,omitempty"`
// Audio preprocessing configuration.
Audio *PreprocessingConfig_Audio `protobuf:"bytes,4,opt,name=audio,proto3" json:"audio,omitempty"`
// Specify the video cropping configuration.
Crop *PreprocessingConfig_Crop `protobuf:"bytes,5,opt,name=crop,proto3" json:"crop,omitempty"`
// Specify the video pad filter configuration.
Pad *PreprocessingConfig_Pad `protobuf:"bytes,6,opt,name=pad,proto3" json:"pad,omitempty"`
}
func (x *PreprocessingConfig) Reset() {
*x = PreprocessingConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreprocessingConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreprocessingConfig) ProtoMessage() {}
func (x *PreprocessingConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreprocessingConfig.ProtoReflect.Descriptor instead.
func (*PreprocessingConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{13}
}
func (x *PreprocessingConfig) GetColor() *PreprocessingConfig_Color {
if x != nil {
return x.Color
}
return nil
}
func (x *PreprocessingConfig) GetDenoise() *PreprocessingConfig_Denoise {
if x != nil {
return x.Denoise
}
return nil
}
func (x *PreprocessingConfig) GetDeblock() *PreprocessingConfig_Deblock {
if x != nil {
return x.Deblock
}
return nil
}
func (x *PreprocessingConfig) GetAudio() *PreprocessingConfig_Audio {
if x != nil {
return x.Audio
}
return nil
}
func (x *PreprocessingConfig) GetCrop() *PreprocessingConfig_Crop {
if x != nil {
return x.Crop
}
return nil
}
func (x *PreprocessingConfig) GetPad() *PreprocessingConfig_Pad {
if x != nil {
return x.Pad
}
return nil
}
// Video stream resource.
type VideoStream struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Codec settings can be h264, h265, or vp9.
//
// Types that are assignable to CodecSettings:
//
// *VideoStream_H264
// *VideoStream_H265
// *VideoStream_Vp9
CodecSettings isVideoStream_CodecSettings `protobuf_oneof:"codec_settings"`
}
func (x *VideoStream) Reset() {
*x = VideoStream{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VideoStream) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VideoStream) ProtoMessage() {}
func (x *VideoStream) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VideoStream.ProtoReflect.Descriptor instead.
func (*VideoStream) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{14}
}
func (m *VideoStream) GetCodecSettings() isVideoStream_CodecSettings {
if m != nil {
return m.CodecSettings
}
return nil
}
func (x *VideoStream) GetH264() *VideoStream_H264CodecSettings {
if x, ok := x.GetCodecSettings().(*VideoStream_H264); ok {
return x.H264
}
return nil
}
func (x *VideoStream) GetH265() *VideoStream_H265CodecSettings {
if x, ok := x.GetCodecSettings().(*VideoStream_H265); ok {
return x.H265
}
return nil
}
func (x *VideoStream) GetVp9() *VideoStream_Vp9CodecSettings {
if x, ok := x.GetCodecSettings().(*VideoStream_Vp9); ok {
return x.Vp9
}
return nil
}
type isVideoStream_CodecSettings interface {
isVideoStream_CodecSettings()
}
type VideoStream_H264 struct {
// H264 codec settings.
H264 *VideoStream_H264CodecSettings `protobuf:"bytes,1,opt,name=h264,proto3,oneof"`
}
type VideoStream_H265 struct {
// H265 codec settings.
H265 *VideoStream_H265CodecSettings `protobuf:"bytes,2,opt,name=h265,proto3,oneof"`
}
type VideoStream_Vp9 struct {
// VP9 codec settings.
Vp9 *VideoStream_Vp9CodecSettings `protobuf:"bytes,3,opt,name=vp9,proto3,oneof"`
}
func (*VideoStream_H264) isVideoStream_CodecSettings() {}
func (*VideoStream_H265) isVideoStream_CodecSettings() {}
func (*VideoStream_Vp9) isVideoStream_CodecSettings() {}
// Audio stream resource.
type AudioStream struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The codec for this audio stream. The default is `aac`.
//
// Supported audio codecs:
//
// - `aac`
// - `aac-he`
// - `aac-he-v2`
// - `mp3`
// - `ac3`
// - `eac3`
Codec string `protobuf:"bytes,1,opt,name=codec,proto3" json:"codec,omitempty"`
// Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000.
BitrateBps int32 `protobuf:"varint,2,opt,name=bitrate_bps,json=bitrateBps,proto3" json:"bitrate_bps,omitempty"`
// Number of audio channels. Must be between 1 and 6. The default is 2.
ChannelCount int32 `protobuf:"varint,3,opt,name=channel_count,json=channelCount,proto3" json:"channel_count,omitempty"`
// 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
ChannelLayout []string `protobuf:"bytes,4,rep,name=channel_layout,json=channelLayout,proto3" json:"channel_layout,omitempty"`
// The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
Mapping []*AudioStream_AudioMapping `protobuf:"bytes,5,rep,name=mapping,proto3" json:"mapping,omitempty"`
// The audio sample rate in Hertz. The default is 48000 Hertz.
SampleRateHertz int32 `protobuf:"varint,6,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"`
}
func (x *AudioStream) Reset() {
*x = AudioStream{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AudioStream) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AudioStream) ProtoMessage() {}
func (x *AudioStream) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AudioStream.ProtoReflect.Descriptor instead.
func (*AudioStream) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{15}
}
func (x *AudioStream) GetCodec() string {
if x != nil {
return x.Codec
}
return ""
}
func (x *AudioStream) GetBitrateBps() int32 {
if x != nil {
return x.BitrateBps
}
return 0
}
func (x *AudioStream) GetChannelCount() int32 {
if x != nil {
return x.ChannelCount
}
return 0
}
func (x *AudioStream) GetChannelLayout() []string {
if x != nil {
return x.ChannelLayout
}
return nil
}
func (x *AudioStream) GetMapping() []*AudioStream_AudioMapping {
if x != nil {
return x.Mapping
}
return nil
}
func (x *AudioStream) GetSampleRateHertz() int32 {
if x != nil {
return x.SampleRateHertz
}
return 0
}
// Encoding of a text stream. For example, closed captions or subtitles.
type TextStream struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The codec for this text stream. The default is `webvtt`.
//
// Supported text codecs:
//
// - `srt`
// - `ttml`
// - `cea608`
// - `cea708`
// - `webvtt`
Codec string `protobuf:"bytes,1,opt,name=codec,proto3" json:"codec,omitempty"`
// The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
Mapping []*TextStream_TextMapping `protobuf:"bytes,3,rep,name=mapping,proto3" json:"mapping,omitempty"`
}
func (x *TextStream) Reset() {
*x = TextStream{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TextStream) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TextStream) ProtoMessage() {}
func (x *TextStream) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TextStream.ProtoReflect.Descriptor instead.
func (*TextStream) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{16}
}
func (x *TextStream) GetCodec() string {
if x != nil {
return x.Codec
}
return ""
}
func (x *TextStream) GetMapping() []*TextStream_TextMapping {
if x != nil {
return x.Mapping
}
return nil
}
// Segment settings for `ts`, `fmp4` and `vtt`.
type SegmentSettings struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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).
SegmentDuration *duration.Duration `protobuf:"bytes,1,opt,name=segment_duration,json=segmentDuration,proto3" json:"segment_duration,omitempty"`
// Required. Create an individual segment file. The default is `false`.
IndividualSegments bool `protobuf:"varint,3,opt,name=individual_segments,json=individualSegments,proto3" json:"individual_segments,omitempty"`
}
func (x *SegmentSettings) Reset() {
*x = SegmentSettings{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SegmentSettings) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SegmentSettings) ProtoMessage() {}
func (x *SegmentSettings) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SegmentSettings.ProtoReflect.Descriptor instead.
func (*SegmentSettings) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{17}
}
func (x *SegmentSettings) GetSegmentDuration() *duration.Duration {
if x != nil {
return x.SegmentDuration
}
return nil
}
func (x *SegmentSettings) GetIndividualSegments() bool {
if x != nil {
return x.IndividualSegments
}
return false
}
// 2D normalized coordinates. Default: `{0.0, 0.0}`
type Overlay_NormalizedCoordinate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Normalized x coordinate.
X float64 `protobuf:"fixed64,1,opt,name=x,proto3" json:"x,omitempty"`
// Normalized y coordinate.
Y float64 `protobuf:"fixed64,2,opt,name=y,proto3" json:"y,omitempty"`
}
func (x *Overlay_NormalizedCoordinate) Reset() {
*x = Overlay_NormalizedCoordinate{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Overlay_NormalizedCoordinate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Overlay_NormalizedCoordinate) ProtoMessage() {}
func (x *Overlay_NormalizedCoordinate) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Overlay_NormalizedCoordinate.ProtoReflect.Descriptor instead.
func (*Overlay_NormalizedCoordinate) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{12, 0}
}
func (x *Overlay_NormalizedCoordinate) GetX() float64 {
if x != nil {
return x.X
}
return 0
}
func (x *Overlay_NormalizedCoordinate) GetY() float64 {
if x != nil {
return x.Y
}
return 0
}
// Overlaid jpeg image.
type Overlay_Image struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. URI of the JPEG image in Cloud Storage. For example,
// `gs://bucket/inputs/image.jpeg`. JPEG is the only supported image type.
Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
// 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`.
Resolution *Overlay_NormalizedCoordinate `protobuf:"bytes,2,opt,name=resolution,proto3" json:"resolution,omitempty"`
// 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`.
Alpha float64 `protobuf:"fixed64,3,opt,name=alpha,proto3" json:"alpha,omitempty"`
}
func (x *Overlay_Image) Reset() {
*x = Overlay_Image{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Overlay_Image) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Overlay_Image) ProtoMessage() {}
func (x *Overlay_Image) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Overlay_Image.ProtoReflect.Descriptor instead.
func (*Overlay_Image) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{12, 1}
}
func (x *Overlay_Image) GetUri() string {
if x != nil {
return x.Uri
}
return ""
}
func (x *Overlay_Image) GetResolution() *Overlay_NormalizedCoordinate {
if x != nil {
return x.Resolution
}
return nil
}
func (x *Overlay_Image) GetAlpha() float64 {
if x != nil {
return x.Alpha
}
return 0
}
// Display static overlay object.
type Overlay_AnimationStatic struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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.
Xy *Overlay_NormalizedCoordinate `protobuf:"bytes,1,opt,name=xy,proto3" json:"xy,omitempty"`
// The time to start displaying the overlay object, in seconds. Default: 0
StartTimeOffset *duration.Duration `protobuf:"bytes,2,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
}
func (x *Overlay_AnimationStatic) Reset() {
*x = Overlay_AnimationStatic{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Overlay_AnimationStatic) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Overlay_AnimationStatic) ProtoMessage() {}
func (x *Overlay_AnimationStatic) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Overlay_AnimationStatic.ProtoReflect.Descriptor instead.
func (*Overlay_AnimationStatic) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{12, 2}
}
func (x *Overlay_AnimationStatic) GetXy() *Overlay_NormalizedCoordinate {
if x != nil {
return x.Xy
}
return nil
}
func (x *Overlay_AnimationStatic) GetStartTimeOffset() *duration.Duration {
if x != nil {
return x.StartTimeOffset
}
return nil
}
// Display overlay object with fade animation.
type Overlay_AnimationFade struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.
FadeType Overlay_FadeType `protobuf:"varint,1,opt,name=fade_type,json=fadeType,proto3,enum=google.cloud.video.transcoder.v1.Overlay_FadeType" json:"fade_type,omitempty"`
// 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.
Xy *Overlay_NormalizedCoordinate `protobuf:"bytes,2,opt,name=xy,proto3" json:"xy,omitempty"`
// The time to start the fade animation, in seconds. Default: 0
StartTimeOffset *duration.Duration `protobuf:"bytes,3,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
// The time to end the fade animation, in seconds. Default:
// `start_time_offset` + 1s
EndTimeOffset *duration.Duration `protobuf:"bytes,4,opt,name=end_time_offset,json=endTimeOffset,proto3" json:"end_time_offset,omitempty"`
}
func (x *Overlay_AnimationFade) Reset() {
*x = Overlay_AnimationFade{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Overlay_AnimationFade) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Overlay_AnimationFade) ProtoMessage() {}
func (x *Overlay_AnimationFade) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Overlay_AnimationFade.ProtoReflect.Descriptor instead.
func (*Overlay_AnimationFade) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{12, 3}
}
func (x *Overlay_AnimationFade) GetFadeType() Overlay_FadeType {
if x != nil {
return x.FadeType
}
return Overlay_FADE_TYPE_UNSPECIFIED
}
func (x *Overlay_AnimationFade) GetXy() *Overlay_NormalizedCoordinate {
if x != nil {
return x.Xy
}
return nil
}
func (x *Overlay_AnimationFade) GetStartTimeOffset() *duration.Duration {
if x != nil {
return x.StartTimeOffset
}
return nil
}
func (x *Overlay_AnimationFade) GetEndTimeOffset() *duration.Duration {
if x != nil {
return x.EndTimeOffset
}
return nil
}
// 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.
type Overlay_AnimationEnd struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The time to end overlay object, in seconds. Default: 0
StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"`
}
func (x *Overlay_AnimationEnd) Reset() {
*x = Overlay_AnimationEnd{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Overlay_AnimationEnd) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Overlay_AnimationEnd) ProtoMessage() {}
func (x *Overlay_AnimationEnd) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Overlay_AnimationEnd.ProtoReflect.Descriptor instead.
func (*Overlay_AnimationEnd) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{12, 4}
}
func (x *Overlay_AnimationEnd) GetStartTimeOffset() *duration.Duration {
if x != nil {
return x.StartTimeOffset
}
return nil
}
// Animation types.
type Overlay_Animation struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Animations can be static or fade, or they can end the previous animation.
//
// Types that are assignable to AnimationType:
//
// *Overlay_Animation_AnimationStatic
// *Overlay_Animation_AnimationFade
// *Overlay_Animation_AnimationEnd
AnimationType isOverlay_Animation_AnimationType `protobuf_oneof:"animation_type"`
}
func (x *Overlay_Animation) Reset() {
*x = Overlay_Animation{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Overlay_Animation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Overlay_Animation) ProtoMessage() {}
func (x *Overlay_Animation) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Overlay_Animation.ProtoReflect.Descriptor instead.
func (*Overlay_Animation) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{12, 5}
}
func (m *Overlay_Animation) GetAnimationType() isOverlay_Animation_AnimationType {
if m != nil {
return m.AnimationType
}
return nil
}
func (x *Overlay_Animation) GetAnimationStatic() *Overlay_AnimationStatic {
if x, ok := x.GetAnimationType().(*Overlay_Animation_AnimationStatic); ok {
return x.AnimationStatic
}
return nil
}
func (x *Overlay_Animation) GetAnimationFade() *Overlay_AnimationFade {
if x, ok := x.GetAnimationType().(*Overlay_Animation_AnimationFade); ok {
return x.AnimationFade
}
return nil
}
func (x *Overlay_Animation) GetAnimationEnd() *Overlay_AnimationEnd {
if x, ok := x.GetAnimationType().(*Overlay_Animation_AnimationEnd); ok {
return x.AnimationEnd
}
return nil
}
type isOverlay_Animation_AnimationType interface {
isOverlay_Animation_AnimationType()
}
type Overlay_Animation_AnimationStatic struct {
// Display static overlay object.
AnimationStatic *Overlay_AnimationStatic `protobuf:"bytes,1,opt,name=animation_static,json=animationStatic,proto3,oneof"`
}
type Overlay_Animation_AnimationFade struct {
// Display overlay object with fade animation.
AnimationFade *Overlay_AnimationFade `protobuf:"bytes,2,opt,name=animation_fade,json=animationFade,proto3,oneof"`
}
type Overlay_Animation_AnimationEnd struct {
// End previous animation.
AnimationEnd *Overlay_AnimationEnd `protobuf:"bytes,3,opt,name=animation_end,json=animationEnd,proto3,oneof"`
}
func (*Overlay_Animation_AnimationStatic) isOverlay_Animation_AnimationType() {}
func (*Overlay_Animation_AnimationFade) isOverlay_Animation_AnimationType() {}
func (*Overlay_Animation_AnimationEnd) isOverlay_Animation_AnimationType() {}
// Color preprocessing configuration.
//
// **Note:** This configuration is not supported.
type PreprocessingConfig_Color struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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.
Saturation float64 `protobuf:"fixed64,1,opt,name=saturation,proto3" json:"saturation,omitempty"`
// 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.
Contrast float64 `protobuf:"fixed64,2,opt,name=contrast,proto3" json:"contrast,omitempty"`
// 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.
Brightness float64 `protobuf:"fixed64,3,opt,name=brightness,proto3" json:"brightness,omitempty"`
}
func (x *PreprocessingConfig_Color) Reset() {
*x = PreprocessingConfig_Color{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreprocessingConfig_Color) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreprocessingConfig_Color) ProtoMessage() {}
func (x *PreprocessingConfig_Color) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreprocessingConfig_Color.ProtoReflect.Descriptor instead.
func (*PreprocessingConfig_Color) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{13, 0}
}
func (x *PreprocessingConfig_Color) GetSaturation() float64 {
if x != nil {
return x.Saturation
}
return 0
}
func (x *PreprocessingConfig_Color) GetContrast() float64 {
if x != nil {
return x.Contrast
}
return 0
}
func (x *PreprocessingConfig_Color) GetBrightness() float64 {
if x != nil {
return x.Brightness
}
return 0
}
// Denoise preprocessing configuration.
//
// **Note:** This configuration is not supported.
type PreprocessingConfig_Denoise struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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.
Strength float64 `protobuf:"fixed64,1,opt,name=strength,proto3" json:"strength,omitempty"`
// Set the denoiser mode. The default is `standard`.
//
// Supported denoiser modes:
//
// - `standard`
// - `grain`
Tune string `protobuf:"bytes,2,opt,name=tune,proto3" json:"tune,omitempty"`
}
func (x *PreprocessingConfig_Denoise) Reset() {
*x = PreprocessingConfig_Denoise{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreprocessingConfig_Denoise) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreprocessingConfig_Denoise) ProtoMessage() {}
func (x *PreprocessingConfig_Denoise) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreprocessingConfig_Denoise.ProtoReflect.Descriptor instead.
func (*PreprocessingConfig_Denoise) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{13, 1}
}
func (x *PreprocessingConfig_Denoise) GetStrength() float64 {
if x != nil {
return x.Strength
}
return 0
}
func (x *PreprocessingConfig_Denoise) GetTune() string {
if x != nil {
return x.Tune
}
return ""
}
// Deblock preprocessing configuration.
//
// **Note:** This configuration is not supported.
type PreprocessingConfig_Deblock struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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.
Strength float64 `protobuf:"fixed64,1,opt,name=strength,proto3" json:"strength,omitempty"`
// Enable deblocker. The default is `false`.
Enabled bool `protobuf:"varint,2,opt,name=enabled,proto3" json:"enabled,omitempty"`
}
func (x *PreprocessingConfig_Deblock) Reset() {
*x = PreprocessingConfig_Deblock{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreprocessingConfig_Deblock) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreprocessingConfig_Deblock) ProtoMessage() {}
func (x *PreprocessingConfig_Deblock) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreprocessingConfig_Deblock.ProtoReflect.Descriptor instead.
func (*PreprocessingConfig_Deblock) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{13, 2}
}
func (x *PreprocessingConfig_Deblock) GetStrength() float64 {
if x != nil {
return x.Strength
}
return 0
}
func (x *PreprocessingConfig_Deblock) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
// Audio preprocessing configuration.
type PreprocessingConfig_Audio struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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
Lufs float64 `protobuf:"fixed64,1,opt,name=lufs,proto3" json:"lufs,omitempty"`
// Enable boosting high frequency components. The default is `false`.
//
// **Note:** This field is not supported.
HighBoost bool `protobuf:"varint,2,opt,name=high_boost,json=highBoost,proto3" json:"high_boost,omitempty"`
// Enable boosting low frequency components. The default is `false`.
//
// **Note:** This field is not supported.
LowBoost bool `protobuf:"varint,3,opt,name=low_boost,json=lowBoost,proto3" json:"low_boost,omitempty"`
}
func (x *PreprocessingConfig_Audio) Reset() {
*x = PreprocessingConfig_Audio{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreprocessingConfig_Audio) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreprocessingConfig_Audio) ProtoMessage() {}
func (x *PreprocessingConfig_Audio) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreprocessingConfig_Audio.ProtoReflect.Descriptor instead.
func (*PreprocessingConfig_Audio) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{13, 3}
}
func (x *PreprocessingConfig_Audio) GetLufs() float64 {
if x != nil {
return x.Lufs
}
return 0
}
func (x *PreprocessingConfig_Audio) GetHighBoost() bool {
if x != nil {
return x.HighBoost
}
return false
}
func (x *PreprocessingConfig_Audio) GetLowBoost() bool {
if x != nil {
return x.LowBoost
}
return false
}
// Video cropping configuration for the input video. The cropped input video
// is scaled to match the output resolution.
type PreprocessingConfig_Crop struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The number of pixels to crop from the top. The default is 0.
TopPixels int32 `protobuf:"varint,1,opt,name=top_pixels,json=topPixels,proto3" json:"top_pixels,omitempty"`
// The number of pixels to crop from the bottom. The default is 0.
BottomPixels int32 `protobuf:"varint,2,opt,name=bottom_pixels,json=bottomPixels,proto3" json:"bottom_pixels,omitempty"`
// The number of pixels to crop from the left. The default is 0.
LeftPixels int32 `protobuf:"varint,3,opt,name=left_pixels,json=leftPixels,proto3" json:"left_pixels,omitempty"`
// The number of pixels to crop from the right. The default is 0.
RightPixels int32 `protobuf:"varint,4,opt,name=right_pixels,json=rightPixels,proto3" json:"right_pixels,omitempty"`
}
func (x *PreprocessingConfig_Crop) Reset() {
*x = PreprocessingConfig_Crop{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreprocessingConfig_Crop) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreprocessingConfig_Crop) ProtoMessage() {}
func (x *PreprocessingConfig_Crop) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreprocessingConfig_Crop.ProtoReflect.Descriptor instead.
func (*PreprocessingConfig_Crop) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{13, 4}
}
func (x *PreprocessingConfig_Crop) GetTopPixels() int32 {
if x != nil {
return x.TopPixels
}
return 0
}
func (x *PreprocessingConfig_Crop) GetBottomPixels() int32 {
if x != nil {
return x.BottomPixels
}
return 0
}
func (x *PreprocessingConfig_Crop) GetLeftPixels() int32 {
if x != nil {
return x.LeftPixels
}
return 0
}
func (x *PreprocessingConfig_Crop) GetRightPixels() int32 {
if x != nil {
return x.RightPixels
}
return 0
}
// Pad filter configuration for the input video. The padded input video
// is scaled after padding with black to match the output resolution.
type PreprocessingConfig_Pad struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The number of pixels to add to the top. The default is 0.
TopPixels int32 `protobuf:"varint,1,opt,name=top_pixels,json=topPixels,proto3" json:"top_pixels,omitempty"`
// The number of pixels to add to the bottom. The default is 0.
BottomPixels int32 `protobuf:"varint,2,opt,name=bottom_pixels,json=bottomPixels,proto3" json:"bottom_pixels,omitempty"`
// The number of pixels to add to the left. The default is 0.
LeftPixels int32 `protobuf:"varint,3,opt,name=left_pixels,json=leftPixels,proto3" json:"left_pixels,omitempty"`
// The number of pixels to add to the right. The default is 0.
RightPixels int32 `protobuf:"varint,4,opt,name=right_pixels,json=rightPixels,proto3" json:"right_pixels,omitempty"`
}
func (x *PreprocessingConfig_Pad) Reset() {
*x = PreprocessingConfig_Pad{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PreprocessingConfig_Pad) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PreprocessingConfig_Pad) ProtoMessage() {}
func (x *PreprocessingConfig_Pad) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PreprocessingConfig_Pad.ProtoReflect.Descriptor instead.
func (*PreprocessingConfig_Pad) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{13, 5}
}
func (x *PreprocessingConfig_Pad) GetTopPixels() int32 {
if x != nil {
return x.TopPixels
}
return 0
}
func (x *PreprocessingConfig_Pad) GetBottomPixels() int32 {
if x != nil {
return x.BottomPixels
}
return 0
}
func (x *PreprocessingConfig_Pad) GetLeftPixels() int32 {
if x != nil {
return x.LeftPixels
}
return 0
}
func (x *PreprocessingConfig_Pad) GetRightPixels() int32 {
if x != nil {
return x.RightPixels
}
return 0
}
// H264 codec settings.
type VideoStream_H264CodecSettings struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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.
WidthPixels int32 `protobuf:"varint,1,opt,name=width_pixels,json=widthPixels,proto3" json:"width_pixels,omitempty"`
// 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.
HeightPixels int32 `protobuf:"varint,2,opt,name=height_pixels,json=heightPixels,proto3" json:"height_pixels,omitempty"`
// 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
// [Calculating frame
// rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
// more information.
FrameRate float64 `protobuf:"fixed64,3,opt,name=frame_rate,json=frameRate,proto3" json:"frame_rate,omitempty"`
// Required. The video bitrate in bits per second. The minimum value is 1,000.
// The maximum value is 800,000,000.
BitrateBps int32 `protobuf:"varint,4,opt,name=bitrate_bps,json=bitrateBps,proto3" json:"bitrate_bps,omitempty"`
// 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
PixelFormat string `protobuf:"bytes,5,opt,name=pixel_format,json=pixelFormat,proto3" json:"pixel_format,omitempty"`
// Specify the `rate_control_mode`. The default is `vbr`.
//
// Supported rate control modes:
//
// - `vbr` - variable bitrate
// - `crf` - constant rate factor
RateControlMode string `protobuf:"bytes,6,opt,name=rate_control_mode,json=rateControlMode,proto3" json:"rate_control_mode,omitempty"`
// 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.
CrfLevel int32 `protobuf:"varint,7,opt,name=crf_level,json=crfLevel,proto3" json:"crf_level,omitempty"`
// Specifies whether an open Group of Pictures (GOP) structure should be
// allowed or not. The default is `false`.
AllowOpenGop bool `protobuf:"varint,8,opt,name=allow_open_gop,json=allowOpenGop,proto3" json:"allow_open_gop,omitempty"`
// GOP mode can be either by frame count or duration.
//
// Types that are assignable to GopMode:
//
// *VideoStream_H264CodecSettings_GopFrameCount
// *VideoStream_H264CodecSettings_GopDuration
GopMode isVideoStream_H264CodecSettings_GopMode `protobuf_oneof:"gop_mode"`
// Use two-pass encoding strategy to achieve better video quality.
// `VideoStream.rate_control_mode` must be `vbr`. The default is `false`.
EnableTwoPass bool `protobuf:"varint,11,opt,name=enable_two_pass,json=enableTwoPass,proto3" json:"enable_two_pass,omitempty"`
// Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
// greater than zero. The default is equal to `VideoStream.bitrate_bps`.
VbvSizeBits int32 `protobuf:"varint,12,opt,name=vbv_size_bits,json=vbvSizeBits,proto3" json:"vbv_size_bits,omitempty"`
// 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`.
VbvFullnessBits int32 `protobuf:"varint,13,opt,name=vbv_fullness_bits,json=vbvFullnessBits,proto3" json:"vbv_fullness_bits,omitempty"`
// The entropy coder to use. The default is `cabac`.
//
// Supported entropy coders:
//
// - `cavlc`
// - `cabac`
EntropyCoder string `protobuf:"bytes,14,opt,name=entropy_coder,json=entropyCoder,proto3" json:"entropy_coder,omitempty"`
// Allow B-pyramid for reference frame selection. This may not be supported
// on all decoders. The default is `false`.
BPyramid bool `protobuf:"varint,15,opt,name=b_pyramid,json=bPyramid,proto3" json:"b_pyramid,omitempty"`
// 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.
BFrameCount int32 `protobuf:"varint,16,opt,name=b_frame_count,json=bFrameCount,proto3" json:"b_frame_count,omitempty"`
// 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.
AqStrength float64 `protobuf:"fixed64,17,opt,name=aq_strength,json=aqStrength,proto3" json:"aq_strength,omitempty"`
// Enforces the specified codec profile. The following profiles are
// supported:
//
// * `baseline`
// * `main`
// * `high` (default)
//
// The available options are
// [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune).
// Note that certain values for this field may cause the
// transcoder to override other fields you set in the `H264CodecSettings`
// message.
Profile string `protobuf:"bytes,18,opt,name=profile,proto3" json:"profile,omitempty"`
// Enforces the specified codec tune. The available options are
// [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune).
// Note that certain values for this field may cause the
// transcoder to override other fields you set in the `H264CodecSettings`
// message.
Tune string `protobuf:"bytes,19,opt,name=tune,proto3" json:"tune,omitempty"`
// Enforces the specified codec preset. The default is `veryfast`. The
// available options are
// [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Preset).
// Note that certain values for this field may cause the
// transcoder to override other fields you set in the `H264CodecSettings`
// message.
Preset string `protobuf:"bytes,20,opt,name=preset,proto3" json:"preset,omitempty"`
}
func (x *VideoStream_H264CodecSettings) Reset() {
*x = VideoStream_H264CodecSettings{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VideoStream_H264CodecSettings) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VideoStream_H264CodecSettings) ProtoMessage() {}
func (x *VideoStream_H264CodecSettings) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VideoStream_H264CodecSettings.ProtoReflect.Descriptor instead.
func (*VideoStream_H264CodecSettings) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{14, 0}
}
func (x *VideoStream_H264CodecSettings) GetWidthPixels() int32 {
if x != nil {
return x.WidthPixels
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetHeightPixels() int32 {
if x != nil {
return x.HeightPixels
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetFrameRate() float64 {
if x != nil {
return x.FrameRate
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetBitrateBps() int32 {
if x != nil {
return x.BitrateBps
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetPixelFormat() string {
if x != nil {
return x.PixelFormat
}
return ""
}
func (x *VideoStream_H264CodecSettings) GetRateControlMode() string {
if x != nil {
return x.RateControlMode
}
return ""
}
func (x *VideoStream_H264CodecSettings) GetCrfLevel() int32 {
if x != nil {
return x.CrfLevel
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetAllowOpenGop() bool {
if x != nil {
return x.AllowOpenGop
}
return false
}
func (m *VideoStream_H264CodecSettings) GetGopMode() isVideoStream_H264CodecSettings_GopMode {
if m != nil {
return m.GopMode
}
return nil
}
func (x *VideoStream_H264CodecSettings) GetGopFrameCount() int32 {
if x, ok := x.GetGopMode().(*VideoStream_H264CodecSettings_GopFrameCount); ok {
return x.GopFrameCount
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetGopDuration() *duration.Duration {
if x, ok := x.GetGopMode().(*VideoStream_H264CodecSettings_GopDuration); ok {
return x.GopDuration
}
return nil
}
func (x *VideoStream_H264CodecSettings) GetEnableTwoPass() bool {
if x != nil {
return x.EnableTwoPass
}
return false
}
func (x *VideoStream_H264CodecSettings) GetVbvSizeBits() int32 {
if x != nil {
return x.VbvSizeBits
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetVbvFullnessBits() int32 {
if x != nil {
return x.VbvFullnessBits
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetEntropyCoder() string {
if x != nil {
return x.EntropyCoder
}
return ""
}
func (x *VideoStream_H264CodecSettings) GetBPyramid() bool {
if x != nil {
return x.BPyramid
}
return false
}
func (x *VideoStream_H264CodecSettings) GetBFrameCount() int32 {
if x != nil {
return x.BFrameCount
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetAqStrength() float64 {
if x != nil {
return x.AqStrength
}
return 0
}
func (x *VideoStream_H264CodecSettings) GetProfile() string {
if x != nil {
return x.Profile
}
return ""
}
func (x *VideoStream_H264CodecSettings) GetTune() string {
if x != nil {
return x.Tune
}
return ""
}
func (x *VideoStream_H264CodecSettings) GetPreset() string {
if x != nil {
return x.Preset
}
return ""
}
type isVideoStream_H264CodecSettings_GopMode interface {
isVideoStream_H264CodecSettings_GopMode()
}
type VideoStream_H264CodecSettings_GopFrameCount struct {
// Select the GOP size based on the specified frame count. Must be greater
// than zero.
GopFrameCount int32 `protobuf:"varint,9,opt,name=gop_frame_count,json=gopFrameCount,proto3,oneof"`
}
type VideoStream_H264CodecSettings_GopDuration struct {
// 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`.
GopDuration *duration.Duration `protobuf:"bytes,10,opt,name=gop_duration,json=gopDuration,proto3,oneof"`
}
func (*VideoStream_H264CodecSettings_GopFrameCount) isVideoStream_H264CodecSettings_GopMode() {}
func (*VideoStream_H264CodecSettings_GopDuration) isVideoStream_H264CodecSettings_GopMode() {}
// H265 codec settings.
type VideoStream_H265CodecSettings struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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.
WidthPixels int32 `protobuf:"varint,1,opt,name=width_pixels,json=widthPixels,proto3" json:"width_pixels,omitempty"`
// 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.
HeightPixels int32 `protobuf:"varint,2,opt,name=height_pixels,json=heightPixels,proto3" json:"height_pixels,omitempty"`
// 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
// [Calculating frame
// rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
// more information.
FrameRate float64 `protobuf:"fixed64,3,opt,name=frame_rate,json=frameRate,proto3" json:"frame_rate,omitempty"`
// Required. The video bitrate in bits per second. The minimum value is 1,000.
// The maximum value is 800,000,000.
BitrateBps int32 `protobuf:"varint,4,opt,name=bitrate_bps,json=bitrateBps,proto3" json:"bitrate_bps,omitempty"`
// 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
PixelFormat string `protobuf:"bytes,5,opt,name=pixel_format,json=pixelFormat,proto3" json:"pixel_format,omitempty"`
// Specify the `rate_control_mode`. The default is `vbr`.
//
// Supported rate control modes:
//
// - `vbr` - variable bitrate
// - `crf` - constant rate factor
RateControlMode string `protobuf:"bytes,6,opt,name=rate_control_mode,json=rateControlMode,proto3" json:"rate_control_mode,omitempty"`
// 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.
CrfLevel int32 `protobuf:"varint,7,opt,name=crf_level,json=crfLevel,proto3" json:"crf_level,omitempty"`
// Specifies whether an open Group of Pictures (GOP) structure should be
// allowed or not. The default is `false`.
AllowOpenGop bool `protobuf:"varint,8,opt,name=allow_open_gop,json=allowOpenGop,proto3" json:"allow_open_gop,omitempty"`
// GOP mode can be either by frame count or duration.
//
// Types that are assignable to GopMode:
//
// *VideoStream_H265CodecSettings_GopFrameCount
// *VideoStream_H265CodecSettings_GopDuration
GopMode isVideoStream_H265CodecSettings_GopMode `protobuf_oneof:"gop_mode"`
// Use two-pass encoding strategy to achieve better video quality.
// `VideoStream.rate_control_mode` must be `vbr`. The default is `false`.
EnableTwoPass bool `protobuf:"varint,11,opt,name=enable_two_pass,json=enableTwoPass,proto3" json:"enable_two_pass,omitempty"`
// Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
// greater than zero. The default is equal to `VideoStream.bitrate_bps`.
VbvSizeBits int32 `protobuf:"varint,12,opt,name=vbv_size_bits,json=vbvSizeBits,proto3" json:"vbv_size_bits,omitempty"`
// 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`.
VbvFullnessBits int32 `protobuf:"varint,13,opt,name=vbv_fullness_bits,json=vbvFullnessBits,proto3" json:"vbv_fullness_bits,omitempty"`
// Allow B-pyramid for reference frame selection. This may not be supported
// on all decoders. The default is `false`.
BPyramid bool `protobuf:"varint,14,opt,name=b_pyramid,json=bPyramid,proto3" json:"b_pyramid,omitempty"`
// 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.
BFrameCount int32 `protobuf:"varint,15,opt,name=b_frame_count,json=bFrameCount,proto3" json:"b_frame_count,omitempty"`
// 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.
AqStrength float64 `protobuf:"fixed64,16,opt,name=aq_strength,json=aqStrength,proto3" json:"aq_strength,omitempty"`
// Enforces the specified codec profile. The following profiles are
// supported:
//
// * 8-bit profiles
// - `main` (default)
// - `main-intra`
// - `mainstillpicture`
//
// * 10-bit profiles
// - `main10` (default)
// - `main10-intra`
// - `main422-10`
// - `main422-10-intra`
// - `main444-10`
// - `main444-10-intra`
//
// * 12-bit profiles
// - `main12` (default)
// - `main12-intra`
// - `main422-12`
// - `main422-12-intra`
// - `main444-12`
// - `main444-12-intra`
//
// The available options are
// [FFmpeg-compatible](https://x265.readthedocs.io/).
// Note that certain values for this field may cause the
// transcoder to override other fields you set in the `H265CodecSettings`
// message.
Profile string `protobuf:"bytes,17,opt,name=profile,proto3" json:"profile,omitempty"`
// Enforces the specified codec tune. The available options are
// [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265).
// Note that certain values for this field may cause the
// transcoder to override other fields you set in the `H265CodecSettings`
// message.
Tune string `protobuf:"bytes,18,opt,name=tune,proto3" json:"tune,omitempty"`
// Enforces the specified codec preset. The default is `veryfast`. The
// available options are
// [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265).
// Note that certain values for this field may cause the
// transcoder to override other fields you set in the `H265CodecSettings`
// message.
Preset string `protobuf:"bytes,19,opt,name=preset,proto3" json:"preset,omitempty"`
}
func (x *VideoStream_H265CodecSettings) Reset() {
*x = VideoStream_H265CodecSettings{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VideoStream_H265CodecSettings) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VideoStream_H265CodecSettings) ProtoMessage() {}
func (x *VideoStream_H265CodecSettings) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VideoStream_H265CodecSettings.ProtoReflect.Descriptor instead.
func (*VideoStream_H265CodecSettings) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{14, 1}
}
func (x *VideoStream_H265CodecSettings) GetWidthPixels() int32 {
if x != nil {
return x.WidthPixels
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetHeightPixels() int32 {
if x != nil {
return x.HeightPixels
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetFrameRate() float64 {
if x != nil {
return x.FrameRate
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetBitrateBps() int32 {
if x != nil {
return x.BitrateBps
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetPixelFormat() string {
if x != nil {
return x.PixelFormat
}
return ""
}
func (x *VideoStream_H265CodecSettings) GetRateControlMode() string {
if x != nil {
return x.RateControlMode
}
return ""
}
func (x *VideoStream_H265CodecSettings) GetCrfLevel() int32 {
if x != nil {
return x.CrfLevel
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetAllowOpenGop() bool {
if x != nil {
return x.AllowOpenGop
}
return false
}
func (m *VideoStream_H265CodecSettings) GetGopMode() isVideoStream_H265CodecSettings_GopMode {
if m != nil {
return m.GopMode
}
return nil
}
func (x *VideoStream_H265CodecSettings) GetGopFrameCount() int32 {
if x, ok := x.GetGopMode().(*VideoStream_H265CodecSettings_GopFrameCount); ok {
return x.GopFrameCount
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetGopDuration() *duration.Duration {
if x, ok := x.GetGopMode().(*VideoStream_H265CodecSettings_GopDuration); ok {
return x.GopDuration
}
return nil
}
func (x *VideoStream_H265CodecSettings) GetEnableTwoPass() bool {
if x != nil {
return x.EnableTwoPass
}
return false
}
func (x *VideoStream_H265CodecSettings) GetVbvSizeBits() int32 {
if x != nil {
return x.VbvSizeBits
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetVbvFullnessBits() int32 {
if x != nil {
return x.VbvFullnessBits
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetBPyramid() bool {
if x != nil {
return x.BPyramid
}
return false
}
func (x *VideoStream_H265CodecSettings) GetBFrameCount() int32 {
if x != nil {
return x.BFrameCount
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetAqStrength() float64 {
if x != nil {
return x.AqStrength
}
return 0
}
func (x *VideoStream_H265CodecSettings) GetProfile() string {
if x != nil {
return x.Profile
}
return ""
}
func (x *VideoStream_H265CodecSettings) GetTune() string {
if x != nil {
return x.Tune
}
return ""
}
func (x *VideoStream_H265CodecSettings) GetPreset() string {
if x != nil {
return x.Preset
}
return ""
}
type isVideoStream_H265CodecSettings_GopMode interface {
isVideoStream_H265CodecSettings_GopMode()
}
type VideoStream_H265CodecSettings_GopFrameCount struct {
// Select the GOP size based on the specified frame count. Must be greater
// than zero.
GopFrameCount int32 `protobuf:"varint,9,opt,name=gop_frame_count,json=gopFrameCount,proto3,oneof"`
}
type VideoStream_H265CodecSettings_GopDuration struct {
// 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`.
GopDuration *duration.Duration `protobuf:"bytes,10,opt,name=gop_duration,json=gopDuration,proto3,oneof"`
}
func (*VideoStream_H265CodecSettings_GopFrameCount) isVideoStream_H265CodecSettings_GopMode() {}
func (*VideoStream_H265CodecSettings_GopDuration) isVideoStream_H265CodecSettings_GopMode() {}
// VP9 codec settings.
type VideoStream_Vp9CodecSettings struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// 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.
WidthPixels int32 `protobuf:"varint,1,opt,name=width_pixels,json=widthPixels,proto3" json:"width_pixels,omitempty"`
// 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.
HeightPixels int32 `protobuf:"varint,2,opt,name=height_pixels,json=heightPixels,proto3" json:"height_pixels,omitempty"`
// 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
// [Calculating frame
// rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
// more information.
FrameRate float64 `protobuf:"fixed64,3,opt,name=frame_rate,json=frameRate,proto3" json:"frame_rate,omitempty"`
// Required. The video bitrate in bits per second. The minimum value is 1,000.
// The maximum value is 480,000,000.
BitrateBps int32 `protobuf:"varint,4,opt,name=bitrate_bps,json=bitrateBps,proto3" json:"bitrate_bps,omitempty"`
// 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
PixelFormat string `protobuf:"bytes,5,opt,name=pixel_format,json=pixelFormat,proto3" json:"pixel_format,omitempty"`
// Specify the `rate_control_mode`. The default is `vbr`.
//
// Supported rate control modes:
//
// - `vbr` - variable bitrate
RateControlMode string `protobuf:"bytes,6,opt,name=rate_control_mode,json=rateControlMode,proto3" json:"rate_control_mode,omitempty"`
// 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.
CrfLevel int32 `protobuf:"varint,7,opt,name=crf_level,json=crfLevel,proto3" json:"crf_level,omitempty"`
// GOP mode can be either by frame count or duration.
//
// Types that are assignable to GopMode:
//
// *VideoStream_Vp9CodecSettings_GopFrameCount
// *VideoStream_Vp9CodecSettings_GopDuration
GopMode isVideoStream_Vp9CodecSettings_GopMode `protobuf_oneof:"gop_mode"`
// 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.
Profile string `protobuf:"bytes,10,opt,name=profile,proto3" json:"profile,omitempty"`
}
func (x *VideoStream_Vp9CodecSettings) Reset() {
*x = VideoStream_Vp9CodecSettings{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *VideoStream_Vp9CodecSettings) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*VideoStream_Vp9CodecSettings) ProtoMessage() {}
func (x *VideoStream_Vp9CodecSettings) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use VideoStream_Vp9CodecSettings.ProtoReflect.Descriptor instead.
func (*VideoStream_Vp9CodecSettings) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{14, 2}
}
func (x *VideoStream_Vp9CodecSettings) GetWidthPixels() int32 {
if x != nil {
return x.WidthPixels
}
return 0
}
func (x *VideoStream_Vp9CodecSettings) GetHeightPixels() int32 {
if x != nil {
return x.HeightPixels
}
return 0
}
func (x *VideoStream_Vp9CodecSettings) GetFrameRate() float64 {
if x != nil {
return x.FrameRate
}
return 0
}
func (x *VideoStream_Vp9CodecSettings) GetBitrateBps() int32 {
if x != nil {
return x.BitrateBps
}
return 0
}
func (x *VideoStream_Vp9CodecSettings) GetPixelFormat() string {
if x != nil {
return x.PixelFormat
}
return ""
}
func (x *VideoStream_Vp9CodecSettings) GetRateControlMode() string {
if x != nil {
return x.RateControlMode
}
return ""
}
func (x *VideoStream_Vp9CodecSettings) GetCrfLevel() int32 {
if x != nil {
return x.CrfLevel
}
return 0
}
func (m *VideoStream_Vp9CodecSettings) GetGopMode() isVideoStream_Vp9CodecSettings_GopMode {
if m != nil {
return m.GopMode
}
return nil
}
func (x *VideoStream_Vp9CodecSettings) GetGopFrameCount() int32 {
if x, ok := x.GetGopMode().(*VideoStream_Vp9CodecSettings_GopFrameCount); ok {
return x.GopFrameCount
}
return 0
}
func (x *VideoStream_Vp9CodecSettings) GetGopDuration() *duration.Duration {
if x, ok := x.GetGopMode().(*VideoStream_Vp9CodecSettings_GopDuration); ok {
return x.GopDuration
}
return nil
}
func (x *VideoStream_Vp9CodecSettings) GetProfile() string {
if x != nil {
return x.Profile
}
return ""
}
type isVideoStream_Vp9CodecSettings_GopMode interface {
isVideoStream_Vp9CodecSettings_GopMode()
}
type VideoStream_Vp9CodecSettings_GopFrameCount struct {
// Select the GOP size based on the specified frame count. Must be greater
// than zero.
GopFrameCount int32 `protobuf:"varint,8,opt,name=gop_frame_count,json=gopFrameCount,proto3,oneof"`
}
type VideoStream_Vp9CodecSettings_GopDuration struct {
// 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`.
GopDuration *duration.Duration `protobuf:"bytes,9,opt,name=gop_duration,json=gopDuration,proto3,oneof"`
}
func (*VideoStream_Vp9CodecSettings_GopFrameCount) isVideoStream_Vp9CodecSettings_GopMode() {}
func (*VideoStream_Vp9CodecSettings_GopDuration) isVideoStream_Vp9CodecSettings_GopMode() {}
// The mapping for the `Job.edit_list` atoms with audio `EditAtom.inputs`.
type AudioStream_AudioMapping struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The `EditAtom.key` that references the atom with audio inputs in the
// `Job.edit_list`.
AtomKey string `protobuf:"bytes,1,opt,name=atom_key,json=atomKey,proto3" json:"atom_key,omitempty"`
// Required. The `Input.key` that identifies the input file.
InputKey string `protobuf:"bytes,2,opt,name=input_key,json=inputKey,proto3" json:"input_key,omitempty"`
// Required. The zero-based index of the track in the input file.
InputTrack int32 `protobuf:"varint,3,opt,name=input_track,json=inputTrack,proto3" json:"input_track,omitempty"`
// Required. The zero-based index of the channel in the input audio stream.
InputChannel int32 `protobuf:"varint,4,opt,name=input_channel,json=inputChannel,proto3" json:"input_channel,omitempty"`
// Required. The zero-based index of the channel in the output audio stream.
OutputChannel int32 `protobuf:"varint,5,opt,name=output_channel,json=outputChannel,proto3" json:"output_channel,omitempty"`
// Audio volume control in dB. Negative values decrease volume,
// positive values increase. The default is 0.
GainDb float64 `protobuf:"fixed64,6,opt,name=gain_db,json=gainDb,proto3" json:"gain_db,omitempty"`
}
func (x *AudioStream_AudioMapping) Reset() {
*x = AudioStream_AudioMapping{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AudioStream_AudioMapping) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AudioStream_AudioMapping) ProtoMessage() {}
func (x *AudioStream_AudioMapping) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use AudioStream_AudioMapping.ProtoReflect.Descriptor instead.
func (*AudioStream_AudioMapping) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{15, 0}
}
func (x *AudioStream_AudioMapping) GetAtomKey() string {
if x != nil {
return x.AtomKey
}
return ""
}
func (x *AudioStream_AudioMapping) GetInputKey() string {
if x != nil {
return x.InputKey
}
return ""
}
func (x *AudioStream_AudioMapping) GetInputTrack() int32 {
if x != nil {
return x.InputTrack
}
return 0
}
func (x *AudioStream_AudioMapping) GetInputChannel() int32 {
if x != nil {
return x.InputChannel
}
return 0
}
func (x *AudioStream_AudioMapping) GetOutputChannel() int32 {
if x != nil {
return x.OutputChannel
}
return 0
}
func (x *AudioStream_AudioMapping) GetGainDb() float64 {
if x != nil {
return x.GainDb
}
return 0
}
// The mapping for the `Job.edit_list` atoms with text `EditAtom.inputs`.
type TextStream_TextMapping struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The `EditAtom.key` that references atom with text inputs in the
// `Job.edit_list`.
AtomKey string `protobuf:"bytes,1,opt,name=atom_key,json=atomKey,proto3" json:"atom_key,omitempty"`
// Required. The `Input.key` that identifies the input file.
InputKey string `protobuf:"bytes,2,opt,name=input_key,json=inputKey,proto3" json:"input_key,omitempty"`
// Required. The zero-based index of the track in the input file.
InputTrack int32 `protobuf:"varint,3,opt,name=input_track,json=inputTrack,proto3" json:"input_track,omitempty"`
}
func (x *TextStream_TextMapping) Reset() {
*x = TextStream_TextMapping{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TextStream_TextMapping) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TextStream_TextMapping) ProtoMessage() {}
func (x *TextStream_TextMapping) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TextStream_TextMapping.ProtoReflect.Descriptor instead.
func (*TextStream_TextMapping) Descriptor() ([]byte, []int) {
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP(), []int{16, 0}
}
func (x *TextStream_TextMapping) GetAtomKey() string {
if x != nil {
return x.AtomKey
}
return ""
}
func (x *TextStream_TextMapping) GetInputKey() string {
if x != nil {
return x.InputKey
}
return ""
}
func (x *TextStream_TextMapping) GetInputTrack() int32 {
if x != nil {
return x.InputTrack
}
return 0
}
var File_google_cloud_video_transcoder_v1_resources_proto protoreflect.FileDescriptor
var file_google_cloud_video_transcoder_v1_resources_proto_rawDesc = []byte{
0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76,
0x69, 0x64, 0x65, 0x6f, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2f,
0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x12, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65,
0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69,
0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70,
0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74,
0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x07, 0x0a, 0x03, 0x4a,
0x6f, 0x62, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x52, 0x08,
0x69, 0x6e, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x70,
0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x04, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0b,
0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28,
0x09, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
0x74, 0x65, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63,
0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x05, 0x73,
0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e,
0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f,
0x62, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74,
0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a,
0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42,
0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x74,
0x74, 0x6c, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74,
0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16,
0x74, 0x74, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69,
0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73,
0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x4c, 0x61,
0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c,
0x73, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x68, 0x0a, 0x0f, 0x50,
0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20,
0x0a, 0x1c, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41,
0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a,
0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55,
0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49,
0x4c, 0x45, 0x44, 0x10, 0x04, 0x3a, 0x56, 0xea, 0x41, 0x53, 0x0a, 0x1d, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x12, 0x32, 0x70, 0x72, 0x6f, 0x6a, 0x65,
0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x7d, 0x42, 0x0c, 0x0a,
0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xe5, 0x02, 0x0a, 0x0b,
0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x43, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x12, 0x51, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63,
0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c,
0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x3a, 0x6f, 0xea, 0x41, 0x6c, 0x0a, 0x25, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f,
0x64, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x4a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x43,
0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6a, 0x6f, 0x62, 0x54, 0x65, 0x6d, 0x70, 0x6c,
0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
0x74, 0x65, 0x7d, 0x22, 0x99, 0x06, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x12, 0x3f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65,
0x72, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75,
0x74, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18,
0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73,
0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, 0x74, 0x6f,
0x6d, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x12, 0x65,
0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61,
0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x61, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x11, 0x65, 0x6c, 0x65,
0x6d, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x4c,
0x0a, 0x0b, 0x6d, 0x75, 0x78, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f,
0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
0x52, 0x0a, 0x6d, 0x75, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x48, 0x0a, 0x09,
0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x2e, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x09, 0x6d, 0x61, 0x6e,
0x69, 0x66, 0x65, 0x73, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x64, 0x5f, 0x62,
0x72, 0x65, 0x61, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f,
0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41,
0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x52, 0x08, 0x61, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x73,
0x12, 0x62, 0x0a, 0x12, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69,
0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65,
0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
0x50, 0x75, 0x62, 0x73, 0x75, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x11, 0x70, 0x75, 0x62, 0x73, 0x75, 0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0d, 0x73, 0x70, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73,
0x68, 0x65, 0x65, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f,
0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53,
0x70, 0x72, 0x69, 0x74, 0x65, 0x53, 0x68, 0x65, 0x65, 0x74, 0x52, 0x0c, 0x73, 0x70, 0x72, 0x69,
0x74, 0x65, 0x53, 0x68, 0x65, 0x65, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72,
0x6c, 0x61, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e,
0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76,
0x65, 0x72, 0x6c, 0x61, 0x79, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x73, 0x22,
0x95, 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x75,
0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x68, 0x0a,
0x14, 0x70, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f,
0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50,
0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x52, 0x13, 0x70, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e,
0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1a, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75,
0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x75, 0x72, 0x69, 0x22, 0xbe, 0x01, 0x0a, 0x08, 0x45, 0x64, 0x69, 0x74, 0x41, 0x74, 0x6f, 0x6d,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x09, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x65, 0x6e,
0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d,
0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x45, 0x0a,
0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73,
0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66,
0x66, 0x73, 0x65, 0x74, 0x22, 0x50, 0x0a, 0x07, 0x41, 0x64, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x12,
0x45, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66,
0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0xb2, 0x02, 0x0a, 0x10, 0x45, 0x6c, 0x65, 0x6d, 0x65,
0x6e, 0x74, 0x61, 0x72, 0x79, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x52, 0x0a,
0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f,
0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65,
0x61, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61,
0x6d, 0x12, 0x52, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61,
0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61,
0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f,
0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x53,
0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e,
0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65,
0x78, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x65, 0x78, 0x74,
0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0xe5, 0x01, 0x0a, 0x09,
0x4d, 0x75, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x66,
0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74,
0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e,
0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
0x74, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03,
0x28, 0x09, 0x52, 0x11, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x53, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x5c, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76,
0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e,
0x76, 0x31, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
0x67, 0x73, 0x52, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69,
0x6e, 0x67, 0x73, 0x22, 0xe1, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a,
0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f,
0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4d,
0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
0x24, 0x0a, 0x0b, 0x6d, 0x75, 0x78, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x03,
0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x75, 0x78, 0x53, 0x74,
0x72, 0x65, 0x61, 0x6d, 0x73, 0x22, 0x40, 0x0a, 0x0c, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73,
0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x4d, 0x41, 0x4e, 0x49, 0x46, 0x45, 0x53,
0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x4c, 0x53, 0x10, 0x01, 0x12, 0x08, 0x0a,
0x04, 0x44, 0x41, 0x53, 0x48, 0x10, 0x02, 0x22, 0x29, 0x0a, 0x11, 0x50, 0x75, 0x62, 0x73, 0x75,
0x62, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x70,
0x69, 0x63, 0x22, 0x8e, 0x04, 0x0a, 0x0b, 0x53, 0x70, 0x72, 0x69, 0x74, 0x65, 0x53, 0x68, 0x65,
0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x69,
0x6c, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78,
0x12, 0x33, 0x0a, 0x13, 0x73, 0x70, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68,
0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0,
0x41, 0x02, 0x52, 0x11, 0x73, 0x70, 0x72, 0x69, 0x74, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x50,
0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x35, 0x0a, 0x14, 0x73, 0x70, 0x72, 0x69, 0x74, 0x65, 0x5f,
0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x73, 0x70, 0x72, 0x69, 0x74, 0x65,
0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c,
0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01,
0x28, 0x05, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x11,
0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65,
0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66,
0x73, 0x65, 0x74, 0x12, 0x41, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f,
0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x74,
0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x69, 0x6e, 0x74,
0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76,
0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x05, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x15, 0x0a, 0x13,
0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74,
0x65, 0x67, 0x79, 0x22, 0xbf, 0x0a, 0x0a, 0x07, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x12,
0x45, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69,
0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76,
0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52,
0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e,
0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76,
0x65, 0x72, 0x6c, 0x61, 0x79, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x0a, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x32, 0x0a, 0x14, 0x4e,
0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e,
0x61, 0x74, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01,
0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x79, 0x1a,
0x94, 0x01, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72, 0x69,
0x12, 0x5e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63,
0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x2e,
0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69,
0x6e, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52,
0x05, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0xa8, 0x01, 0x0a, 0x0f, 0x41, 0x6e, 0x69, 0x6d, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x4e, 0x0a, 0x02, 0x78, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61,
0x79, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6f, 0x72,
0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x02, 0x78, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x73, 0x74,
0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65,
0x74, 0x1a, 0xbf, 0x02, 0x0a, 0x0d, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46,
0x61, 0x64, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x66, 0x61, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e,
0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61,
0x79, 0x2e, 0x46, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
0x08, 0x66, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4e, 0x0a, 0x02, 0x78, 0x79, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73,
0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79,
0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x6f, 0x6f, 0x72, 0x64,
0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x02, 0x78, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x73, 0x74, 0x61,
0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74,
0x12, 0x41, 0x0a, 0x0f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66,
0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66,
0x73, 0x65, 0x74, 0x1a, 0x55, 0x0a, 0x0c, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x45, 0x6e, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74,
0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x1a, 0xc6, 0x02, 0x0a, 0x09, 0x41,
0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x10, 0x61, 0x6e, 0x69, 0x6d,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64,
0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x79, 0x2e, 0x41, 0x6e,
0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52,
0x0f, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63,
0x12, 0x60, 0x0a, 0x0e, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61,
0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72,
0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65, 0x72,
0x6c, 0x61, 0x79, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x64,
0x65, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61,
0x64, 0x65, 0x12, 0x5d, 0x0a, 0x0d, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74,
0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x76, 0x65,
0x72, 0x6c, 0x61, 0x79, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e,
0x64, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e,
0x64, 0x42, 0x10, 0x0a, 0x0e, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x08, 0x46, 0x61, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
0x19, 0x0a, 0x15, 0x46, 0x41, 0x44, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53,
0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41,
0x44, 0x45, 0x5f, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x41, 0x44, 0x45, 0x5f,
0x4f, 0x55, 0x54, 0x10, 0x02, 0x22, 0xe5, 0x08, 0x0a, 0x13, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f,
0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x51, 0x0a,
0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65,
0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e,
0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72,
0x12, 0x57, 0x0a, 0x07, 0x64, 0x65, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65,
0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69,
0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x69, 0x73, 0x65,
0x52, 0x07, 0x64, 0x65, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x07, 0x64, 0x65, 0x62,
0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e,
0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72,
0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x2e, 0x44, 0x65, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x07, 0x64, 0x65, 0x62, 0x6c, 0x6f,
0x63, 0x6b, 0x12, 0x51, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65,
0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69,
0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x52, 0x05,
0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x4e, 0x0a, 0x04, 0x63, 0x72, 0x6f, 0x70, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f,
0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x72, 0x6f, 0x70, 0x52,
0x04, 0x63, 0x72, 0x6f, 0x70, 0x12, 0x4b, 0x0a, 0x03, 0x70, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64,
0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x64, 0x52, 0x03, 0x70,
0x61, 0x64, 0x1a, 0x63, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73,
0x61, 0x74, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52,
0x0a, 0x73, 0x61, 0x74, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63,
0x6f, 0x6e, 0x74, 0x72, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x63,
0x6f, 0x6e, 0x74, 0x72, 0x61, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68,
0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x62, 0x72, 0x69,
0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x1a, 0x39, 0x0a, 0x07, 0x44, 0x65, 0x6e, 0x6f, 0x69,
0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01,
0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x12,
0x0a, 0x04, 0x74, 0x75, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x75,
0x6e, 0x65, 0x1a, 0x3f, 0x0a, 0x07, 0x44, 0x65, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a,
0x08, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52,
0x08, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61,
0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x64, 0x1a, 0x57, 0x0a, 0x05, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x12, 0x0a, 0x04,
0x6c, 0x75, 0x66, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x6c, 0x75, 0x66, 0x73,
0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x18, 0x02,
0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x69, 0x67, 0x68, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x12,
0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x77, 0x5f, 0x62, 0x6f, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x08, 0x52, 0x08, 0x6c, 0x6f, 0x77, 0x42, 0x6f, 0x6f, 0x73, 0x74, 0x1a, 0x8e, 0x01, 0x0a,
0x04, 0x43, 0x72, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x78,
0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x50, 0x69,
0x78, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x70,
0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x6f, 0x74,
0x74, 0x6f, 0x6d, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x65, 0x66,
0x74, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x6c, 0x65, 0x66, 0x74, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x69,
0x67, 0x68, 0x74, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x1a, 0x8d, 0x01,
0x0a, 0x03, 0x50, 0x61, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x78,
0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x50, 0x69,
0x78, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x70,
0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x6f, 0x74,
0x74, 0x6f, 0x6d, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x65, 0x66,
0x74, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x6c, 0x65, 0x66, 0x74, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x69,
0x67, 0x68, 0x74, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x22, 0x89, 0x11,
0x0a, 0x0b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x55, 0x0a,
0x04, 0x68, 0x32, 0x36, 0x34, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f,
0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56,
0x69, 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x48, 0x32, 0x36, 0x34, 0x43,
0x6f, 0x64, 0x65, 0x63, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x04,
0x68, 0x32, 0x36, 0x34, 0x12, 0x55, 0x0a, 0x04, 0x68, 0x32, 0x36, 0x35, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64,
0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61,
0x6d, 0x2e, 0x48, 0x32, 0x36, 0x35, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x53, 0x65, 0x74, 0x74, 0x69,
0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x04, 0x68, 0x32, 0x36, 0x35, 0x12, 0x52, 0x0a, 0x03, 0x76,
0x70, 0x39, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72,
0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65,
0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x70, 0x39, 0x43, 0x6f, 0x64, 0x65, 0x63,
0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x48, 0x00, 0x52, 0x03, 0x76, 0x70, 0x39, 0x1a,
0xf2, 0x05, 0x0a, 0x11, 0x48, 0x32, 0x36, 0x34, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x53, 0x65, 0x74,
0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70,
0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x77, 0x69, 0x64,
0x74, 0x68, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x65, 0x69, 0x67,
0x68, 0x74, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x22, 0x0a,
0x0a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x61, 0x74,
0x65, 0x12, 0x24, 0x0a, 0x0b, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x70, 0x73,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x62, 0x69, 0x74,
0x72, 0x61, 0x74, 0x65, 0x42, 0x70, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x78, 0x65, 0x6c,
0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70,
0x69, 0x78, 0x65, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x61,
0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18,
0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72,
0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72, 0x66, 0x5f, 0x6c, 0x65,
0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x72, 0x66, 0x4c, 0x65,
0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6f, 0x70, 0x65,
0x6e, 0x5f, 0x67, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x47, 0x6f, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x67, 0x6f, 0x70,
0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01,
0x28, 0x05, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6f, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x43, 0x6f,
0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x67, 0x6f, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x6f, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x77,
0x6f, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x6e,
0x61, 0x62, 0x6c, 0x65, 0x54, 0x77, 0x6f, 0x50, 0x61, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x76,
0x62, 0x76, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0b, 0x76, 0x62, 0x76, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x69, 0x74, 0x73, 0x12,
0x2a, 0x0a, 0x11, 0x76, 0x62, 0x76, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x5f,
0x62, 0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x76, 0x62, 0x76, 0x46,
0x75, 0x6c, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x69, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65,
0x6e, 0x74, 0x72, 0x6f, 0x70, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x70, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x72,
0x12, 0x1b, 0x0a, 0x09, 0x62, 0x5f, 0x70, 0x79, 0x72, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x0f, 0x20,
0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x50, 0x79, 0x72, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x22, 0x0a,
0x0d, 0x62, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x10,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x71, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68,
0x18, 0x11, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x71, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67,
0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x12, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x74, 0x75, 0x6e, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x75, 0x6e, 0x65,
0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x67, 0x6f, 0x70, 0x5f,
0x6d, 0x6f, 0x64, 0x65, 0x1a, 0xcd, 0x05, 0x0a, 0x11, 0x48, 0x32, 0x36, 0x35, 0x43, 0x6f, 0x64,
0x65, 0x63, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69,
0x64, 0x74, 0x68, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x0a,
0x0d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x69, 0x78, 0x65,
0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x66, 0x72, 0x61,
0x6d, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74,
0x65, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x0a, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x42, 0x70, 0x73, 0x12, 0x21, 0x0a, 0x0c,
0x70, 0x69, 0x78, 0x65, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,
0x2a, 0x0a, 0x11, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f,
0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x61, 0x74, 0x65,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63,
0x72, 0x66, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08,
0x63, 0x72, 0x66, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f,
0x77, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x67, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x47, 0x6f, 0x70, 0x12, 0x28,
0x0a, 0x0f, 0x67, 0x6f, 0x70, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6f, 0x70, 0x46, 0x72,
0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x67, 0x6f, 0x70, 0x5f,
0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x6f, 0x70,
0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28,
0x08, 0x52, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x77, 0x6f, 0x50, 0x61, 0x73, 0x73,
0x12, 0x22, 0x0a, 0x0d, 0x76, 0x62, 0x76, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x69, 0x74,
0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x62, 0x76, 0x53, 0x69, 0x7a, 0x65,
0x42, 0x69, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x62, 0x76, 0x5f, 0x66, 0x75, 0x6c, 0x6c,
0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0f, 0x76, 0x62, 0x76, 0x46, 0x75, 0x6c, 0x6c, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x69, 0x74, 0x73,
0x12, 0x1b, 0x0a, 0x09, 0x62, 0x5f, 0x70, 0x79, 0x72, 0x61, 0x6d, 0x69, 0x64, 0x18, 0x0e, 0x20,
0x01, 0x28, 0x08, 0x52, 0x08, 0x62, 0x50, 0x79, 0x72, 0x61, 0x6d, 0x69, 0x64, 0x12, 0x22, 0x0a,
0x0d, 0x62, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0f,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x71, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68,
0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x61, 0x71, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67,
0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x11, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04,
0x74, 0x75, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x75, 0x6e, 0x65,
0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x67, 0x6f, 0x70, 0x5f,
0x6d, 0x6f, 0x64, 0x65, 0x1a, 0xa0, 0x03, 0x0a, 0x10, 0x56, 0x70, 0x39, 0x43, 0x6f, 0x64, 0x65,
0x63, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x64,
0x74, 0x68, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x23, 0x0a, 0x0d,
0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x69, 0x78, 0x65, 0x6c,
0x73, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d,
0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65,
0x5f, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
0x0a, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x42, 0x70, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70,
0x69, 0x78, 0x65, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0b, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x2a,
0x0a, 0x11, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6d,
0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x61, 0x74, 0x65, 0x43,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x72,
0x66, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63,
0x72, 0x66, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x67, 0x6f, 0x70, 0x5f, 0x66,
0x72, 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05,
0x48, 0x00, 0x52, 0x0d, 0x67, 0x6f, 0x70, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x67, 0x6f, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x6f, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x67,
0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x63, 0x6f, 0x64, 0x65, 0x63,
0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xff, 0x03, 0x0a, 0x0b, 0x41, 0x75,
0x64, 0x69, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x64,
0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12,
0x24, 0x0a, 0x0b, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x02,
0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x62, 0x69, 0x74, 0x72, 0x61,
0x74, 0x65, 0x42, 0x70, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x68,
0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x68,
0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x61, 0x79, 0x6f, 0x75,
0x74, 0x12, 0x54, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
0x64, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64,
0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61,
0x6d, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x07,
0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x61, 0x6d, 0x70, 0x6c,
0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x74, 0x7a, 0x18, 0x06, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x65,
0x72, 0x74, 0x7a, 0x1a, 0xe5, 0x01, 0x0a, 0x0c, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x61, 0x70,
0x70, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x74, 0x6f, 0x6d, 0x5f, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x74, 0x6f,
0x6d, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x6b, 0x65,
0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e,
0x70, 0x75, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f,
0x74, 0x72, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x28, 0x0a, 0x0d,
0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x43,
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74,
0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03,
0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e,
0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x61, 0x69, 0x6e, 0x5f, 0x64, 0x62, 0x18, 0x06, 0x20,
0x01, 0x28, 0x01, 0x52, 0x06, 0x67, 0x61, 0x69, 0x6e, 0x44, 0x62, 0x22, 0xed, 0x01, 0x0a, 0x0a,
0x54, 0x65, 0x78, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
0x64, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63,
0x12, 0x52, 0x0a, 0x07, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65,
0x72, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e,
0x54, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x6d, 0x61, 0x70,
0x70, 0x69, 0x6e, 0x67, 0x1a, 0x75, 0x0a, 0x0b, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x61, 0x70, 0x70,
0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x74, 0x6f, 0x6d, 0x5f, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x74, 0x6f, 0x6d,
0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x6b, 0x65, 0x79,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, 0x70,
0x75, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74,
0x72, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x22, 0x8d, 0x01, 0x0a, 0x0f,
0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12,
0x44, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x13, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64,
0x75, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01,
0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x69, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64,
0x75, 0x61, 0x6c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x84, 0x01, 0x0a, 0x24,
0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x65,
0x72, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50,
0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67,
0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63,
0x6f, 0x64, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64,
0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_google_cloud_video_transcoder_v1_resources_proto_rawDescOnce sync.Once
file_google_cloud_video_transcoder_v1_resources_proto_rawDescData = file_google_cloud_video_transcoder_v1_resources_proto_rawDesc
)
func file_google_cloud_video_transcoder_v1_resources_proto_rawDescGZIP() []byte {
file_google_cloud_video_transcoder_v1_resources_proto_rawDescOnce.Do(func() {
file_google_cloud_video_transcoder_v1_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_video_transcoder_v1_resources_proto_rawDescData)
})
return file_google_cloud_video_transcoder_v1_resources_proto_rawDescData
}
var file_google_cloud_video_transcoder_v1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_google_cloud_video_transcoder_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
var file_google_cloud_video_transcoder_v1_resources_proto_goTypes = []interface{}{
(Job_ProcessingState)(0), // 0: google.cloud.video.transcoder.v1.Job.ProcessingState
(Manifest_ManifestType)(0), // 1: google.cloud.video.transcoder.v1.Manifest.ManifestType
(Overlay_FadeType)(0), // 2: google.cloud.video.transcoder.v1.Overlay.FadeType
(*Job)(nil), // 3: google.cloud.video.transcoder.v1.Job
(*JobTemplate)(nil), // 4: google.cloud.video.transcoder.v1.JobTemplate
(*JobConfig)(nil), // 5: google.cloud.video.transcoder.v1.JobConfig
(*Input)(nil), // 6: google.cloud.video.transcoder.v1.Input
(*Output)(nil), // 7: google.cloud.video.transcoder.v1.Output
(*EditAtom)(nil), // 8: google.cloud.video.transcoder.v1.EditAtom
(*AdBreak)(nil), // 9: google.cloud.video.transcoder.v1.AdBreak
(*ElementaryStream)(nil), // 10: google.cloud.video.transcoder.v1.ElementaryStream
(*MuxStream)(nil), // 11: google.cloud.video.transcoder.v1.MuxStream
(*Manifest)(nil), // 12: google.cloud.video.transcoder.v1.Manifest
(*PubsubDestination)(nil), // 13: google.cloud.video.transcoder.v1.PubsubDestination
(*SpriteSheet)(nil), // 14: google.cloud.video.transcoder.v1.SpriteSheet
(*Overlay)(nil), // 15: google.cloud.video.transcoder.v1.Overlay
(*PreprocessingConfig)(nil), // 16: google.cloud.video.transcoder.v1.PreprocessingConfig
(*VideoStream)(nil), // 17: google.cloud.video.transcoder.v1.VideoStream
(*AudioStream)(nil), // 18: google.cloud.video.transcoder.v1.AudioStream
(*TextStream)(nil), // 19: google.cloud.video.transcoder.v1.TextStream
(*SegmentSettings)(nil), // 20: google.cloud.video.transcoder.v1.SegmentSettings
nil, // 21: google.cloud.video.transcoder.v1.Job.LabelsEntry
nil, // 22: google.cloud.video.transcoder.v1.JobTemplate.LabelsEntry
(*Overlay_NormalizedCoordinate)(nil), // 23: google.cloud.video.transcoder.v1.Overlay.NormalizedCoordinate
(*Overlay_Image)(nil), // 24: google.cloud.video.transcoder.v1.Overlay.Image
(*Overlay_AnimationStatic)(nil), // 25: google.cloud.video.transcoder.v1.Overlay.AnimationStatic
(*Overlay_AnimationFade)(nil), // 26: google.cloud.video.transcoder.v1.Overlay.AnimationFade
(*Overlay_AnimationEnd)(nil), // 27: google.cloud.video.transcoder.v1.Overlay.AnimationEnd
(*Overlay_Animation)(nil), // 28: google.cloud.video.transcoder.v1.Overlay.Animation
(*PreprocessingConfig_Color)(nil), // 29: google.cloud.video.transcoder.v1.PreprocessingConfig.Color
(*PreprocessingConfig_Denoise)(nil), // 30: google.cloud.video.transcoder.v1.PreprocessingConfig.Denoise
(*PreprocessingConfig_Deblock)(nil), // 31: google.cloud.video.transcoder.v1.PreprocessingConfig.Deblock
(*PreprocessingConfig_Audio)(nil), // 32: google.cloud.video.transcoder.v1.PreprocessingConfig.Audio
(*PreprocessingConfig_Crop)(nil), // 33: google.cloud.video.transcoder.v1.PreprocessingConfig.Crop
(*PreprocessingConfig_Pad)(nil), // 34: google.cloud.video.transcoder.v1.PreprocessingConfig.Pad
(*VideoStream_H264CodecSettings)(nil), // 35: google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings
(*VideoStream_H265CodecSettings)(nil), // 36: google.cloud.video.transcoder.v1.VideoStream.H265CodecSettings
(*VideoStream_Vp9CodecSettings)(nil), // 37: google.cloud.video.transcoder.v1.VideoStream.Vp9CodecSettings
(*AudioStream_AudioMapping)(nil), // 38: google.cloud.video.transcoder.v1.AudioStream.AudioMapping
(*TextStream_TextMapping)(nil), // 39: google.cloud.video.transcoder.v1.TextStream.TextMapping
(*timestamp.Timestamp)(nil), // 40: google.protobuf.Timestamp
(*status.Status)(nil), // 41: google.rpc.Status
(*duration.Duration)(nil), // 42: google.protobuf.Duration
}
var file_google_cloud_video_transcoder_v1_resources_proto_depIdxs = []int32{
5, // 0: google.cloud.video.transcoder.v1.Job.config:type_name -> google.cloud.video.transcoder.v1.JobConfig
0, // 1: google.cloud.video.transcoder.v1.Job.state:type_name -> google.cloud.video.transcoder.v1.Job.ProcessingState
40, // 2: google.cloud.video.transcoder.v1.Job.create_time:type_name -> google.protobuf.Timestamp
40, // 3: google.cloud.video.transcoder.v1.Job.start_time:type_name -> google.protobuf.Timestamp
40, // 4: google.cloud.video.transcoder.v1.Job.end_time:type_name -> google.protobuf.Timestamp
21, // 5: google.cloud.video.transcoder.v1.Job.labels:type_name -> google.cloud.video.transcoder.v1.Job.LabelsEntry
41, // 6: google.cloud.video.transcoder.v1.Job.error:type_name -> google.rpc.Status
5, // 7: google.cloud.video.transcoder.v1.JobTemplate.config:type_name -> google.cloud.video.transcoder.v1.JobConfig
22, // 8: google.cloud.video.transcoder.v1.JobTemplate.labels:type_name -> google.cloud.video.transcoder.v1.JobTemplate.LabelsEntry
6, // 9: google.cloud.video.transcoder.v1.JobConfig.inputs:type_name -> google.cloud.video.transcoder.v1.Input
8, // 10: google.cloud.video.transcoder.v1.JobConfig.edit_list:type_name -> google.cloud.video.transcoder.v1.EditAtom
10, // 11: google.cloud.video.transcoder.v1.JobConfig.elementary_streams:type_name -> google.cloud.video.transcoder.v1.ElementaryStream
11, // 12: google.cloud.video.transcoder.v1.JobConfig.mux_streams:type_name -> google.cloud.video.transcoder.v1.MuxStream
12, // 13: google.cloud.video.transcoder.v1.JobConfig.manifests:type_name -> google.cloud.video.transcoder.v1.Manifest
7, // 14: google.cloud.video.transcoder.v1.JobConfig.output:type_name -> google.cloud.video.transcoder.v1.Output
9, // 15: google.cloud.video.transcoder.v1.JobConfig.ad_breaks:type_name -> google.cloud.video.transcoder.v1.AdBreak
13, // 16: google.cloud.video.transcoder.v1.JobConfig.pubsub_destination:type_name -> google.cloud.video.transcoder.v1.PubsubDestination
14, // 17: google.cloud.video.transcoder.v1.JobConfig.sprite_sheets:type_name -> google.cloud.video.transcoder.v1.SpriteSheet
15, // 18: google.cloud.video.transcoder.v1.JobConfig.overlays:type_name -> google.cloud.video.transcoder.v1.Overlay
16, // 19: google.cloud.video.transcoder.v1.Input.preprocessing_config:type_name -> google.cloud.video.transcoder.v1.PreprocessingConfig
42, // 20: google.cloud.video.transcoder.v1.EditAtom.end_time_offset:type_name -> google.protobuf.Duration
42, // 21: google.cloud.video.transcoder.v1.EditAtom.start_time_offset:type_name -> google.protobuf.Duration
42, // 22: google.cloud.video.transcoder.v1.AdBreak.start_time_offset:type_name -> google.protobuf.Duration
17, // 23: google.cloud.video.transcoder.v1.ElementaryStream.video_stream:type_name -> google.cloud.video.transcoder.v1.VideoStream
18, // 24: google.cloud.video.transcoder.v1.ElementaryStream.audio_stream:type_name -> google.cloud.video.transcoder.v1.AudioStream
19, // 25: google.cloud.video.transcoder.v1.ElementaryStream.text_stream:type_name -> google.cloud.video.transcoder.v1.TextStream
20, // 26: google.cloud.video.transcoder.v1.MuxStream.segment_settings:type_name -> google.cloud.video.transcoder.v1.SegmentSettings
1, // 27: google.cloud.video.transcoder.v1.Manifest.type:type_name -> google.cloud.video.transcoder.v1.Manifest.ManifestType
42, // 28: google.cloud.video.transcoder.v1.SpriteSheet.start_time_offset:type_name -> google.protobuf.Duration
42, // 29: google.cloud.video.transcoder.v1.SpriteSheet.end_time_offset:type_name -> google.protobuf.Duration
42, // 30: google.cloud.video.transcoder.v1.SpriteSheet.interval:type_name -> google.protobuf.Duration
24, // 31: google.cloud.video.transcoder.v1.Overlay.image:type_name -> google.cloud.video.transcoder.v1.Overlay.Image
28, // 32: google.cloud.video.transcoder.v1.Overlay.animations:type_name -> google.cloud.video.transcoder.v1.Overlay.Animation
29, // 33: google.cloud.video.transcoder.v1.PreprocessingConfig.color:type_name -> google.cloud.video.transcoder.v1.PreprocessingConfig.Color
30, // 34: google.cloud.video.transcoder.v1.PreprocessingConfig.denoise:type_name -> google.cloud.video.transcoder.v1.PreprocessingConfig.Denoise
31, // 35: google.cloud.video.transcoder.v1.PreprocessingConfig.deblock:type_name -> google.cloud.video.transcoder.v1.PreprocessingConfig.Deblock
32, // 36: google.cloud.video.transcoder.v1.PreprocessingConfig.audio:type_name -> google.cloud.video.transcoder.v1.PreprocessingConfig.Audio
33, // 37: google.cloud.video.transcoder.v1.PreprocessingConfig.crop:type_name -> google.cloud.video.transcoder.v1.PreprocessingConfig.Crop
34, // 38: google.cloud.video.transcoder.v1.PreprocessingConfig.pad:type_name -> google.cloud.video.transcoder.v1.PreprocessingConfig.Pad
35, // 39: google.cloud.video.transcoder.v1.VideoStream.h264:type_name -> google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings
36, // 40: google.cloud.video.transcoder.v1.VideoStream.h265:type_name -> google.cloud.video.transcoder.v1.VideoStream.H265CodecSettings
37, // 41: google.cloud.video.transcoder.v1.VideoStream.vp9:type_name -> google.cloud.video.transcoder.v1.VideoStream.Vp9CodecSettings
38, // 42: google.cloud.video.transcoder.v1.AudioStream.mapping:type_name -> google.cloud.video.transcoder.v1.AudioStream.AudioMapping
39, // 43: google.cloud.video.transcoder.v1.TextStream.mapping:type_name -> google.cloud.video.transcoder.v1.TextStream.TextMapping
42, // 44: google.cloud.video.transcoder.v1.SegmentSettings.segment_duration:type_name -> google.protobuf.Duration
23, // 45: google.cloud.video.transcoder.v1.Overlay.Image.resolution:type_name -> google.cloud.video.transcoder.v1.Overlay.NormalizedCoordinate
23, // 46: google.cloud.video.transcoder.v1.Overlay.AnimationStatic.xy:type_name -> google.cloud.video.transcoder.v1.Overlay.NormalizedCoordinate
42, // 47: google.cloud.video.transcoder.v1.Overlay.AnimationStatic.start_time_offset:type_name -> google.protobuf.Duration
2, // 48: google.cloud.video.transcoder.v1.Overlay.AnimationFade.fade_type:type_name -> google.cloud.video.transcoder.v1.Overlay.FadeType
23, // 49: google.cloud.video.transcoder.v1.Overlay.AnimationFade.xy:type_name -> google.cloud.video.transcoder.v1.Overlay.NormalizedCoordinate
42, // 50: google.cloud.video.transcoder.v1.Overlay.AnimationFade.start_time_offset:type_name -> google.protobuf.Duration
42, // 51: google.cloud.video.transcoder.v1.Overlay.AnimationFade.end_time_offset:type_name -> google.protobuf.Duration
42, // 52: google.cloud.video.transcoder.v1.Overlay.AnimationEnd.start_time_offset:type_name -> google.protobuf.Duration
25, // 53: google.cloud.video.transcoder.v1.Overlay.Animation.animation_static:type_name -> google.cloud.video.transcoder.v1.Overlay.AnimationStatic
26, // 54: google.cloud.video.transcoder.v1.Overlay.Animation.animation_fade:type_name -> google.cloud.video.transcoder.v1.Overlay.AnimationFade
27, // 55: google.cloud.video.transcoder.v1.Overlay.Animation.animation_end:type_name -> google.cloud.video.transcoder.v1.Overlay.AnimationEnd
42, // 56: google.cloud.video.transcoder.v1.VideoStream.H264CodecSettings.gop_duration:type_name -> google.protobuf.Duration
42, // 57: google.cloud.video.transcoder.v1.VideoStream.H265CodecSettings.gop_duration:type_name -> google.protobuf.Duration
42, // 58: google.cloud.video.transcoder.v1.VideoStream.Vp9CodecSettings.gop_duration:type_name -> google.protobuf.Duration
59, // [59:59] is the sub-list for method output_type
59, // [59:59] is the sub-list for method input_type
59, // [59:59] is the sub-list for extension type_name
59, // [59:59] is the sub-list for extension extendee
0, // [0:59] is the sub-list for field type_name
}
func init() { file_google_cloud_video_transcoder_v1_resources_proto_init() }
func file_google_cloud_video_transcoder_v1_resources_proto_init() {
if File_google_cloud_video_transcoder_v1_resources_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Job); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JobTemplate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JobConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Input); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Output); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EditAtom); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AdBreak); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ElementaryStream); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MuxStream); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Manifest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PubsubDestination); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SpriteSheet); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Overlay); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreprocessingConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VideoStream); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AudioStream); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TextStream); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SegmentSettings); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Overlay_NormalizedCoordinate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Overlay_Image); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Overlay_AnimationStatic); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Overlay_AnimationFade); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Overlay_AnimationEnd); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Overlay_Animation); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreprocessingConfig_Color); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreprocessingConfig_Denoise); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreprocessingConfig_Deblock); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreprocessingConfig_Audio); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreprocessingConfig_Crop); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PreprocessingConfig_Pad); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VideoStream_H264CodecSettings); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VideoStream_H265CodecSettings); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*VideoStream_Vp9CodecSettings); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AudioStream_AudioMapping); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TextStream_TextMapping); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[0].OneofWrappers = []interface{}{
(*Job_TemplateId)(nil),
(*Job_Config)(nil),
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[7].OneofWrappers = []interface{}{
(*ElementaryStream_VideoStream)(nil),
(*ElementaryStream_AudioStream)(nil),
(*ElementaryStream_TextStream)(nil),
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[11].OneofWrappers = []interface{}{
(*SpriteSheet_TotalCount)(nil),
(*SpriteSheet_Interval)(nil),
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[14].OneofWrappers = []interface{}{
(*VideoStream_H264)(nil),
(*VideoStream_H265)(nil),
(*VideoStream_Vp9)(nil),
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[25].OneofWrappers = []interface{}{
(*Overlay_Animation_AnimationStatic)(nil),
(*Overlay_Animation_AnimationFade)(nil),
(*Overlay_Animation_AnimationEnd)(nil),
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[32].OneofWrappers = []interface{}{
(*VideoStream_H264CodecSettings_GopFrameCount)(nil),
(*VideoStream_H264CodecSettings_GopDuration)(nil),
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[33].OneofWrappers = []interface{}{
(*VideoStream_H265CodecSettings_GopFrameCount)(nil),
(*VideoStream_H265CodecSettings_GopDuration)(nil),
}
file_google_cloud_video_transcoder_v1_resources_proto_msgTypes[34].OneofWrappers = []interface{}{
(*VideoStream_Vp9CodecSettings_GopFrameCount)(nil),
(*VideoStream_Vp9CodecSettings_GopDuration)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_cloud_video_transcoder_v1_resources_proto_rawDesc,
NumEnums: 3,
NumMessages: 37,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_cloud_video_transcoder_v1_resources_proto_goTypes,
DependencyIndexes: file_google_cloud_video_transcoder_v1_resources_proto_depIdxs,
EnumInfos: file_google_cloud_video_transcoder_v1_resources_proto_enumTypes,
MessageInfos: file_google_cloud_video_transcoder_v1_resources_proto_msgTypes,
}.Build()
File_google_cloud_video_transcoder_v1_resources_proto = out.File
file_google_cloud_video_transcoder_v1_resources_proto_rawDesc = nil
file_google_cloud_video_transcoder_v1_resources_proto_goTypes = nil
file_google_cloud_video_transcoder_v1_resources_proto_depIdxs = nil
}