google-cloud-video-live_stream-v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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