google-cloud-video-live_stream-v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +149 -0
  4. data/LICENSE.md +201 -0
  5. data/README.md +139 -0
  6. data/lib/google/cloud/video/live_stream/v1/livestream_service/client.rb +2162 -0
  7. data/lib/google/cloud/video/live_stream/v1/livestream_service/credentials.rb +49 -0
  8. data/lib/google/cloud/video/live_stream/v1/livestream_service/operations.rb +769 -0
  9. data/lib/google/cloud/video/live_stream/v1/livestream_service/paths.rb +111 -0
  10. data/lib/google/cloud/video/live_stream/v1/livestream_service.rb +56 -0
  11. data/lib/google/cloud/video/live_stream/v1/version.rb +30 -0
  12. data/lib/google/cloud/video/live_stream/v1.rb +40 -0
  13. data/lib/google/cloud/video/livestream/v1/outputs_pb.rb +134 -0
  14. data/lib/google/cloud/video/livestream/v1/resources_pb.rb +168 -0
  15. data/lib/google/cloud/video/livestream/v1/service_pb.rb +154 -0
  16. data/lib/google/cloud/video/livestream/v1/service_services_pb.rb +84 -0
  17. data/lib/google-cloud-video-live_stream-v1.rb +21 -0
  18. data/proto_docs/README.md +4 -0
  19. data/proto_docs/google/api/field_behavior.rb +71 -0
  20. data/proto_docs/google/api/resource.rb +222 -0
  21. data/proto_docs/google/cloud/video/livestream/v1/outputs.rb +427 -0
  22. data/proto_docs/google/cloud/video/livestream/v1/resources.rb +450 -0
  23. data/proto_docs/google/cloud/video/livestream/v1/service.rb +523 -0
  24. data/proto_docs/google/longrunning/operations.rb +164 -0
  25. data/proto_docs/google/protobuf/any.rb +141 -0
  26. data/proto_docs/google/protobuf/duration.rb +98 -0
  27. data/proto_docs/google/protobuf/empty.rb +36 -0
  28. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  29. data/proto_docs/google/protobuf/timestamp.rb +129 -0
  30. data/proto_docs/google/rpc/status.rb +46 -0
  31. metadata +222 -0
@@ -0,0 +1,427 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Video
23
+ module LiveStream
24
+ module V1
25
+ # Encoding of an input element such as an audio, video, or text track.
26
+ # Elementary streams must be packaged before mapping and sharing between
27
+ # different output formats.
28
+ # @!attribute [rw] key
29
+ # @return [::String]
30
+ # A unique key for this elementary stream.
31
+ # @!attribute [rw] video_stream
32
+ # @return [::Google::Cloud::Video::LiveStream::V1::VideoStream]
33
+ # Encoding of a video stream.
34
+ # @!attribute [rw] audio_stream
35
+ # @return [::Google::Cloud::Video::LiveStream::V1::AudioStream]
36
+ # Encoding of an audio stream.
37
+ # @!attribute [rw] text_stream
38
+ # @return [::Google::Cloud::Video::LiveStream::V1::TextStream]
39
+ # Encoding of a text stream. For example, closed captions or subtitles.
40
+ class ElementaryStream
41
+ include ::Google::Protobuf::MessageExts
42
+ extend ::Google::Protobuf::MessageExts::ClassMethods
43
+ end
44
+
45
+ # Multiplexing settings for output stream.
46
+ # @!attribute [rw] key
47
+ # @return [::String]
48
+ # A unique key for this multiplexed stream.
49
+ # @!attribute [rw] container
50
+ # @return [::String]
51
+ # The container format. The default is `fmp4`.
52
+ #
53
+ # Supported container formats:
54
+ #
55
+ # - `fmp4` - the corresponding file extension is `.m4s`
56
+ # - `ts` - the corresponding file extension is `.ts`
57
+ # @!attribute [rw] elementary_streams
58
+ # @return [::Array<::String>]
59
+ # List of `ElementaryStream` {::Google::Cloud::Video::LiveStream::V1::ElementaryStream#key key}s multiplexed in this
60
+ # stream.
61
+ #
62
+ # - For `fmp4` container, must contain either one video or one audio stream.
63
+ # - For `ts` container, must contain exactly one audio stream and up to one
64
+ # video stream.
65
+ # @!attribute [rw] segment_settings
66
+ # @return [::Google::Cloud::Video::LiveStream::V1::SegmentSettings]
67
+ # Segment settings for `fmp4` and `ts`.
68
+ class MuxStream
69
+ include ::Google::Protobuf::MessageExts
70
+ extend ::Google::Protobuf::MessageExts::ClassMethods
71
+ end
72
+
73
+ # Manifest configuration.
74
+ # @!attribute [rw] file_name
75
+ # @return [::String]
76
+ # The name of the generated file. The default is `manifest` with the
77
+ # extension suffix corresponding to the `Manifest` {::Google::Cloud::Video::LiveStream::V1::Manifest#type type}. If multiple
78
+ # manifests are added to the channel, each must have a unique file name.
79
+ # @!attribute [rw] type
80
+ # @return [::Google::Cloud::Video::LiveStream::V1::Manifest::ManifestType]
81
+ # Required. Type of the manifest, can be `HLS` or `DASH`.
82
+ # @!attribute [rw] mux_streams
83
+ # @return [::Array<::String>]
84
+ # Required. List of `MuxStream` {::Google::Cloud::Video::LiveStream::V1::MuxStream#key key}s that should appear in this
85
+ # manifest.
86
+ #
87
+ # - For HLS, either `fmp4` or `ts` mux streams can be specified but not
88
+ # mixed.
89
+ # - For DASH, only `fmp4` mux streams can be specified.
90
+ # @!attribute [rw] max_segment_count
91
+ # @return [::Integer]
92
+ # Maximum number of segments that this manifest holds. Once the manifest
93
+ # reaches this maximum number of segments, whenever a new segment is added to
94
+ # the manifest, the oldest segment will be removed from the manifest.
95
+ # The minimum value is 1 and the default value is 5.
96
+ # @!attribute [rw] segment_keep_duration
97
+ # @return [::Google::Protobuf::Duration]
98
+ # How long to keep a segment on the output Google Cloud Storage bucket after
99
+ # it is removed from the manifest. This field should be large enough to cover
100
+ # the manifest propagation delay. Otherwise, a player could receive 404
101
+ # errors while accessing segments which are listed in the manifest that the
102
+ # player has, but were already deleted from the output Google Cloud Storage
103
+ # bucket. Default value is `60s`.
104
+ class Manifest
105
+ include ::Google::Protobuf::MessageExts
106
+ extend ::Google::Protobuf::MessageExts::ClassMethods
107
+
108
+ # The manifest type can be either `HLS` or `DASH`.
109
+ module ManifestType
110
+ # The manifest type is not specified.
111
+ MANIFEST_TYPE_UNSPECIFIED = 0
112
+
113
+ # Create an `HLS` manifest. The corresponding file extension is `.m3u8`.
114
+ HLS = 1
115
+
116
+ # Create a `DASH` manifest. The corresponding file extension is `.mpd`.
117
+ DASH = 2
118
+ end
119
+ end
120
+
121
+ # Sprite sheet configuration.
122
+ # @!attribute [rw] format
123
+ # @return [::String]
124
+ # Format type. The default is `jpeg`.
125
+ #
126
+ # Supported formats:
127
+ #
128
+ # - `jpeg`
129
+ # @!attribute [rw] file_prefix
130
+ # @return [::String]
131
+ # Required. File name prefix for the generated sprite sheets. If multiple
132
+ # sprite sheets are added to the channel, each must have a unique file
133
+ # prefix.
134
+ # Each sprite sheet has an incremental 10-digit zero-padded suffix starting
135
+ # from 0 before the extension, such as `sprite_sheet0000000123.jpeg`.
136
+ # @!attribute [rw] sprite_width_pixels
137
+ # @return [::Integer]
138
+ # Required. The width of the sprite in pixels. Must be an even integer.
139
+ # @!attribute [rw] sprite_height_pixels
140
+ # @return [::Integer]
141
+ # Required. The height of the sprite in pixels. Must be an even integer.
142
+ # @!attribute [rw] column_count
143
+ # @return [::Integer]
144
+ # The maximum number of sprites per row in a sprite sheet. Valid range is
145
+ # [1, 10] and the default value is 1.
146
+ # @!attribute [rw] row_count
147
+ # @return [::Integer]
148
+ # The maximum number of rows per sprite sheet. When the sprite sheet is full,
149
+ # a new sprite sheet is created. Valid range is [1, 10] and the default value
150
+ # is 1.
151
+ # @!attribute [rw] interval
152
+ # @return [::Google::Protobuf::Duration]
153
+ # Create sprites at regular intervals. Valid range is [1 second, 1 hour] and
154
+ # the default value is `10s`.
155
+ # @!attribute [rw] quality
156
+ # @return [::Integer]
157
+ # The quality of the generated sprite sheet. Enter a value between 1
158
+ # and 100, where 1 is the lowest quality and 100 is the highest quality.
159
+ # The default is 100. A high quality value corresponds to a low image data
160
+ # compression ratio.
161
+ class SpriteSheet
162
+ include ::Google::Protobuf::MessageExts
163
+ extend ::Google::Protobuf::MessageExts::ClassMethods
164
+ end
165
+
166
+ # Preprocessing configurations.
167
+ # @!attribute [rw] crop
168
+ # @return [::Google::Cloud::Video::LiveStream::V1::PreprocessingConfig::Crop]
169
+ # Specify the video cropping configuration.
170
+ # @!attribute [rw] pad
171
+ # @return [::Google::Cloud::Video::LiveStream::V1::PreprocessingConfig::Pad]
172
+ # Specify the video pad filter configuration.
173
+ class PreprocessingConfig
174
+ include ::Google::Protobuf::MessageExts
175
+ extend ::Google::Protobuf::MessageExts::ClassMethods
176
+
177
+ # Video cropping configuration for the input video. The cropped input video
178
+ # is scaled to match the output resolution.
179
+ # @!attribute [rw] top_pixels
180
+ # @return [::Integer]
181
+ # The number of pixels to crop from the top. The default is 0.
182
+ # @!attribute [rw] bottom_pixels
183
+ # @return [::Integer]
184
+ # The number of pixels to crop from the bottom. The default is 0.
185
+ # @!attribute [rw] left_pixels
186
+ # @return [::Integer]
187
+ # The number of pixels to crop from the left. The default is 0.
188
+ # @!attribute [rw] right_pixels
189
+ # @return [::Integer]
190
+ # The number of pixels to crop from the right. The default is 0.
191
+ class Crop
192
+ include ::Google::Protobuf::MessageExts
193
+ extend ::Google::Protobuf::MessageExts::ClassMethods
194
+ end
195
+
196
+ # Pad filter configuration for the input video. The padded input video
197
+ # is scaled after padding with black to match the output resolution.
198
+ # @!attribute [rw] top_pixels
199
+ # @return [::Integer]
200
+ # The number of pixels to add to the top. The default is 0.
201
+ # @!attribute [rw] bottom_pixels
202
+ # @return [::Integer]
203
+ # The number of pixels to add to the bottom. The default is 0.
204
+ # @!attribute [rw] left_pixels
205
+ # @return [::Integer]
206
+ # The number of pixels to add to the left. The default is 0.
207
+ # @!attribute [rw] right_pixels
208
+ # @return [::Integer]
209
+ # The number of pixels to add to the right. The default is 0.
210
+ class Pad
211
+ include ::Google::Protobuf::MessageExts
212
+ extend ::Google::Protobuf::MessageExts::ClassMethods
213
+ end
214
+ end
215
+
216
+ # Video stream resource.
217
+ # @!attribute [rw] h264
218
+ # @return [::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings]
219
+ # H264 codec settings.
220
+ class VideoStream
221
+ include ::Google::Protobuf::MessageExts
222
+ extend ::Google::Protobuf::MessageExts::ClassMethods
223
+
224
+ # H264 codec settings.
225
+ # @!attribute [rw] width_pixels
226
+ # @return [::Integer]
227
+ # Required. The width of the video in pixels. Must be an even integer.
228
+ # Valid range is [320, 1920].
229
+ # @!attribute [rw] height_pixels
230
+ # @return [::Integer]
231
+ # Required. The height of the video in pixels. Must be an even integer.
232
+ # Valid range is [180, 1080].
233
+ # @!attribute [rw] frame_rate
234
+ # @return [::Float]
235
+ # Required. The target video frame rate in frames per second (FPS). Must be less
236
+ # than or equal to 60. Will default to the input frame rate if larger
237
+ # than the input frame rate. The API will generate an output FPS that is
238
+ # divisible by the input FPS, and smaller or equal to the target FPS. See
239
+ # [Calculating frame
240
+ # rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for
241
+ # more information.
242
+ # @!attribute [rw] bitrate_bps
243
+ # @return [::Integer]
244
+ # Required. The video bitrate in bits per second. Minimum value is 10,000.
245
+ #
246
+ # - For SD resolution (< 720p), must be <= 3,000,000 (3 Mbps).
247
+ # - For HD resolution (<= 1080p), must be <= 15,000,000 (15 Mbps).
248
+ # @!attribute [rw] allow_open_gop
249
+ # @return [::Boolean]
250
+ # Specifies whether an open Group of Pictures (GOP) structure should be
251
+ # allowed or not. The default is `false`.
252
+ # @!attribute [rw] gop_frame_count
253
+ # @return [::Integer]
254
+ # Select the GOP size based on the specified frame count.
255
+ # If GOP frame count is set instead of GOP duration, GOP duration will be
256
+ # calculated by `gopFrameCount`/`frameRate`. The calculated GOP duration
257
+ # must satisfy the limitations on `gopDuration` as well.
258
+ # Valid range is [60, 600].
259
+ # @!attribute [rw] gop_duration
260
+ # @return [::Google::Protobuf::Duration]
261
+ # Select the GOP size based on the specified duration. The default is
262
+ # `2s`. Note that `gopDuration` must be less than or equal to
263
+ # {::Google::Cloud::Video::LiveStream::V1::SegmentSettings#segment_duration segment_duration}, and
264
+ # {::Google::Cloud::Video::LiveStream::V1::SegmentSettings#segment_duration segment_duration} must be divisible
265
+ # by `gopDuration`. Valid range is [2s, 20s].
266
+ #
267
+ # All video streams in the same channel must have the same GOP size.
268
+ # @!attribute [rw] vbv_size_bits
269
+ # @return [::Integer]
270
+ # Size of the Video Buffering Verifier (VBV) buffer in bits. Must be
271
+ # greater than zero. The default is equal to {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#bitrate_bps bitrate_bps}.
272
+ # @!attribute [rw] vbv_fullness_bits
273
+ # @return [::Integer]
274
+ # Initial fullness of the Video Buffering Verifier (VBV) buffer in bits.
275
+ # Must be greater than zero. The default is equal to 90% of
276
+ # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#vbv_size_bits vbv_size_bits}.
277
+ # @!attribute [rw] entropy_coder
278
+ # @return [::String]
279
+ # The entropy coder to use. The default is `cabac`.
280
+ #
281
+ # Supported entropy coders:
282
+ #
283
+ # - `cavlc`
284
+ # - `cabac`
285
+ # @!attribute [rw] b_pyramid
286
+ # @return [::Boolean]
287
+ # Allow B-pyramid for reference frame selection. This may not be supported
288
+ # on all decoders. The default is `false`.
289
+ # @!attribute [rw] b_frame_count
290
+ # @return [::Integer]
291
+ # The number of consecutive B-frames. Must be greater than or equal to
292
+ # zero. Must be less than {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#gop_frame_count gop_frame_count} if set. The default
293
+ # is 0.
294
+ # @!attribute [rw] aq_strength
295
+ # @return [::Float]
296
+ # Specify the intensity of the adaptive quantizer (AQ). Must be between 0
297
+ # and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A
298
+ # higher value equals a lower bitrate but smoother image. The default is 0.
299
+ # @!attribute [rw] profile
300
+ # @return [::String]
301
+ # Enforces the specified codec profile. The following profiles are
302
+ # supported:
303
+ #
304
+ # * `baseline`
305
+ # * `main` (default)
306
+ # * `high`
307
+ #
308
+ # The available options are [FFmpeg-compatible Profile
309
+ # Options](https://trac.ffmpeg.org/wiki/Encode/H.264#Profile).
310
+ # Note that certain values for this field may cause the
311
+ # transcoder to override other fields you set in the {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings H264CodecSettings}
312
+ # message.
313
+ # @!attribute [rw] tune
314
+ # @return [::String]
315
+ # Enforces the specified codec tune. The available options are
316
+ # [FFmpeg-compatible Encode
317
+ # Options](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune)
318
+ # Note that certain values for this field may cause the transcoder to
319
+ # override other fields you set in the {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings H264CodecSettings} message.
320
+ class H264CodecSettings
321
+ include ::Google::Protobuf::MessageExts
322
+ extend ::Google::Protobuf::MessageExts::ClassMethods
323
+ end
324
+ end
325
+
326
+ # Audio stream resource.
327
+ # @!attribute [rw] transmux
328
+ # @return [::Boolean]
329
+ # Specifies whether pass through (transmuxing) is enabled or not.
330
+ # If set to `true`, the rest of the settings, other than `mapping`, will be
331
+ # ignored. The default is `false`.
332
+ # @!attribute [rw] codec
333
+ # @return [::String]
334
+ # The codec for this audio stream. The default is `aac`.
335
+ #
336
+ # Supported audio codecs:
337
+ #
338
+ # - `aac`
339
+ # @!attribute [rw] bitrate_bps
340
+ # @return [::Integer]
341
+ # Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000.
342
+ # @!attribute [rw] channel_count
343
+ # @return [::Integer]
344
+ # Number of audio channels. Must be between 1 and 6. The default is 2.
345
+ # @!attribute [rw] channel_layout
346
+ # @return [::Array<::String>]
347
+ # A list of channel names specifying layout of the audio channels.
348
+ # This only affects the metadata embedded in the container headers, if
349
+ # supported by the specified format. The default is `[fl, fr]`.
350
+ #
351
+ # Supported channel names:
352
+ #
353
+ # - `fl` - Front left channel
354
+ # - `fr` - Front right channel
355
+ # - `sl` - Side left channel
356
+ # - `sr` - Side right channel
357
+ # - `fc` - Front center channel
358
+ # - `lfe` - Low frequency
359
+ # @!attribute [rw] mapping
360
+ # @return [::Array<::Google::Cloud::Video::LiveStream::V1::AudioStream::AudioMapping>]
361
+ # The mapping for the input streams and audio channels.
362
+ # @!attribute [rw] sample_rate_hertz
363
+ # @return [::Integer]
364
+ # The audio sample rate in Hertz. The default is 48000 Hertz.
365
+ class AudioStream
366
+ include ::Google::Protobuf::MessageExts
367
+ extend ::Google::Protobuf::MessageExts::ClassMethods
368
+
369
+ # The mapping for the input streams and audio channels.
370
+ # @!attribute [rw] input_key
371
+ # @return [::String]
372
+ # Required. The `Channel` {::Google::Cloud::Video::LiveStream::V1::InputAttachment#key InputAttachment.key} that identifies the input that this
373
+ # audio mapping applies to. If an active input doesn't have an audio
374
+ # mapping, the primary audio track in the input stream will be selected.
375
+ # @!attribute [rw] input_track
376
+ # @return [::Integer]
377
+ # Required. The zero-based index of the track in the input stream.
378
+ # All {::Google::Cloud::Video::LiveStream::V1::AudioStream#mapping mapping}s in the same {::Google::Cloud::Video::LiveStream::V1::AudioStream AudioStream}
379
+ # must have the same input track.
380
+ # @!attribute [rw] input_channel
381
+ # @return [::Integer]
382
+ # Required. The zero-based index of the channel in the input stream.
383
+ # @!attribute [rw] output_channel
384
+ # @return [::Integer]
385
+ # Required. The zero-based index of the channel in the output audio stream.
386
+ # Must be consistent with the {::Google::Cloud::Video::LiveStream::V1::AudioStream::AudioMapping#input_channel input_channel}.
387
+ class AudioMapping
388
+ include ::Google::Protobuf::MessageExts
389
+ extend ::Google::Protobuf::MessageExts::ClassMethods
390
+ end
391
+ end
392
+
393
+ # Encoding of a text stream. For example, closed captions or subtitles.
394
+ # @!attribute [rw] codec
395
+ # @return [::String]
396
+ # Required. The codec for this text stream.
397
+ #
398
+ # Supported text codecs:
399
+ #
400
+ # - `cea608`
401
+ # - `cea708`
402
+ class TextStream
403
+ include ::Google::Protobuf::MessageExts
404
+ extend ::Google::Protobuf::MessageExts::ClassMethods
405
+ end
406
+
407
+ # Segment settings for `fmp4` and `ts`.
408
+ # @!attribute [rw] segment_duration
409
+ # @return [::Google::Protobuf::Duration]
410
+ # Duration of the segments in seconds. The default is `6s`. Note that
411
+ # `segmentDuration` must be greater than or equal to
412
+ # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#gop_duration gop_duration}, and
413
+ # `segmentDuration` must be divisible by
414
+ # {::Google::Cloud::Video::LiveStream::V1::VideoStream::H264CodecSettings#gop_duration gop_duration}.
415
+ # Valid range is [2s, 20s].
416
+ #
417
+ # All {::Google::Cloud::Video::LiveStream::V1::Manifest#mux_streams mux_streams} in the same manifest must have the
418
+ # same segment duration.
419
+ class SegmentSettings
420
+ include ::Google::Protobuf::MessageExts
421
+ extend ::Google::Protobuf::MessageExts::ClassMethods
422
+ end
423
+ end
424
+ end
425
+ end
426
+ end
427
+ end