Skip to content

Commit a186468

Browse files
Google APIscopybara-github
authored andcommitted
feat: add PreprocessingConfig.deinterlace
docs: minor documentation changes PiperOrigin-RevId: 489233360
1 parent 0184330 commit a186468

2 files changed

Lines changed: 110 additions & 1 deletion

File tree

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

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,12 +335,22 @@ message SpriteSheet {
335335
// source aspect ratio, set the [SpriteSheet.sprite_width_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_width_pixels] field or
336336
// the [SpriteSheet.sprite_height_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_height_pixels] field, but not both (the API will
337337
// automatically calculate the missing field).
338+
//
339+
// For portrait videos that contain horizontal ASR and rotation metadata,
340+
// provide the width, in pixels, per the horizontal ASR. The API calculates
341+
// the height per the horizontal ASR. The API detects any rotation metadata
342+
// and swaps the requested height and width for the output.
338343
int32 sprite_width_pixels = 3 [(google.api.field_behavior) = REQUIRED];
339344

340345
// Required. The height of sprite in pixels. Must be an even integer. To preserve the
341346
// source aspect ratio, set the [SpriteSheet.sprite_height_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_height_pixels] field or
342347
// the [SpriteSheet.sprite_width_pixels][google.cloud.video.transcoder.v1.SpriteSheet.sprite_width_pixels] field, but not both (the API will
343348
// automatically calculate the missing field).
349+
//
350+
// For portrait videos that contain horizontal ASR and rotation metadata,
351+
// provide the height, in pixels, per the horizontal ASR. The API calculates
352+
// the width per the horizontal ASR. The API detects any rotation metadata
353+
// and swaps the requested height and width for the output.
344354
int32 sprite_height_pixels = 4 [(google.api.field_behavior) = REQUIRED];
345355

346356
// The maximum number of sprites per row in a sprite sheet. The default is 0,
@@ -594,6 +604,70 @@ message PreprocessingConfig {
594604
int32 right_pixels = 4;
595605
}
596606

607+
// Deinterlace configuration for input video.
608+
message Deinterlace {
609+
// Yet Another Deinterlacing Filter Configuration.
610+
message YadifConfig {
611+
// Specifies the deinterlacing mode to adopt.
612+
// The default is `send_frame`.
613+
// Supported values:
614+
//
615+
// - `send_frame`: Output one frame for each frame
616+
// - `send_field`: Output one frame for each field
617+
string mode = 1;
618+
619+
// Disable spacial interlacing.
620+
// The default is `false`.
621+
bool disable_spatial_interlacing = 2;
622+
623+
// The picture field parity assumed for the input interlaced video.
624+
// The default is `auto`.
625+
// Supported values:
626+
//
627+
// - `tff`: Assume the top field is first
628+
// - `bff`: Assume the bottom field is first
629+
// - `auto`: Enable automatic detection of field parity
630+
string parity = 3;
631+
632+
// Deinterlace all frames rather than just the frames identified as
633+
// interlaced. The default is `false`.
634+
bool deinterlace_all_frames = 4;
635+
}
636+
637+
// Bob Weaver Deinterlacing Filter Configuration.
638+
message BwdifConfig {
639+
// Specifies the deinterlacing mode to adopt.
640+
// The default is `send_frame`.
641+
// Supported values:
642+
//
643+
// - `send_frame`: Output one frame for each frame
644+
// - `send_field`: Output one frame for each field
645+
string mode = 1;
646+
647+
// The picture field parity assumed for the input interlaced video.
648+
// The default is `auto`.
649+
// Supported values:
650+
//
651+
// - `tff`: Assume the top field is first
652+
// - `bff`: Assume the bottom field is first
653+
// - `auto`: Enable automatic detection of field parity
654+
string parity = 2;
655+
656+
// Deinterlace all frames rather than just the frames identified as
657+
// interlaced. The default is `false`.
658+
bool deinterlace_all_frames = 3;
659+
}
660+
661+
// Specify the video deinterlacing filter. The default is `yadif`.
662+
oneof deinterlacing_filter {
663+
// Specifies the Yet Another Deinterlacing Filter Configuration.
664+
YadifConfig yadif = 1;
665+
666+
// Specifies the Bob Weaver Deinterlacing Filter Configuration.
667+
BwdifConfig bwdif = 2;
668+
}
669+
}
670+
597671
// Color preprocessing configuration.
598672
Color color = 1;
599673

@@ -611,6 +685,9 @@ message PreprocessingConfig {
611685

612686
// Specify the video pad filter configuration.
613687
Pad pad = 6;
688+
689+
// Specify the video deinterlace configuration.
690+
Deinterlace deinterlace = 7;
614691
}
615692

616693
// Video stream resource.
@@ -620,11 +697,21 @@ message VideoStream {
620697
// The width of the video in pixels. Must be an even integer.
621698
// When not specified, the width is adjusted to match the specified height
622699
// and input aspect ratio. If both are omitted, the input width is used.
700+
//
701+
// For portrait videos that contain horizontal ASR and rotation metadata,
702+
// provide the width, in pixels, per the horizontal ASR. The API calculates
703+
// the height per the horizontal ASR. The API detects any rotation metadata
704+
// and swaps the requested height and width for the output.
623705
int32 width_pixels = 1;
624706

625707
// The height of the video in pixels. Must be an even integer.
626708
// When not specified, the height is adjusted to match the specified width
627709
// and input aspect ratio. If both are omitted, the input height is used.
710+
//
711+
// For portrait videos that contain horizontal ASR and rotation metadata,
712+
// provide the height, in pixels, per the horizontal ASR. The API calculates
713+
// the width per the horizontal ASR. The API detects any rotation metadata
714+
// and swaps the requested height and width for the output.
628715
int32 height_pixels = 2;
629716

630717
// Required. The target video frame rate in frames per second (FPS). Must be less than
@@ -755,11 +842,21 @@ message VideoStream {
755842
// The width of the video in pixels. Must be an even integer.
756843
// When not specified, the width is adjusted to match the specified height
757844
// and input aspect ratio. If both are omitted, the input width is used.
845+
//
846+
// For portrait videos that contain horizontal ASR and rotation metadata,
847+
// provide the width, in pixels, per the horizontal ASR. The API calculates
848+
// the height per the horizontal ASR. The API detects any rotation metadata
849+
// and swaps the requested height and width for the output.
758850
int32 width_pixels = 1;
759851

760852
// The height of the video in pixels. Must be an even integer.
761853
// When not specified, the height is adjusted to match the specified width
762854
// and input aspect ratio. If both are omitted, the input height is used.
855+
//
856+
// For portrait videos that contain horizontal ASR and rotation metadata,
857+
// provide the height, in pixels, per the horizontal ASR. The API calculates
858+
// the width per the horizontal ASR. The API detects any rotation metadata
859+
// and swaps the requested height and width for the output.
763860
int32 height_pixels = 2;
764861

765862
// Required. The target video frame rate in frames per second (FPS). Must be less than
@@ -897,11 +994,21 @@ message VideoStream {
897994
// The width of the video in pixels. Must be an even integer.
898995
// When not specified, the width is adjusted to match the specified height
899996
// and input aspect ratio. If both are omitted, the input width is used.
997+
//
998+
// For portrait videos that contain horizontal ASR and rotation metadata,
999+
// provide the width, in pixels, per the horizontal ASR. The API calculates
1000+
// the height per the horizontal ASR. The API detects any rotation metadata
1001+
// and swaps the requested height and width for the output.
9001002
int32 width_pixels = 1;
9011003

9021004
// The height of the video in pixels. Must be an even integer.
9031005
// When not specified, the height is adjusted to match the specified width
9041006
// and input aspect ratio. If both are omitted, the input height is used.
1007+
//
1008+
// For portrait videos that contain horizontal ASR and rotation metadata,
1009+
// provide the height, in pixels, per the horizontal ASR. The API calculates
1010+
// the width per the horizontal ASR. The API detects any rotation metadata
1011+
// and swaps the requested height and width for the output.
9051012
int32 height_pixels = 2;
9061013

9071014
// Required. The target video frame rate in frames per second (FPS). Must be less than

google/cloud/video/transcoder/v1/transcoder_v1.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ apis:
99
documentation:
1010
summary: |-
1111
This API converts video files into formats suitable for consumer
12-
distribution.
12+
distribution. For more information, see the <a
13+
href="https://cloud.google.com/transcoder/docs/concepts/overview">Transcoder
14+
API overview</a>.
1315
1416
backend:
1517
rules:

0 commit comments

Comments
 (0)