@@ -68,6 +68,18 @@ message Job {
68
68
PROCESSING_MODE_BATCH = 2 ;
69
69
}
70
70
71
+ // The optimization strategy of the job. The default is `AUTODETECT`.
72
+ enum OptimizationStrategy {
73
+ // The optimization strategy is not specified.
74
+ OPTIMIZATION_STRATEGY_UNSPECIFIED = 0 ;
75
+
76
+ // Prioritize job processing speed.
77
+ AUTODETECT = 1 ;
78
+
79
+ // Disable all optimizations.
80
+ DISABLED = 2 ;
81
+ }
82
+
71
83
// The resource name of the job.
72
84
// Format: `projects/{project_number}/locations/{location}/jobs/{job}`
73
85
string name = 1 ;
@@ -133,6 +145,17 @@ message Job {
133
145
// The processing mode of the job.
134
146
// The default is `PROCESSING_MODE_INTERACTIVE`.
135
147
ProcessingMode mode = 20 ;
148
+
149
+ // The processing priority of a batch job.
150
+ // This field can only be set for batch mode jobs. The default value is 0.
151
+ // This value cannot be negative. Higher values correspond to higher
152
+ // priorities for the job.
153
+ int32 batch_mode_priority = 21 ;
154
+
155
+ // Optional. The optimization strategy of the job. The default is
156
+ // `AUTODETECT`.
157
+ OptimizationStrategy optimization = 22
158
+ [(google.api.field_behavior ) = OPTIONAL ];
136
159
}
137
160
138
161
// Transcoding job template resource.
@@ -189,6 +212,12 @@ message JobConfig {
189
212
190
213
// List of overlays on the output video, in descending Z-order.
191
214
repeated Overlay overlays = 10 ;
215
+
216
+ // List of encryption configurations for the content.
217
+ // Each configuration has an ID. Specify this ID in the
218
+ // [MuxStream.encryption_id][google.cloud.video.transcoder.v1.MuxStream.encryption_id]
219
+ // field to indicate the configuration to use for that `MuxStream` output.
220
+ repeated Encryption encryptions = 11 ;
192
221
}
193
222
194
223
// Input asset.
@@ -296,27 +325,50 @@ message MuxStream {
296
325
297
326
// Segment settings for `ts`, `fmp4` and `vtt`.
298
327
SegmentSettings segment_settings = 5 ;
328
+
329
+ // Identifier of the encryption configuration to use. If omitted, output will
330
+ // be unencrypted.
331
+ string encryption_id = 7 ;
299
332
}
300
333
301
334
// Manifest configuration.
302
335
message Manifest {
303
- // The manifest type can be either `HLS` or `DASH` .
336
+ // The manifest type, which corresponds to the adaptive streaming format used .
304
337
enum ManifestType {
305
338
// The manifest type is not specified.
306
339
MANIFEST_TYPE_UNSPECIFIED = 0 ;
307
340
308
- // Create ` HLS` manifest. The corresponding file extension is `.m3u8`.
341
+ // Create an HLS manifest. The corresponding file extension is `.m3u8`.
309
342
HLS = 1 ;
310
343
311
- // Create ` DASH` manifest. The corresponding file extension is `.mpd`.
344
+ // Create an MPEG- DASH manifest. The corresponding file extension is `.mpd`.
312
345
DASH = 2 ;
313
346
}
314
347
348
+ // `DASH` manifest configuration.
349
+ message DashConfig {
350
+ // The segment reference scheme for a `DASH` manifest.
351
+ enum SegmentReferenceScheme {
352
+ // The segment reference scheme is not specified.
353
+ SEGMENT_REFERENCE_SCHEME_UNSPECIFIED = 0 ;
354
+
355
+ // Lists the URLs of media files for each segment.
356
+ SEGMENT_LIST = 1 ;
357
+
358
+ // Lists each segment from a template with $Number$ variable.
359
+ SEGMENT_TEMPLATE_NUMBER = 2 ;
360
+ }
361
+
362
+ // The segment reference scheme for a `DASH` manifest. The default is
363
+ // `SEGMENT_LIST`.
364
+ SegmentReferenceScheme segment_reference_scheme = 1 ;
365
+ }
366
+
315
367
// The name of the generated file. The default is `manifest` with the
316
368
// extension suffix corresponding to the `Manifest.type`.
317
369
string file_name = 1 ;
318
370
319
- // Required. Type of the manifest, can be `HLS` or `DASH` .
371
+ // Required. Type of the manifest.
320
372
ManifestType type = 2 [(google.api.field_behavior ) = REQUIRED ];
321
373
322
374
// Required. List of user given `MuxStream.key`s that should appear in this
@@ -326,6 +378,12 @@ message Manifest {
326
378
// and `.m3u8` extension is generated for each element of the
327
379
// `Manifest.mux_streams`.
328
380
repeated string mux_streams = 3 [(google.api.field_behavior ) = REQUIRED ];
381
+
382
+ // Specifies the manifest configuration.
383
+ oneof manifest_config {
384
+ // `DASH` manifest configuration.
385
+ DashConfig dash = 4 ;
386
+ }
329
387
}
330
388
331
389
// A Pub/Sub destination.
@@ -1246,3 +1304,86 @@ message SegmentSettings {
1246
1304
// Required. Create an individual segment file. The default is `false`.
1247
1305
bool individual_segments = 3 [(google.api.field_behavior ) = REQUIRED ];
1248
1306
}
1307
+
1308
+ // Encryption settings.
1309
+ message Encryption {
1310
+ // Configuration for AES-128 encryption.
1311
+ message Aes128Encryption {}
1312
+
1313
+ // Configuration for SAMPLE-AES encryption.
1314
+ message SampleAesEncryption {}
1315
+
1316
+ // Configuration for MPEG Common Encryption (MPEG-CENC).
1317
+ message MpegCommonEncryption {
1318
+ // Required. Specify the encryption scheme.
1319
+ //
1320
+ // Supported encryption schemes:
1321
+ //
1322
+ // - `cenc`
1323
+ // - `cbcs`
1324
+ string scheme = 2 [(google.api.field_behavior ) = REQUIRED ];
1325
+ }
1326
+
1327
+ // Configuration for secrets stored in Google Secret Manager.
1328
+ message SecretManagerSource {
1329
+ // Required. The name of the Secret Version containing the encryption key in
1330
+ // the following format:
1331
+ // `projects/{project}/secrets/{secret_id}/versions/{version_number}`
1332
+ //
1333
+ // Note that only numbered versions are supported. Aliases like "latest" are
1334
+ // not supported.
1335
+ string secret_version = 1 [(google.api.field_behavior ) = REQUIRED ];
1336
+ }
1337
+
1338
+ // Widevine configuration.
1339
+ message Widevine {}
1340
+
1341
+ // Fairplay configuration.
1342
+ message Fairplay {}
1343
+
1344
+ // Playready configuration.
1345
+ message Playready {}
1346
+
1347
+ // Clearkey configuration.
1348
+ message Clearkey {}
1349
+
1350
+ // Defines configuration for DRM systems in use.
1351
+ message DrmSystems {
1352
+ // Widevine configuration.
1353
+ Widevine widevine = 1 ;
1354
+
1355
+ // Fairplay configuration.
1356
+ Fairplay fairplay = 2 ;
1357
+
1358
+ // Playready configuration.
1359
+ Playready playready = 3 ;
1360
+
1361
+ // Clearkey configuration.
1362
+ Clearkey clearkey = 4 ;
1363
+ }
1364
+
1365
+ // Required. Identifier for this set of encryption options.
1366
+ string id = 6 [(google.api.field_behavior ) = REQUIRED ];
1367
+
1368
+ // Encryption mode can be either `aes` or `cenc`.
1369
+ oneof encryption_mode {
1370
+ // Configuration for AES-128 encryption.
1371
+ Aes128Encryption aes_128 = 3 ;
1372
+
1373
+ // Configuration for SAMPLE-AES encryption.
1374
+ SampleAesEncryption sample_aes = 4 ;
1375
+
1376
+ // Configuration for MPEG Common Encryption (MPEG-CENC).
1377
+ MpegCommonEncryption mpeg_cenc = 5 ;
1378
+ }
1379
+
1380
+ // Defines where content keys are stored.
1381
+ oneof secret_source {
1382
+ // Keys are stored in Google Secret Manager.
1383
+ SecretManagerSource secret_manager_key_source = 7 ;
1384
+ }
1385
+
1386
+ // Required. DRM system(s) to use; at least one must be specified. If a
1387
+ // DRM system is omitted, it is considered disabled.
1388
+ DrmSystems drm_systems = 8 [(google.api.field_behavior ) = REQUIRED ];
1389
+ }
0 commit comments