Skip to content

Commit f1f8ba4

Browse files
Google APIscopybara-github
authored andcommitted
feat: added support for segment template manifest generation with DASH
feat: added support for batch mode priority feat: added support for disabling job processing optimizations feat: added support for content encryption (DRM) PiperOrigin-RevId: 546916731
1 parent e6b1691 commit f1f8ba4

File tree

1 file changed

+145
-4
lines changed

1 file changed

+145
-4
lines changed

google/cloud/video/transcoder/v1/resources.proto

Lines changed: 145 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,18 @@ message Job {
6868
PROCESSING_MODE_BATCH = 2;
6969
}
7070

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+
7183
// The resource name of the job.
7284
// Format: `projects/{project_number}/locations/{location}/jobs/{job}`
7385
string name = 1;
@@ -133,6 +145,17 @@ message Job {
133145
// The processing mode of the job.
134146
// The default is `PROCESSING_MODE_INTERACTIVE`.
135147
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];
136159
}
137160

138161
// Transcoding job template resource.
@@ -189,6 +212,12 @@ message JobConfig {
189212

190213
// List of overlays on the output video, in descending Z-order.
191214
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;
192221
}
193222

194223
// Input asset.
@@ -296,27 +325,50 @@ message MuxStream {
296325

297326
// Segment settings for `ts`, `fmp4` and `vtt`.
298327
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;
299332
}
300333

301334
// Manifest configuration.
302335
message Manifest {
303-
// The manifest type can be either `HLS` or `DASH`.
336+
// The manifest type, which corresponds to the adaptive streaming format used.
304337
enum ManifestType {
305338
// The manifest type is not specified.
306339
MANIFEST_TYPE_UNSPECIFIED = 0;
307340

308-
// Create `HLS` manifest. The corresponding file extension is `.m3u8`.
341+
// Create an HLS manifest. The corresponding file extension is `.m3u8`.
309342
HLS = 1;
310343

311-
// Create `DASH` manifest. The corresponding file extension is `.mpd`.
344+
// Create an MPEG-DASH manifest. The corresponding file extension is `.mpd`.
312345
DASH = 2;
313346
}
314347

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+
315367
// The name of the generated file. The default is `manifest` with the
316368
// extension suffix corresponding to the `Manifest.type`.
317369
string file_name = 1;
318370

319-
// Required. Type of the manifest, can be `HLS` or `DASH`.
371+
// Required. Type of the manifest.
320372
ManifestType type = 2 [(google.api.field_behavior) = REQUIRED];
321373

322374
// Required. List of user given `MuxStream.key`s that should appear in this
@@ -326,6 +378,12 @@ message Manifest {
326378
// and `.m3u8` extension is generated for each element of the
327379
// `Manifest.mux_streams`.
328380
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+
}
329387
}
330388

331389
// A Pub/Sub destination.
@@ -1246,3 +1304,86 @@ message SegmentSettings {
12461304
// Required. Create an individual segment file. The default is `false`.
12471305
bool individual_segments = 3 [(google.api.field_behavior) = REQUIRED];
12481306
}
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

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy