1// Code generated by protoc-gen-go. DO NOT EDIT. 2// source: google/cloud/videointelligence/v1beta2/video_intelligence.proto 3 4package videointelligence // import "google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta2" 5 6import proto "github.com/golang/protobuf/proto" 7import fmt "fmt" 8import math "math" 9import duration "github.com/golang/protobuf/ptypes/duration" 10import timestamp "github.com/golang/protobuf/ptypes/timestamp" 11import _ "google.golang.org/genproto/googleapis/api/annotations" 12import longrunning "google.golang.org/genproto/googleapis/longrunning" 13import status "google.golang.org/genproto/googleapis/rpc/status" 14 15import ( 16 context "golang.org/x/net/context" 17 grpc "google.golang.org/grpc" 18) 19 20// Reference imports to suppress errors if they are not otherwise used. 21var _ = proto.Marshal 22var _ = fmt.Errorf 23var _ = math.Inf 24 25// This is a compile-time assertion to ensure that this generated file 26// is compatible with the proto package it is being compiled against. 27// A compilation error at this line likely means your copy of the 28// proto package needs to be updated. 29const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package 30 31// Video annotation feature. 32type Feature int32 33 34const ( 35 // Unspecified. 36 Feature_FEATURE_UNSPECIFIED Feature = 0 37 // Label detection. Detect objects, such as dog or flower. 38 Feature_LABEL_DETECTION Feature = 1 39 // Shot change detection. 40 Feature_SHOT_CHANGE_DETECTION Feature = 2 41 // Explicit content detection. 42 Feature_EXPLICIT_CONTENT_DETECTION Feature = 3 43 // Human face detection and tracking. 44 Feature_FACE_DETECTION Feature = 4 45) 46 47var Feature_name = map[int32]string{ 48 0: "FEATURE_UNSPECIFIED", 49 1: "LABEL_DETECTION", 50 2: "SHOT_CHANGE_DETECTION", 51 3: "EXPLICIT_CONTENT_DETECTION", 52 4: "FACE_DETECTION", 53} 54var Feature_value = map[string]int32{ 55 "FEATURE_UNSPECIFIED": 0, 56 "LABEL_DETECTION": 1, 57 "SHOT_CHANGE_DETECTION": 2, 58 "EXPLICIT_CONTENT_DETECTION": 3, 59 "FACE_DETECTION": 4, 60} 61 62func (x Feature) String() string { 63 return proto.EnumName(Feature_name, int32(x)) 64} 65func (Feature) EnumDescriptor() ([]byte, []int) { 66 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{0} 67} 68 69// Label detection mode. 70type LabelDetectionMode int32 71 72const ( 73 // Unspecified. 74 LabelDetectionMode_LABEL_DETECTION_MODE_UNSPECIFIED LabelDetectionMode = 0 75 // Detect shot-level labels. 76 LabelDetectionMode_SHOT_MODE LabelDetectionMode = 1 77 // Detect frame-level labels. 78 LabelDetectionMode_FRAME_MODE LabelDetectionMode = 2 79 // Detect both shot-level and frame-level labels. 80 LabelDetectionMode_SHOT_AND_FRAME_MODE LabelDetectionMode = 3 81) 82 83var LabelDetectionMode_name = map[int32]string{ 84 0: "LABEL_DETECTION_MODE_UNSPECIFIED", 85 1: "SHOT_MODE", 86 2: "FRAME_MODE", 87 3: "SHOT_AND_FRAME_MODE", 88} 89var LabelDetectionMode_value = map[string]int32{ 90 "LABEL_DETECTION_MODE_UNSPECIFIED": 0, 91 "SHOT_MODE": 1, 92 "FRAME_MODE": 2, 93 "SHOT_AND_FRAME_MODE": 3, 94} 95 96func (x LabelDetectionMode) String() string { 97 return proto.EnumName(LabelDetectionMode_name, int32(x)) 98} 99func (LabelDetectionMode) EnumDescriptor() ([]byte, []int) { 100 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{1} 101} 102 103// Bucketized representation of likelihood. 104type Likelihood int32 105 106const ( 107 // Unspecified likelihood. 108 Likelihood_LIKELIHOOD_UNSPECIFIED Likelihood = 0 109 // Very unlikely. 110 Likelihood_VERY_UNLIKELY Likelihood = 1 111 // Unlikely. 112 Likelihood_UNLIKELY Likelihood = 2 113 // Possible. 114 Likelihood_POSSIBLE Likelihood = 3 115 // Likely. 116 Likelihood_LIKELY Likelihood = 4 117 // Very likely. 118 Likelihood_VERY_LIKELY Likelihood = 5 119) 120 121var Likelihood_name = map[int32]string{ 122 0: "LIKELIHOOD_UNSPECIFIED", 123 1: "VERY_UNLIKELY", 124 2: "UNLIKELY", 125 3: "POSSIBLE", 126 4: "LIKELY", 127 5: "VERY_LIKELY", 128} 129var Likelihood_value = map[string]int32{ 130 "LIKELIHOOD_UNSPECIFIED": 0, 131 "VERY_UNLIKELY": 1, 132 "UNLIKELY": 2, 133 "POSSIBLE": 3, 134 "LIKELY": 4, 135 "VERY_LIKELY": 5, 136} 137 138func (x Likelihood) String() string { 139 return proto.EnumName(Likelihood_name, int32(x)) 140} 141func (Likelihood) EnumDescriptor() ([]byte, []int) { 142 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{2} 143} 144 145// Video annotation request. 146type AnnotateVideoRequest struct { 147 // Input video location. Currently, only 148 // [Google Cloud Storage](https://cloud.google.com/storage/) URIs are 149 // supported, which must be specified in the following format: 150 // `gs://bucket-id/object-id` (other URI formats return 151 // [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]). For more information, see 152 // [Request URIs](/storage/docs/reference-uris). 153 // A video URI may include wildcards in `object-id`, and thus identify 154 // multiple videos. Supported wildcards: '*' to match 0 or more characters; 155 // '?' to match 1 character. If unset, the input video should be embedded 156 // in the request as `input_content`. If set, `input_content` should be unset. 157 InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"` 158 // The video data bytes. 159 // If unset, the input video(s) should be specified via `input_uri`. 160 // If set, `input_uri` should be unset. 161 InputContent []byte `protobuf:"bytes,6,opt,name=input_content,json=inputContent,proto3" json:"input_content,omitempty"` 162 // Requested video annotation features. 163 Features []Feature `protobuf:"varint,2,rep,packed,name=features,proto3,enum=google.cloud.videointelligence.v1beta2.Feature" json:"features,omitempty"` 164 // Additional video context and/or feature-specific parameters. 165 VideoContext *VideoContext `protobuf:"bytes,3,opt,name=video_context,json=videoContext,proto3" json:"video_context,omitempty"` 166 // Optional location where the output (in JSON format) should be stored. 167 // Currently, only [Google Cloud Storage](https://cloud.google.com/storage/) 168 // URIs are supported, which must be specified in the following format: 169 // `gs://bucket-id/object-id` (other URI formats return 170 // [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]). For more information, see 171 // [Request URIs](/storage/docs/reference-uris). 172 OutputUri string `protobuf:"bytes,4,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"` 173 // Optional cloud region where annotation should take place. Supported cloud 174 // regions: `us-east1`, `us-west1`, `europe-west1`, `asia-east1`. If no region 175 // is specified, a region will be determined based on video file location. 176 LocationId string `protobuf:"bytes,5,opt,name=location_id,json=locationId,proto3" json:"location_id,omitempty"` 177 XXX_NoUnkeyedLiteral struct{} `json:"-"` 178 XXX_unrecognized []byte `json:"-"` 179 XXX_sizecache int32 `json:"-"` 180} 181 182func (m *AnnotateVideoRequest) Reset() { *m = AnnotateVideoRequest{} } 183func (m *AnnotateVideoRequest) String() string { return proto.CompactTextString(m) } 184func (*AnnotateVideoRequest) ProtoMessage() {} 185func (*AnnotateVideoRequest) Descriptor() ([]byte, []int) { 186 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{0} 187} 188func (m *AnnotateVideoRequest) XXX_Unmarshal(b []byte) error { 189 return xxx_messageInfo_AnnotateVideoRequest.Unmarshal(m, b) 190} 191func (m *AnnotateVideoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 192 return xxx_messageInfo_AnnotateVideoRequest.Marshal(b, m, deterministic) 193} 194func (dst *AnnotateVideoRequest) XXX_Merge(src proto.Message) { 195 xxx_messageInfo_AnnotateVideoRequest.Merge(dst, src) 196} 197func (m *AnnotateVideoRequest) XXX_Size() int { 198 return xxx_messageInfo_AnnotateVideoRequest.Size(m) 199} 200func (m *AnnotateVideoRequest) XXX_DiscardUnknown() { 201 xxx_messageInfo_AnnotateVideoRequest.DiscardUnknown(m) 202} 203 204var xxx_messageInfo_AnnotateVideoRequest proto.InternalMessageInfo 205 206func (m *AnnotateVideoRequest) GetInputUri() string { 207 if m != nil { 208 return m.InputUri 209 } 210 return "" 211} 212 213func (m *AnnotateVideoRequest) GetInputContent() []byte { 214 if m != nil { 215 return m.InputContent 216 } 217 return nil 218} 219 220func (m *AnnotateVideoRequest) GetFeatures() []Feature { 221 if m != nil { 222 return m.Features 223 } 224 return nil 225} 226 227func (m *AnnotateVideoRequest) GetVideoContext() *VideoContext { 228 if m != nil { 229 return m.VideoContext 230 } 231 return nil 232} 233 234func (m *AnnotateVideoRequest) GetOutputUri() string { 235 if m != nil { 236 return m.OutputUri 237 } 238 return "" 239} 240 241func (m *AnnotateVideoRequest) GetLocationId() string { 242 if m != nil { 243 return m.LocationId 244 } 245 return "" 246} 247 248// Video context and/or feature-specific parameters. 249type VideoContext struct { 250 // Video segments to annotate. The segments may overlap and are not required 251 // to be contiguous or span the whole video. If unspecified, each video 252 // is treated as a single segment. 253 Segments []*VideoSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` 254 // Config for LABEL_DETECTION. 255 LabelDetectionConfig *LabelDetectionConfig `protobuf:"bytes,2,opt,name=label_detection_config,json=labelDetectionConfig,proto3" json:"label_detection_config,omitempty"` 256 // Config for SHOT_CHANGE_DETECTION. 257 ShotChangeDetectionConfig *ShotChangeDetectionConfig `protobuf:"bytes,3,opt,name=shot_change_detection_config,json=shotChangeDetectionConfig,proto3" json:"shot_change_detection_config,omitempty"` 258 // Config for EXPLICIT_CONTENT_DETECTION. 259 ExplicitContentDetectionConfig *ExplicitContentDetectionConfig `protobuf:"bytes,4,opt,name=explicit_content_detection_config,json=explicitContentDetectionConfig,proto3" json:"explicit_content_detection_config,omitempty"` 260 // Config for FACE_DETECTION. 261 FaceDetectionConfig *FaceDetectionConfig `protobuf:"bytes,5,opt,name=face_detection_config,json=faceDetectionConfig,proto3" json:"face_detection_config,omitempty"` 262 XXX_NoUnkeyedLiteral struct{} `json:"-"` 263 XXX_unrecognized []byte `json:"-"` 264 XXX_sizecache int32 `json:"-"` 265} 266 267func (m *VideoContext) Reset() { *m = VideoContext{} } 268func (m *VideoContext) String() string { return proto.CompactTextString(m) } 269func (*VideoContext) ProtoMessage() {} 270func (*VideoContext) Descriptor() ([]byte, []int) { 271 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{1} 272} 273func (m *VideoContext) XXX_Unmarshal(b []byte) error { 274 return xxx_messageInfo_VideoContext.Unmarshal(m, b) 275} 276func (m *VideoContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 277 return xxx_messageInfo_VideoContext.Marshal(b, m, deterministic) 278} 279func (dst *VideoContext) XXX_Merge(src proto.Message) { 280 xxx_messageInfo_VideoContext.Merge(dst, src) 281} 282func (m *VideoContext) XXX_Size() int { 283 return xxx_messageInfo_VideoContext.Size(m) 284} 285func (m *VideoContext) XXX_DiscardUnknown() { 286 xxx_messageInfo_VideoContext.DiscardUnknown(m) 287} 288 289var xxx_messageInfo_VideoContext proto.InternalMessageInfo 290 291func (m *VideoContext) GetSegments() []*VideoSegment { 292 if m != nil { 293 return m.Segments 294 } 295 return nil 296} 297 298func (m *VideoContext) GetLabelDetectionConfig() *LabelDetectionConfig { 299 if m != nil { 300 return m.LabelDetectionConfig 301 } 302 return nil 303} 304 305func (m *VideoContext) GetShotChangeDetectionConfig() *ShotChangeDetectionConfig { 306 if m != nil { 307 return m.ShotChangeDetectionConfig 308 } 309 return nil 310} 311 312func (m *VideoContext) GetExplicitContentDetectionConfig() *ExplicitContentDetectionConfig { 313 if m != nil { 314 return m.ExplicitContentDetectionConfig 315 } 316 return nil 317} 318 319func (m *VideoContext) GetFaceDetectionConfig() *FaceDetectionConfig { 320 if m != nil { 321 return m.FaceDetectionConfig 322 } 323 return nil 324} 325 326// Config for LABEL_DETECTION. 327type LabelDetectionConfig struct { 328 // What labels should be detected with LABEL_DETECTION, in addition to 329 // video-level labels or segment-level labels. 330 // If unspecified, defaults to `SHOT_MODE`. 331 LabelDetectionMode LabelDetectionMode `protobuf:"varint,1,opt,name=label_detection_mode,json=labelDetectionMode,proto3,enum=google.cloud.videointelligence.v1beta2.LabelDetectionMode" json:"label_detection_mode,omitempty"` 332 // Whether the video has been shot from a stationary (i.e. non-moving) camera. 333 // When set to true, might improve detection accuracy for moving objects. 334 // Should be used with `SHOT_AND_FRAME_MODE` enabled. 335 StationaryCamera bool `protobuf:"varint,2,opt,name=stationary_camera,json=stationaryCamera,proto3" json:"stationary_camera,omitempty"` 336 // Model to use for label detection. 337 // Supported values: "builtin/stable" (the default if unset) and 338 // "builtin/latest". 339 Model string `protobuf:"bytes,3,opt,name=model,proto3" json:"model,omitempty"` 340 XXX_NoUnkeyedLiteral struct{} `json:"-"` 341 XXX_unrecognized []byte `json:"-"` 342 XXX_sizecache int32 `json:"-"` 343} 344 345func (m *LabelDetectionConfig) Reset() { *m = LabelDetectionConfig{} } 346func (m *LabelDetectionConfig) String() string { return proto.CompactTextString(m) } 347func (*LabelDetectionConfig) ProtoMessage() {} 348func (*LabelDetectionConfig) Descriptor() ([]byte, []int) { 349 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{2} 350} 351func (m *LabelDetectionConfig) XXX_Unmarshal(b []byte) error { 352 return xxx_messageInfo_LabelDetectionConfig.Unmarshal(m, b) 353} 354func (m *LabelDetectionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 355 return xxx_messageInfo_LabelDetectionConfig.Marshal(b, m, deterministic) 356} 357func (dst *LabelDetectionConfig) XXX_Merge(src proto.Message) { 358 xxx_messageInfo_LabelDetectionConfig.Merge(dst, src) 359} 360func (m *LabelDetectionConfig) XXX_Size() int { 361 return xxx_messageInfo_LabelDetectionConfig.Size(m) 362} 363func (m *LabelDetectionConfig) XXX_DiscardUnknown() { 364 xxx_messageInfo_LabelDetectionConfig.DiscardUnknown(m) 365} 366 367var xxx_messageInfo_LabelDetectionConfig proto.InternalMessageInfo 368 369func (m *LabelDetectionConfig) GetLabelDetectionMode() LabelDetectionMode { 370 if m != nil { 371 return m.LabelDetectionMode 372 } 373 return LabelDetectionMode_LABEL_DETECTION_MODE_UNSPECIFIED 374} 375 376func (m *LabelDetectionConfig) GetStationaryCamera() bool { 377 if m != nil { 378 return m.StationaryCamera 379 } 380 return false 381} 382 383func (m *LabelDetectionConfig) GetModel() string { 384 if m != nil { 385 return m.Model 386 } 387 return "" 388} 389 390// Config for SHOT_CHANGE_DETECTION. 391type ShotChangeDetectionConfig struct { 392 // Model to use for shot change detection. 393 // Supported values: "builtin/stable" (the default if unset) and 394 // "builtin/latest". 395 Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` 396 XXX_NoUnkeyedLiteral struct{} `json:"-"` 397 XXX_unrecognized []byte `json:"-"` 398 XXX_sizecache int32 `json:"-"` 399} 400 401func (m *ShotChangeDetectionConfig) Reset() { *m = ShotChangeDetectionConfig{} } 402func (m *ShotChangeDetectionConfig) String() string { return proto.CompactTextString(m) } 403func (*ShotChangeDetectionConfig) ProtoMessage() {} 404func (*ShotChangeDetectionConfig) Descriptor() ([]byte, []int) { 405 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{3} 406} 407func (m *ShotChangeDetectionConfig) XXX_Unmarshal(b []byte) error { 408 return xxx_messageInfo_ShotChangeDetectionConfig.Unmarshal(m, b) 409} 410func (m *ShotChangeDetectionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 411 return xxx_messageInfo_ShotChangeDetectionConfig.Marshal(b, m, deterministic) 412} 413func (dst *ShotChangeDetectionConfig) XXX_Merge(src proto.Message) { 414 xxx_messageInfo_ShotChangeDetectionConfig.Merge(dst, src) 415} 416func (m *ShotChangeDetectionConfig) XXX_Size() int { 417 return xxx_messageInfo_ShotChangeDetectionConfig.Size(m) 418} 419func (m *ShotChangeDetectionConfig) XXX_DiscardUnknown() { 420 xxx_messageInfo_ShotChangeDetectionConfig.DiscardUnknown(m) 421} 422 423var xxx_messageInfo_ShotChangeDetectionConfig proto.InternalMessageInfo 424 425func (m *ShotChangeDetectionConfig) GetModel() string { 426 if m != nil { 427 return m.Model 428 } 429 return "" 430} 431 432// Config for EXPLICIT_CONTENT_DETECTION. 433type ExplicitContentDetectionConfig struct { 434 // Model to use for explicit content detection. 435 // Supported values: "builtin/stable" (the default if unset) and 436 // "builtin/latest". 437 Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` 438 XXX_NoUnkeyedLiteral struct{} `json:"-"` 439 XXX_unrecognized []byte `json:"-"` 440 XXX_sizecache int32 `json:"-"` 441} 442 443func (m *ExplicitContentDetectionConfig) Reset() { *m = ExplicitContentDetectionConfig{} } 444func (m *ExplicitContentDetectionConfig) String() string { return proto.CompactTextString(m) } 445func (*ExplicitContentDetectionConfig) ProtoMessage() {} 446func (*ExplicitContentDetectionConfig) Descriptor() ([]byte, []int) { 447 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{4} 448} 449func (m *ExplicitContentDetectionConfig) XXX_Unmarshal(b []byte) error { 450 return xxx_messageInfo_ExplicitContentDetectionConfig.Unmarshal(m, b) 451} 452func (m *ExplicitContentDetectionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 453 return xxx_messageInfo_ExplicitContentDetectionConfig.Marshal(b, m, deterministic) 454} 455func (dst *ExplicitContentDetectionConfig) XXX_Merge(src proto.Message) { 456 xxx_messageInfo_ExplicitContentDetectionConfig.Merge(dst, src) 457} 458func (m *ExplicitContentDetectionConfig) XXX_Size() int { 459 return xxx_messageInfo_ExplicitContentDetectionConfig.Size(m) 460} 461func (m *ExplicitContentDetectionConfig) XXX_DiscardUnknown() { 462 xxx_messageInfo_ExplicitContentDetectionConfig.DiscardUnknown(m) 463} 464 465var xxx_messageInfo_ExplicitContentDetectionConfig proto.InternalMessageInfo 466 467func (m *ExplicitContentDetectionConfig) GetModel() string { 468 if m != nil { 469 return m.Model 470 } 471 return "" 472} 473 474// Config for FACE_DETECTION. 475type FaceDetectionConfig struct { 476 // Model to use for face detection. 477 // Supported values: "builtin/stable" (the default if unset) and 478 // "builtin/latest". 479 Model string `protobuf:"bytes,1,opt,name=model,proto3" json:"model,omitempty"` 480 // Whether bounding boxes be included in the face annotation output. 481 IncludeBoundingBoxes bool `protobuf:"varint,2,opt,name=include_bounding_boxes,json=includeBoundingBoxes,proto3" json:"include_bounding_boxes,omitempty"` 482 XXX_NoUnkeyedLiteral struct{} `json:"-"` 483 XXX_unrecognized []byte `json:"-"` 484 XXX_sizecache int32 `json:"-"` 485} 486 487func (m *FaceDetectionConfig) Reset() { *m = FaceDetectionConfig{} } 488func (m *FaceDetectionConfig) String() string { return proto.CompactTextString(m) } 489func (*FaceDetectionConfig) ProtoMessage() {} 490func (*FaceDetectionConfig) Descriptor() ([]byte, []int) { 491 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{5} 492} 493func (m *FaceDetectionConfig) XXX_Unmarshal(b []byte) error { 494 return xxx_messageInfo_FaceDetectionConfig.Unmarshal(m, b) 495} 496func (m *FaceDetectionConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 497 return xxx_messageInfo_FaceDetectionConfig.Marshal(b, m, deterministic) 498} 499func (dst *FaceDetectionConfig) XXX_Merge(src proto.Message) { 500 xxx_messageInfo_FaceDetectionConfig.Merge(dst, src) 501} 502func (m *FaceDetectionConfig) XXX_Size() int { 503 return xxx_messageInfo_FaceDetectionConfig.Size(m) 504} 505func (m *FaceDetectionConfig) XXX_DiscardUnknown() { 506 xxx_messageInfo_FaceDetectionConfig.DiscardUnknown(m) 507} 508 509var xxx_messageInfo_FaceDetectionConfig proto.InternalMessageInfo 510 511func (m *FaceDetectionConfig) GetModel() string { 512 if m != nil { 513 return m.Model 514 } 515 return "" 516} 517 518func (m *FaceDetectionConfig) GetIncludeBoundingBoxes() bool { 519 if m != nil { 520 return m.IncludeBoundingBoxes 521 } 522 return false 523} 524 525// Video segment. 526type VideoSegment struct { 527 // Time-offset, relative to the beginning of the video, 528 // corresponding to the start of the segment (inclusive). 529 StartTimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=start_time_offset,json=startTimeOffset,proto3" json:"start_time_offset,omitempty"` 530 // Time-offset, relative to the beginning of the video, 531 // corresponding to the end of the segment (inclusive). 532 EndTimeOffset *duration.Duration `protobuf:"bytes,2,opt,name=end_time_offset,json=endTimeOffset,proto3" json:"end_time_offset,omitempty"` 533 XXX_NoUnkeyedLiteral struct{} `json:"-"` 534 XXX_unrecognized []byte `json:"-"` 535 XXX_sizecache int32 `json:"-"` 536} 537 538func (m *VideoSegment) Reset() { *m = VideoSegment{} } 539func (m *VideoSegment) String() string { return proto.CompactTextString(m) } 540func (*VideoSegment) ProtoMessage() {} 541func (*VideoSegment) Descriptor() ([]byte, []int) { 542 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{6} 543} 544func (m *VideoSegment) XXX_Unmarshal(b []byte) error { 545 return xxx_messageInfo_VideoSegment.Unmarshal(m, b) 546} 547func (m *VideoSegment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 548 return xxx_messageInfo_VideoSegment.Marshal(b, m, deterministic) 549} 550func (dst *VideoSegment) XXX_Merge(src proto.Message) { 551 xxx_messageInfo_VideoSegment.Merge(dst, src) 552} 553func (m *VideoSegment) XXX_Size() int { 554 return xxx_messageInfo_VideoSegment.Size(m) 555} 556func (m *VideoSegment) XXX_DiscardUnknown() { 557 xxx_messageInfo_VideoSegment.DiscardUnknown(m) 558} 559 560var xxx_messageInfo_VideoSegment proto.InternalMessageInfo 561 562func (m *VideoSegment) GetStartTimeOffset() *duration.Duration { 563 if m != nil { 564 return m.StartTimeOffset 565 } 566 return nil 567} 568 569func (m *VideoSegment) GetEndTimeOffset() *duration.Duration { 570 if m != nil { 571 return m.EndTimeOffset 572 } 573 return nil 574} 575 576// Video segment level annotation results for label detection. 577type LabelSegment struct { 578 // Video segment where a label was detected. 579 Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"` 580 // Confidence that the label is accurate. Range: [0, 1]. 581 Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` 582 XXX_NoUnkeyedLiteral struct{} `json:"-"` 583 XXX_unrecognized []byte `json:"-"` 584 XXX_sizecache int32 `json:"-"` 585} 586 587func (m *LabelSegment) Reset() { *m = LabelSegment{} } 588func (m *LabelSegment) String() string { return proto.CompactTextString(m) } 589func (*LabelSegment) ProtoMessage() {} 590func (*LabelSegment) Descriptor() ([]byte, []int) { 591 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{7} 592} 593func (m *LabelSegment) XXX_Unmarshal(b []byte) error { 594 return xxx_messageInfo_LabelSegment.Unmarshal(m, b) 595} 596func (m *LabelSegment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 597 return xxx_messageInfo_LabelSegment.Marshal(b, m, deterministic) 598} 599func (dst *LabelSegment) XXX_Merge(src proto.Message) { 600 xxx_messageInfo_LabelSegment.Merge(dst, src) 601} 602func (m *LabelSegment) XXX_Size() int { 603 return xxx_messageInfo_LabelSegment.Size(m) 604} 605func (m *LabelSegment) XXX_DiscardUnknown() { 606 xxx_messageInfo_LabelSegment.DiscardUnknown(m) 607} 608 609var xxx_messageInfo_LabelSegment proto.InternalMessageInfo 610 611func (m *LabelSegment) GetSegment() *VideoSegment { 612 if m != nil { 613 return m.Segment 614 } 615 return nil 616} 617 618func (m *LabelSegment) GetConfidence() float32 { 619 if m != nil { 620 return m.Confidence 621 } 622 return 0 623} 624 625// Video frame level annotation results for label detection. 626type LabelFrame struct { 627 // Time-offset, relative to the beginning of the video, corresponding to the 628 // video frame for this location. 629 TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"` 630 // Confidence that the label is accurate. Range: [0, 1]. 631 Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` 632 XXX_NoUnkeyedLiteral struct{} `json:"-"` 633 XXX_unrecognized []byte `json:"-"` 634 XXX_sizecache int32 `json:"-"` 635} 636 637func (m *LabelFrame) Reset() { *m = LabelFrame{} } 638func (m *LabelFrame) String() string { return proto.CompactTextString(m) } 639func (*LabelFrame) ProtoMessage() {} 640func (*LabelFrame) Descriptor() ([]byte, []int) { 641 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{8} 642} 643func (m *LabelFrame) XXX_Unmarshal(b []byte) error { 644 return xxx_messageInfo_LabelFrame.Unmarshal(m, b) 645} 646func (m *LabelFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 647 return xxx_messageInfo_LabelFrame.Marshal(b, m, deterministic) 648} 649func (dst *LabelFrame) XXX_Merge(src proto.Message) { 650 xxx_messageInfo_LabelFrame.Merge(dst, src) 651} 652func (m *LabelFrame) XXX_Size() int { 653 return xxx_messageInfo_LabelFrame.Size(m) 654} 655func (m *LabelFrame) XXX_DiscardUnknown() { 656 xxx_messageInfo_LabelFrame.DiscardUnknown(m) 657} 658 659var xxx_messageInfo_LabelFrame proto.InternalMessageInfo 660 661func (m *LabelFrame) GetTimeOffset() *duration.Duration { 662 if m != nil { 663 return m.TimeOffset 664 } 665 return nil 666} 667 668func (m *LabelFrame) GetConfidence() float32 { 669 if m != nil { 670 return m.Confidence 671 } 672 return 0 673} 674 675// Detected entity from video analysis. 676type Entity struct { 677 // Opaque entity ID. Some IDs may be available in 678 // [Google Knowledge Graph Search 679 // API](https://developers.google.com/knowledge-graph/). 680 EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` 681 // Textual description, e.g. `Fixed-gear bicycle`. 682 Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` 683 // Language code for `description` in BCP-47 format. 684 LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 685 XXX_NoUnkeyedLiteral struct{} `json:"-"` 686 XXX_unrecognized []byte `json:"-"` 687 XXX_sizecache int32 `json:"-"` 688} 689 690func (m *Entity) Reset() { *m = Entity{} } 691func (m *Entity) String() string { return proto.CompactTextString(m) } 692func (*Entity) ProtoMessage() {} 693func (*Entity) Descriptor() ([]byte, []int) { 694 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{9} 695} 696func (m *Entity) XXX_Unmarshal(b []byte) error { 697 return xxx_messageInfo_Entity.Unmarshal(m, b) 698} 699func (m *Entity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 700 return xxx_messageInfo_Entity.Marshal(b, m, deterministic) 701} 702func (dst *Entity) XXX_Merge(src proto.Message) { 703 xxx_messageInfo_Entity.Merge(dst, src) 704} 705func (m *Entity) XXX_Size() int { 706 return xxx_messageInfo_Entity.Size(m) 707} 708func (m *Entity) XXX_DiscardUnknown() { 709 xxx_messageInfo_Entity.DiscardUnknown(m) 710} 711 712var xxx_messageInfo_Entity proto.InternalMessageInfo 713 714func (m *Entity) GetEntityId() string { 715 if m != nil { 716 return m.EntityId 717 } 718 return "" 719} 720 721func (m *Entity) GetDescription() string { 722 if m != nil { 723 return m.Description 724 } 725 return "" 726} 727 728func (m *Entity) GetLanguageCode() string { 729 if m != nil { 730 return m.LanguageCode 731 } 732 return "" 733} 734 735// Label annotation. 736type LabelAnnotation struct { 737 // Detected entity. 738 Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` 739 // Common categories for the detected entity. 740 // E.g. when the label is `Terrier` the category is likely `dog`. And in some 741 // cases there might be more than one categories e.g. `Terrier` could also be 742 // a `pet`. 743 CategoryEntities []*Entity `protobuf:"bytes,2,rep,name=category_entities,json=categoryEntities,proto3" json:"category_entities,omitempty"` 744 // All video segments where a label was detected. 745 Segments []*LabelSegment `protobuf:"bytes,3,rep,name=segments,proto3" json:"segments,omitempty"` 746 // All video frames where a label was detected. 747 Frames []*LabelFrame `protobuf:"bytes,4,rep,name=frames,proto3" json:"frames,omitempty"` 748 XXX_NoUnkeyedLiteral struct{} `json:"-"` 749 XXX_unrecognized []byte `json:"-"` 750 XXX_sizecache int32 `json:"-"` 751} 752 753func (m *LabelAnnotation) Reset() { *m = LabelAnnotation{} } 754func (m *LabelAnnotation) String() string { return proto.CompactTextString(m) } 755func (*LabelAnnotation) ProtoMessage() {} 756func (*LabelAnnotation) Descriptor() ([]byte, []int) { 757 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{10} 758} 759func (m *LabelAnnotation) XXX_Unmarshal(b []byte) error { 760 return xxx_messageInfo_LabelAnnotation.Unmarshal(m, b) 761} 762func (m *LabelAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 763 return xxx_messageInfo_LabelAnnotation.Marshal(b, m, deterministic) 764} 765func (dst *LabelAnnotation) XXX_Merge(src proto.Message) { 766 xxx_messageInfo_LabelAnnotation.Merge(dst, src) 767} 768func (m *LabelAnnotation) XXX_Size() int { 769 return xxx_messageInfo_LabelAnnotation.Size(m) 770} 771func (m *LabelAnnotation) XXX_DiscardUnknown() { 772 xxx_messageInfo_LabelAnnotation.DiscardUnknown(m) 773} 774 775var xxx_messageInfo_LabelAnnotation proto.InternalMessageInfo 776 777func (m *LabelAnnotation) GetEntity() *Entity { 778 if m != nil { 779 return m.Entity 780 } 781 return nil 782} 783 784func (m *LabelAnnotation) GetCategoryEntities() []*Entity { 785 if m != nil { 786 return m.CategoryEntities 787 } 788 return nil 789} 790 791func (m *LabelAnnotation) GetSegments() []*LabelSegment { 792 if m != nil { 793 return m.Segments 794 } 795 return nil 796} 797 798func (m *LabelAnnotation) GetFrames() []*LabelFrame { 799 if m != nil { 800 return m.Frames 801 } 802 return nil 803} 804 805// Video frame level annotation results for explicit content. 806type ExplicitContentFrame struct { 807 // Time-offset, relative to the beginning of the video, corresponding to the 808 // video frame for this location. 809 TimeOffset *duration.Duration `protobuf:"bytes,1,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"` 810 // Likelihood of the pornography content.. 811 PornographyLikelihood Likelihood `protobuf:"varint,2,opt,name=pornography_likelihood,json=pornographyLikelihood,proto3,enum=google.cloud.videointelligence.v1beta2.Likelihood" json:"pornography_likelihood,omitempty"` 812 XXX_NoUnkeyedLiteral struct{} `json:"-"` 813 XXX_unrecognized []byte `json:"-"` 814 XXX_sizecache int32 `json:"-"` 815} 816 817func (m *ExplicitContentFrame) Reset() { *m = ExplicitContentFrame{} } 818func (m *ExplicitContentFrame) String() string { return proto.CompactTextString(m) } 819func (*ExplicitContentFrame) ProtoMessage() {} 820func (*ExplicitContentFrame) Descriptor() ([]byte, []int) { 821 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{11} 822} 823func (m *ExplicitContentFrame) XXX_Unmarshal(b []byte) error { 824 return xxx_messageInfo_ExplicitContentFrame.Unmarshal(m, b) 825} 826func (m *ExplicitContentFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 827 return xxx_messageInfo_ExplicitContentFrame.Marshal(b, m, deterministic) 828} 829func (dst *ExplicitContentFrame) XXX_Merge(src proto.Message) { 830 xxx_messageInfo_ExplicitContentFrame.Merge(dst, src) 831} 832func (m *ExplicitContentFrame) XXX_Size() int { 833 return xxx_messageInfo_ExplicitContentFrame.Size(m) 834} 835func (m *ExplicitContentFrame) XXX_DiscardUnknown() { 836 xxx_messageInfo_ExplicitContentFrame.DiscardUnknown(m) 837} 838 839var xxx_messageInfo_ExplicitContentFrame proto.InternalMessageInfo 840 841func (m *ExplicitContentFrame) GetTimeOffset() *duration.Duration { 842 if m != nil { 843 return m.TimeOffset 844 } 845 return nil 846} 847 848func (m *ExplicitContentFrame) GetPornographyLikelihood() Likelihood { 849 if m != nil { 850 return m.PornographyLikelihood 851 } 852 return Likelihood_LIKELIHOOD_UNSPECIFIED 853} 854 855// Explicit content annotation (based on per-frame visual signals only). 856// If no explicit content has been detected in a frame, no annotations are 857// present for that frame. 858type ExplicitContentAnnotation struct { 859 // All video frames where explicit content was detected. 860 Frames []*ExplicitContentFrame `protobuf:"bytes,1,rep,name=frames,proto3" json:"frames,omitempty"` 861 XXX_NoUnkeyedLiteral struct{} `json:"-"` 862 XXX_unrecognized []byte `json:"-"` 863 XXX_sizecache int32 `json:"-"` 864} 865 866func (m *ExplicitContentAnnotation) Reset() { *m = ExplicitContentAnnotation{} } 867func (m *ExplicitContentAnnotation) String() string { return proto.CompactTextString(m) } 868func (*ExplicitContentAnnotation) ProtoMessage() {} 869func (*ExplicitContentAnnotation) Descriptor() ([]byte, []int) { 870 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{12} 871} 872func (m *ExplicitContentAnnotation) XXX_Unmarshal(b []byte) error { 873 return xxx_messageInfo_ExplicitContentAnnotation.Unmarshal(m, b) 874} 875func (m *ExplicitContentAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 876 return xxx_messageInfo_ExplicitContentAnnotation.Marshal(b, m, deterministic) 877} 878func (dst *ExplicitContentAnnotation) XXX_Merge(src proto.Message) { 879 xxx_messageInfo_ExplicitContentAnnotation.Merge(dst, src) 880} 881func (m *ExplicitContentAnnotation) XXX_Size() int { 882 return xxx_messageInfo_ExplicitContentAnnotation.Size(m) 883} 884func (m *ExplicitContentAnnotation) XXX_DiscardUnknown() { 885 xxx_messageInfo_ExplicitContentAnnotation.DiscardUnknown(m) 886} 887 888var xxx_messageInfo_ExplicitContentAnnotation proto.InternalMessageInfo 889 890func (m *ExplicitContentAnnotation) GetFrames() []*ExplicitContentFrame { 891 if m != nil { 892 return m.Frames 893 } 894 return nil 895} 896 897// Normalized bounding box. 898// The normalized vertex coordinates are relative to the original image. 899// Range: [0, 1]. 900type NormalizedBoundingBox struct { 901 // Left X coordinate. 902 Left float32 `protobuf:"fixed32,1,opt,name=left,proto3" json:"left,omitempty"` 903 // Top Y coordinate. 904 Top float32 `protobuf:"fixed32,2,opt,name=top,proto3" json:"top,omitempty"` 905 // Right X coordinate. 906 Right float32 `protobuf:"fixed32,3,opt,name=right,proto3" json:"right,omitempty"` 907 // Bottom Y coordinate. 908 Bottom float32 `protobuf:"fixed32,4,opt,name=bottom,proto3" json:"bottom,omitempty"` 909 XXX_NoUnkeyedLiteral struct{} `json:"-"` 910 XXX_unrecognized []byte `json:"-"` 911 XXX_sizecache int32 `json:"-"` 912} 913 914func (m *NormalizedBoundingBox) Reset() { *m = NormalizedBoundingBox{} } 915func (m *NormalizedBoundingBox) String() string { return proto.CompactTextString(m) } 916func (*NormalizedBoundingBox) ProtoMessage() {} 917func (*NormalizedBoundingBox) Descriptor() ([]byte, []int) { 918 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{13} 919} 920func (m *NormalizedBoundingBox) XXX_Unmarshal(b []byte) error { 921 return xxx_messageInfo_NormalizedBoundingBox.Unmarshal(m, b) 922} 923func (m *NormalizedBoundingBox) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 924 return xxx_messageInfo_NormalizedBoundingBox.Marshal(b, m, deterministic) 925} 926func (dst *NormalizedBoundingBox) XXX_Merge(src proto.Message) { 927 xxx_messageInfo_NormalizedBoundingBox.Merge(dst, src) 928} 929func (m *NormalizedBoundingBox) XXX_Size() int { 930 return xxx_messageInfo_NormalizedBoundingBox.Size(m) 931} 932func (m *NormalizedBoundingBox) XXX_DiscardUnknown() { 933 xxx_messageInfo_NormalizedBoundingBox.DiscardUnknown(m) 934} 935 936var xxx_messageInfo_NormalizedBoundingBox proto.InternalMessageInfo 937 938func (m *NormalizedBoundingBox) GetLeft() float32 { 939 if m != nil { 940 return m.Left 941 } 942 return 0 943} 944 945func (m *NormalizedBoundingBox) GetTop() float32 { 946 if m != nil { 947 return m.Top 948 } 949 return 0 950} 951 952func (m *NormalizedBoundingBox) GetRight() float32 { 953 if m != nil { 954 return m.Right 955 } 956 return 0 957} 958 959func (m *NormalizedBoundingBox) GetBottom() float32 { 960 if m != nil { 961 return m.Bottom 962 } 963 return 0 964} 965 966// Video segment level annotation results for face detection. 967type FaceSegment struct { 968 // Video segment where a face was detected. 969 Segment *VideoSegment `protobuf:"bytes,1,opt,name=segment,proto3" json:"segment,omitempty"` 970 XXX_NoUnkeyedLiteral struct{} `json:"-"` 971 XXX_unrecognized []byte `json:"-"` 972 XXX_sizecache int32 `json:"-"` 973} 974 975func (m *FaceSegment) Reset() { *m = FaceSegment{} } 976func (m *FaceSegment) String() string { return proto.CompactTextString(m) } 977func (*FaceSegment) ProtoMessage() {} 978func (*FaceSegment) Descriptor() ([]byte, []int) { 979 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{14} 980} 981func (m *FaceSegment) XXX_Unmarshal(b []byte) error { 982 return xxx_messageInfo_FaceSegment.Unmarshal(m, b) 983} 984func (m *FaceSegment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 985 return xxx_messageInfo_FaceSegment.Marshal(b, m, deterministic) 986} 987func (dst *FaceSegment) XXX_Merge(src proto.Message) { 988 xxx_messageInfo_FaceSegment.Merge(dst, src) 989} 990func (m *FaceSegment) XXX_Size() int { 991 return xxx_messageInfo_FaceSegment.Size(m) 992} 993func (m *FaceSegment) XXX_DiscardUnknown() { 994 xxx_messageInfo_FaceSegment.DiscardUnknown(m) 995} 996 997var xxx_messageInfo_FaceSegment proto.InternalMessageInfo 998 999func (m *FaceSegment) GetSegment() *VideoSegment { 1000 if m != nil { 1001 return m.Segment 1002 } 1003 return nil 1004} 1005 1006// Video frame level annotation results for face detection. 1007type FaceFrame struct { 1008 // Normalized Bounding boxes in a frame. 1009 // There can be more than one boxes if the same face is detected in multiple 1010 // locations within the current frame. 1011 NormalizedBoundingBoxes []*NormalizedBoundingBox `protobuf:"bytes,1,rep,name=normalized_bounding_boxes,json=normalizedBoundingBoxes,proto3" json:"normalized_bounding_boxes,omitempty"` 1012 // Time-offset, relative to the beginning of the video, 1013 // corresponding to the video frame for this location. 1014 TimeOffset *duration.Duration `protobuf:"bytes,2,opt,name=time_offset,json=timeOffset,proto3" json:"time_offset,omitempty"` 1015 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1016 XXX_unrecognized []byte `json:"-"` 1017 XXX_sizecache int32 `json:"-"` 1018} 1019 1020func (m *FaceFrame) Reset() { *m = FaceFrame{} } 1021func (m *FaceFrame) String() string { return proto.CompactTextString(m) } 1022func (*FaceFrame) ProtoMessage() {} 1023func (*FaceFrame) Descriptor() ([]byte, []int) { 1024 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{15} 1025} 1026func (m *FaceFrame) XXX_Unmarshal(b []byte) error { 1027 return xxx_messageInfo_FaceFrame.Unmarshal(m, b) 1028} 1029func (m *FaceFrame) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1030 return xxx_messageInfo_FaceFrame.Marshal(b, m, deterministic) 1031} 1032func (dst *FaceFrame) XXX_Merge(src proto.Message) { 1033 xxx_messageInfo_FaceFrame.Merge(dst, src) 1034} 1035func (m *FaceFrame) XXX_Size() int { 1036 return xxx_messageInfo_FaceFrame.Size(m) 1037} 1038func (m *FaceFrame) XXX_DiscardUnknown() { 1039 xxx_messageInfo_FaceFrame.DiscardUnknown(m) 1040} 1041 1042var xxx_messageInfo_FaceFrame proto.InternalMessageInfo 1043 1044func (m *FaceFrame) GetNormalizedBoundingBoxes() []*NormalizedBoundingBox { 1045 if m != nil { 1046 return m.NormalizedBoundingBoxes 1047 } 1048 return nil 1049} 1050 1051func (m *FaceFrame) GetTimeOffset() *duration.Duration { 1052 if m != nil { 1053 return m.TimeOffset 1054 } 1055 return nil 1056} 1057 1058// Face annotation. 1059type FaceAnnotation struct { 1060 // Thumbnail of a representative face view (in JPEG format). 1061 Thumbnail []byte `protobuf:"bytes,1,opt,name=thumbnail,proto3" json:"thumbnail,omitempty"` 1062 // All video segments where a face was detected. 1063 Segments []*FaceSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` 1064 // All video frames where a face was detected. 1065 Frames []*FaceFrame `protobuf:"bytes,3,rep,name=frames,proto3" json:"frames,omitempty"` 1066 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1067 XXX_unrecognized []byte `json:"-"` 1068 XXX_sizecache int32 `json:"-"` 1069} 1070 1071func (m *FaceAnnotation) Reset() { *m = FaceAnnotation{} } 1072func (m *FaceAnnotation) String() string { return proto.CompactTextString(m) } 1073func (*FaceAnnotation) ProtoMessage() {} 1074func (*FaceAnnotation) Descriptor() ([]byte, []int) { 1075 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{16} 1076} 1077func (m *FaceAnnotation) XXX_Unmarshal(b []byte) error { 1078 return xxx_messageInfo_FaceAnnotation.Unmarshal(m, b) 1079} 1080func (m *FaceAnnotation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1081 return xxx_messageInfo_FaceAnnotation.Marshal(b, m, deterministic) 1082} 1083func (dst *FaceAnnotation) XXX_Merge(src proto.Message) { 1084 xxx_messageInfo_FaceAnnotation.Merge(dst, src) 1085} 1086func (m *FaceAnnotation) XXX_Size() int { 1087 return xxx_messageInfo_FaceAnnotation.Size(m) 1088} 1089func (m *FaceAnnotation) XXX_DiscardUnknown() { 1090 xxx_messageInfo_FaceAnnotation.DiscardUnknown(m) 1091} 1092 1093var xxx_messageInfo_FaceAnnotation proto.InternalMessageInfo 1094 1095func (m *FaceAnnotation) GetThumbnail() []byte { 1096 if m != nil { 1097 return m.Thumbnail 1098 } 1099 return nil 1100} 1101 1102func (m *FaceAnnotation) GetSegments() []*FaceSegment { 1103 if m != nil { 1104 return m.Segments 1105 } 1106 return nil 1107} 1108 1109func (m *FaceAnnotation) GetFrames() []*FaceFrame { 1110 if m != nil { 1111 return m.Frames 1112 } 1113 return nil 1114} 1115 1116// Annotation results for a single video. 1117type VideoAnnotationResults struct { 1118 // Video file location in 1119 // [Google Cloud Storage](https://cloud.google.com/storage/). 1120 InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"` 1121 // Label annotations on video level or user specified segment level. 1122 // There is exactly one element for each unique label. 1123 SegmentLabelAnnotations []*LabelAnnotation `protobuf:"bytes,2,rep,name=segment_label_annotations,json=segmentLabelAnnotations,proto3" json:"segment_label_annotations,omitempty"` 1124 // Label annotations on shot level. 1125 // There is exactly one element for each unique label. 1126 ShotLabelAnnotations []*LabelAnnotation `protobuf:"bytes,3,rep,name=shot_label_annotations,json=shotLabelAnnotations,proto3" json:"shot_label_annotations,omitempty"` 1127 // Label annotations on frame level. 1128 // There is exactly one element for each unique label. 1129 FrameLabelAnnotations []*LabelAnnotation `protobuf:"bytes,4,rep,name=frame_label_annotations,json=frameLabelAnnotations,proto3" json:"frame_label_annotations,omitempty"` 1130 // Face annotations. There is exactly one element for each unique face. 1131 FaceAnnotations []*FaceAnnotation `protobuf:"bytes,5,rep,name=face_annotations,json=faceAnnotations,proto3" json:"face_annotations,omitempty"` 1132 // Shot annotations. Each shot is represented as a video segment. 1133 ShotAnnotations []*VideoSegment `protobuf:"bytes,6,rep,name=shot_annotations,json=shotAnnotations,proto3" json:"shot_annotations,omitempty"` 1134 // Explicit content annotation. 1135 ExplicitAnnotation *ExplicitContentAnnotation `protobuf:"bytes,7,opt,name=explicit_annotation,json=explicitAnnotation,proto3" json:"explicit_annotation,omitempty"` 1136 // If set, indicates an error. Note that for a single `AnnotateVideoRequest` 1137 // some videos may succeed and some may fail. 1138 Error *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"` 1139 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1140 XXX_unrecognized []byte `json:"-"` 1141 XXX_sizecache int32 `json:"-"` 1142} 1143 1144func (m *VideoAnnotationResults) Reset() { *m = VideoAnnotationResults{} } 1145func (m *VideoAnnotationResults) String() string { return proto.CompactTextString(m) } 1146func (*VideoAnnotationResults) ProtoMessage() {} 1147func (*VideoAnnotationResults) Descriptor() ([]byte, []int) { 1148 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{17} 1149} 1150func (m *VideoAnnotationResults) XXX_Unmarshal(b []byte) error { 1151 return xxx_messageInfo_VideoAnnotationResults.Unmarshal(m, b) 1152} 1153func (m *VideoAnnotationResults) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1154 return xxx_messageInfo_VideoAnnotationResults.Marshal(b, m, deterministic) 1155} 1156func (dst *VideoAnnotationResults) XXX_Merge(src proto.Message) { 1157 xxx_messageInfo_VideoAnnotationResults.Merge(dst, src) 1158} 1159func (m *VideoAnnotationResults) XXX_Size() int { 1160 return xxx_messageInfo_VideoAnnotationResults.Size(m) 1161} 1162func (m *VideoAnnotationResults) XXX_DiscardUnknown() { 1163 xxx_messageInfo_VideoAnnotationResults.DiscardUnknown(m) 1164} 1165 1166var xxx_messageInfo_VideoAnnotationResults proto.InternalMessageInfo 1167 1168func (m *VideoAnnotationResults) GetInputUri() string { 1169 if m != nil { 1170 return m.InputUri 1171 } 1172 return "" 1173} 1174 1175func (m *VideoAnnotationResults) GetSegmentLabelAnnotations() []*LabelAnnotation { 1176 if m != nil { 1177 return m.SegmentLabelAnnotations 1178 } 1179 return nil 1180} 1181 1182func (m *VideoAnnotationResults) GetShotLabelAnnotations() []*LabelAnnotation { 1183 if m != nil { 1184 return m.ShotLabelAnnotations 1185 } 1186 return nil 1187} 1188 1189func (m *VideoAnnotationResults) GetFrameLabelAnnotations() []*LabelAnnotation { 1190 if m != nil { 1191 return m.FrameLabelAnnotations 1192 } 1193 return nil 1194} 1195 1196func (m *VideoAnnotationResults) GetFaceAnnotations() []*FaceAnnotation { 1197 if m != nil { 1198 return m.FaceAnnotations 1199 } 1200 return nil 1201} 1202 1203func (m *VideoAnnotationResults) GetShotAnnotations() []*VideoSegment { 1204 if m != nil { 1205 return m.ShotAnnotations 1206 } 1207 return nil 1208} 1209 1210func (m *VideoAnnotationResults) GetExplicitAnnotation() *ExplicitContentAnnotation { 1211 if m != nil { 1212 return m.ExplicitAnnotation 1213 } 1214 return nil 1215} 1216 1217func (m *VideoAnnotationResults) GetError() *status.Status { 1218 if m != nil { 1219 return m.Error 1220 } 1221 return nil 1222} 1223 1224// Video annotation response. Included in the `response` 1225// field of the `Operation` returned by the `GetOperation` 1226// call of the `google::longrunning::Operations` service. 1227type AnnotateVideoResponse struct { 1228 // Annotation results for all videos specified in `AnnotateVideoRequest`. 1229 AnnotationResults []*VideoAnnotationResults `protobuf:"bytes,1,rep,name=annotation_results,json=annotationResults,proto3" json:"annotation_results,omitempty"` 1230 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1231 XXX_unrecognized []byte `json:"-"` 1232 XXX_sizecache int32 `json:"-"` 1233} 1234 1235func (m *AnnotateVideoResponse) Reset() { *m = AnnotateVideoResponse{} } 1236func (m *AnnotateVideoResponse) String() string { return proto.CompactTextString(m) } 1237func (*AnnotateVideoResponse) ProtoMessage() {} 1238func (*AnnotateVideoResponse) Descriptor() ([]byte, []int) { 1239 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{18} 1240} 1241func (m *AnnotateVideoResponse) XXX_Unmarshal(b []byte) error { 1242 return xxx_messageInfo_AnnotateVideoResponse.Unmarshal(m, b) 1243} 1244func (m *AnnotateVideoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1245 return xxx_messageInfo_AnnotateVideoResponse.Marshal(b, m, deterministic) 1246} 1247func (dst *AnnotateVideoResponse) XXX_Merge(src proto.Message) { 1248 xxx_messageInfo_AnnotateVideoResponse.Merge(dst, src) 1249} 1250func (m *AnnotateVideoResponse) XXX_Size() int { 1251 return xxx_messageInfo_AnnotateVideoResponse.Size(m) 1252} 1253func (m *AnnotateVideoResponse) XXX_DiscardUnknown() { 1254 xxx_messageInfo_AnnotateVideoResponse.DiscardUnknown(m) 1255} 1256 1257var xxx_messageInfo_AnnotateVideoResponse proto.InternalMessageInfo 1258 1259func (m *AnnotateVideoResponse) GetAnnotationResults() []*VideoAnnotationResults { 1260 if m != nil { 1261 return m.AnnotationResults 1262 } 1263 return nil 1264} 1265 1266// Annotation progress for a single video. 1267type VideoAnnotationProgress struct { 1268 // Video file location in 1269 // [Google Cloud Storage](https://cloud.google.com/storage/). 1270 InputUri string `protobuf:"bytes,1,opt,name=input_uri,json=inputUri,proto3" json:"input_uri,omitempty"` 1271 // Approximate percentage processed thus far. 1272 // Guaranteed to be 100 when fully processed. 1273 ProgressPercent int32 `protobuf:"varint,2,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"` 1274 // Time when the request was received. 1275 StartTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 1276 // Time of the most recent update. 1277 UpdateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 1278 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1279 XXX_unrecognized []byte `json:"-"` 1280 XXX_sizecache int32 `json:"-"` 1281} 1282 1283func (m *VideoAnnotationProgress) Reset() { *m = VideoAnnotationProgress{} } 1284func (m *VideoAnnotationProgress) String() string { return proto.CompactTextString(m) } 1285func (*VideoAnnotationProgress) ProtoMessage() {} 1286func (*VideoAnnotationProgress) Descriptor() ([]byte, []int) { 1287 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{19} 1288} 1289func (m *VideoAnnotationProgress) XXX_Unmarshal(b []byte) error { 1290 return xxx_messageInfo_VideoAnnotationProgress.Unmarshal(m, b) 1291} 1292func (m *VideoAnnotationProgress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1293 return xxx_messageInfo_VideoAnnotationProgress.Marshal(b, m, deterministic) 1294} 1295func (dst *VideoAnnotationProgress) XXX_Merge(src proto.Message) { 1296 xxx_messageInfo_VideoAnnotationProgress.Merge(dst, src) 1297} 1298func (m *VideoAnnotationProgress) XXX_Size() int { 1299 return xxx_messageInfo_VideoAnnotationProgress.Size(m) 1300} 1301func (m *VideoAnnotationProgress) XXX_DiscardUnknown() { 1302 xxx_messageInfo_VideoAnnotationProgress.DiscardUnknown(m) 1303} 1304 1305var xxx_messageInfo_VideoAnnotationProgress proto.InternalMessageInfo 1306 1307func (m *VideoAnnotationProgress) GetInputUri() string { 1308 if m != nil { 1309 return m.InputUri 1310 } 1311 return "" 1312} 1313 1314func (m *VideoAnnotationProgress) GetProgressPercent() int32 { 1315 if m != nil { 1316 return m.ProgressPercent 1317 } 1318 return 0 1319} 1320 1321func (m *VideoAnnotationProgress) GetStartTime() *timestamp.Timestamp { 1322 if m != nil { 1323 return m.StartTime 1324 } 1325 return nil 1326} 1327 1328func (m *VideoAnnotationProgress) GetUpdateTime() *timestamp.Timestamp { 1329 if m != nil { 1330 return m.UpdateTime 1331 } 1332 return nil 1333} 1334 1335// Video annotation progress. Included in the `metadata` 1336// field of the `Operation` returned by the `GetOperation` 1337// call of the `google::longrunning::Operations` service. 1338type AnnotateVideoProgress struct { 1339 // Progress metadata for all videos specified in `AnnotateVideoRequest`. 1340 AnnotationProgress []*VideoAnnotationProgress `protobuf:"bytes,1,rep,name=annotation_progress,json=annotationProgress,proto3" json:"annotation_progress,omitempty"` 1341 XXX_NoUnkeyedLiteral struct{} `json:"-"` 1342 XXX_unrecognized []byte `json:"-"` 1343 XXX_sizecache int32 `json:"-"` 1344} 1345 1346func (m *AnnotateVideoProgress) Reset() { *m = AnnotateVideoProgress{} } 1347func (m *AnnotateVideoProgress) String() string { return proto.CompactTextString(m) } 1348func (*AnnotateVideoProgress) ProtoMessage() {} 1349func (*AnnotateVideoProgress) Descriptor() ([]byte, []int) { 1350 return fileDescriptor_video_intelligence_c47a9b755759e2f4, []int{20} 1351} 1352func (m *AnnotateVideoProgress) XXX_Unmarshal(b []byte) error { 1353 return xxx_messageInfo_AnnotateVideoProgress.Unmarshal(m, b) 1354} 1355func (m *AnnotateVideoProgress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { 1356 return xxx_messageInfo_AnnotateVideoProgress.Marshal(b, m, deterministic) 1357} 1358func (dst *AnnotateVideoProgress) XXX_Merge(src proto.Message) { 1359 xxx_messageInfo_AnnotateVideoProgress.Merge(dst, src) 1360} 1361func (m *AnnotateVideoProgress) XXX_Size() int { 1362 return xxx_messageInfo_AnnotateVideoProgress.Size(m) 1363} 1364func (m *AnnotateVideoProgress) XXX_DiscardUnknown() { 1365 xxx_messageInfo_AnnotateVideoProgress.DiscardUnknown(m) 1366} 1367 1368var xxx_messageInfo_AnnotateVideoProgress proto.InternalMessageInfo 1369 1370func (m *AnnotateVideoProgress) GetAnnotationProgress() []*VideoAnnotationProgress { 1371 if m != nil { 1372 return m.AnnotationProgress 1373 } 1374 return nil 1375} 1376 1377func init() { 1378 proto.RegisterType((*AnnotateVideoRequest)(nil), "google.cloud.videointelligence.v1beta2.AnnotateVideoRequest") 1379 proto.RegisterType((*VideoContext)(nil), "google.cloud.videointelligence.v1beta2.VideoContext") 1380 proto.RegisterType((*LabelDetectionConfig)(nil), "google.cloud.videointelligence.v1beta2.LabelDetectionConfig") 1381 proto.RegisterType((*ShotChangeDetectionConfig)(nil), "google.cloud.videointelligence.v1beta2.ShotChangeDetectionConfig") 1382 proto.RegisterType((*ExplicitContentDetectionConfig)(nil), "google.cloud.videointelligence.v1beta2.ExplicitContentDetectionConfig") 1383 proto.RegisterType((*FaceDetectionConfig)(nil), "google.cloud.videointelligence.v1beta2.FaceDetectionConfig") 1384 proto.RegisterType((*VideoSegment)(nil), "google.cloud.videointelligence.v1beta2.VideoSegment") 1385 proto.RegisterType((*LabelSegment)(nil), "google.cloud.videointelligence.v1beta2.LabelSegment") 1386 proto.RegisterType((*LabelFrame)(nil), "google.cloud.videointelligence.v1beta2.LabelFrame") 1387 proto.RegisterType((*Entity)(nil), "google.cloud.videointelligence.v1beta2.Entity") 1388 proto.RegisterType((*LabelAnnotation)(nil), "google.cloud.videointelligence.v1beta2.LabelAnnotation") 1389 proto.RegisterType((*ExplicitContentFrame)(nil), "google.cloud.videointelligence.v1beta2.ExplicitContentFrame") 1390 proto.RegisterType((*ExplicitContentAnnotation)(nil), "google.cloud.videointelligence.v1beta2.ExplicitContentAnnotation") 1391 proto.RegisterType((*NormalizedBoundingBox)(nil), "google.cloud.videointelligence.v1beta2.NormalizedBoundingBox") 1392 proto.RegisterType((*FaceSegment)(nil), "google.cloud.videointelligence.v1beta2.FaceSegment") 1393 proto.RegisterType((*FaceFrame)(nil), "google.cloud.videointelligence.v1beta2.FaceFrame") 1394 proto.RegisterType((*FaceAnnotation)(nil), "google.cloud.videointelligence.v1beta2.FaceAnnotation") 1395 proto.RegisterType((*VideoAnnotationResults)(nil), "google.cloud.videointelligence.v1beta2.VideoAnnotationResults") 1396 proto.RegisterType((*AnnotateVideoResponse)(nil), "google.cloud.videointelligence.v1beta2.AnnotateVideoResponse") 1397 proto.RegisterType((*VideoAnnotationProgress)(nil), "google.cloud.videointelligence.v1beta2.VideoAnnotationProgress") 1398 proto.RegisterType((*AnnotateVideoProgress)(nil), "google.cloud.videointelligence.v1beta2.AnnotateVideoProgress") 1399 proto.RegisterEnum("google.cloud.videointelligence.v1beta2.Feature", Feature_name, Feature_value) 1400 proto.RegisterEnum("google.cloud.videointelligence.v1beta2.LabelDetectionMode", LabelDetectionMode_name, LabelDetectionMode_value) 1401 proto.RegisterEnum("google.cloud.videointelligence.v1beta2.Likelihood", Likelihood_name, Likelihood_value) 1402} 1403 1404// Reference imports to suppress errors if they are not otherwise used. 1405var _ context.Context 1406var _ grpc.ClientConn 1407 1408// This is a compile-time assertion to ensure that this generated file 1409// is compatible with the grpc package it is being compiled against. 1410const _ = grpc.SupportPackageIsVersion4 1411 1412// VideoIntelligenceServiceClient is the client API for VideoIntelligenceService service. 1413// 1414// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 1415type VideoIntelligenceServiceClient interface { 1416 // Performs asynchronous video annotation. Progress and results can be 1417 // retrieved through the `google.longrunning.Operations` interface. 1418 // `Operation.metadata` contains `AnnotateVideoProgress` (progress). 1419 // `Operation.response` contains `AnnotateVideoResponse` (results). 1420 AnnotateVideo(ctx context.Context, in *AnnotateVideoRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 1421} 1422 1423type videoIntelligenceServiceClient struct { 1424 cc *grpc.ClientConn 1425} 1426 1427func NewVideoIntelligenceServiceClient(cc *grpc.ClientConn) VideoIntelligenceServiceClient { 1428 return &videoIntelligenceServiceClient{cc} 1429} 1430 1431func (c *videoIntelligenceServiceClient) AnnotateVideo(ctx context.Context, in *AnnotateVideoRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 1432 out := new(longrunning.Operation) 1433 err := c.cc.Invoke(ctx, "/google.cloud.videointelligence.v1beta2.VideoIntelligenceService/AnnotateVideo", in, out, opts...) 1434 if err != nil { 1435 return nil, err 1436 } 1437 return out, nil 1438} 1439 1440// VideoIntelligenceServiceServer is the server API for VideoIntelligenceService service. 1441type VideoIntelligenceServiceServer interface { 1442 // Performs asynchronous video annotation. Progress and results can be 1443 // retrieved through the `google.longrunning.Operations` interface. 1444 // `Operation.metadata` contains `AnnotateVideoProgress` (progress). 1445 // `Operation.response` contains `AnnotateVideoResponse` (results). 1446 AnnotateVideo(context.Context, *AnnotateVideoRequest) (*longrunning.Operation, error) 1447} 1448 1449func RegisterVideoIntelligenceServiceServer(s *grpc.Server, srv VideoIntelligenceServiceServer) { 1450 s.RegisterService(&_VideoIntelligenceService_serviceDesc, srv) 1451} 1452 1453func _VideoIntelligenceService_AnnotateVideo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1454 in := new(AnnotateVideoRequest) 1455 if err := dec(in); err != nil { 1456 return nil, err 1457 } 1458 if interceptor == nil { 1459 return srv.(VideoIntelligenceServiceServer).AnnotateVideo(ctx, in) 1460 } 1461 info := &grpc.UnaryServerInfo{ 1462 Server: srv, 1463 FullMethod: "/google.cloud.videointelligence.v1beta2.VideoIntelligenceService/AnnotateVideo", 1464 } 1465 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1466 return srv.(VideoIntelligenceServiceServer).AnnotateVideo(ctx, req.(*AnnotateVideoRequest)) 1467 } 1468 return interceptor(ctx, in, info, handler) 1469} 1470 1471var _VideoIntelligenceService_serviceDesc = grpc.ServiceDesc{ 1472 ServiceName: "google.cloud.videointelligence.v1beta2.VideoIntelligenceService", 1473 HandlerType: (*VideoIntelligenceServiceServer)(nil), 1474 Methods: []grpc.MethodDesc{ 1475 { 1476 MethodName: "AnnotateVideo", 1477 Handler: _VideoIntelligenceService_AnnotateVideo_Handler, 1478 }, 1479 }, 1480 Streams: []grpc.StreamDesc{}, 1481 Metadata: "google/cloud/videointelligence/v1beta2/video_intelligence.proto", 1482} 1483 1484func init() { 1485 proto.RegisterFile("google/cloud/videointelligence/v1beta2/video_intelligence.proto", fileDescriptor_video_intelligence_c47a9b755759e2f4) 1486} 1487 1488var fileDescriptor_video_intelligence_c47a9b755759e2f4 = []byte{ 1489 // 1718 bytes of a gzipped FileDescriptorProto 1490 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4f, 0x6f, 0xdb, 0xc8, 1491 0x15, 0x2f, 0x25, 0xd9, 0xb1, 0x9e, 0xff, 0x48, 0x19, 0xcb, 0xb6, 0xec, 0x26, 0x5e, 0x97, 0x29, 1492 0x16, 0xae, 0x0b, 0x48, 0x88, 0x77, 0xb1, 0x45, 0x93, 0x6d, 0x17, 0xb2, 0x4c, 0x6d, 0xd4, 0x75, 1493 0x24, 0x81, 0x52, 0xd2, 0xa6, 0x4d, 0x41, 0x50, 0xe4, 0x88, 0x22, 0x96, 0xe2, 0x70, 0xc9, 0x61, 1494 0x10, 0xf7, 0xd0, 0xc3, 0x1e, 0x16, 0xe8, 0xb1, 0xe8, 0xa5, 0x9f, 0xa1, 0x87, 0x7e, 0x83, 0x02, 1495 0x45, 0x2f, 0x05, 0x72, 0x6d, 0x2f, 0xbd, 0xf4, 0xd4, 0x63, 0x3f, 0x40, 0x8f, 0x05, 0x67, 0x86, 1496 0x12, 0x45, 0xca, 0xb1, 0x94, 0x60, 0x6f, 0x9c, 0xf7, 0xe6, 0xfd, 0xde, 0xff, 0x37, 0x33, 0x84, 1497 0xcf, 0x2c, 0x42, 0x2c, 0x07, 0xd7, 0x0d, 0x87, 0x84, 0x66, 0xfd, 0x95, 0x6d, 0x62, 0x62, 0xbb, 1498 0x14, 0x3b, 0x8e, 0x6d, 0x61, 0xd7, 0xc0, 0xf5, 0x57, 0x0f, 0x87, 0x98, 0xea, 0xe7, 0x9c, 0xa3, 1499 0x25, 0x59, 0x35, 0xcf, 0x27, 0x94, 0xa0, 0x0f, 0x39, 0x40, 0x8d, 0x01, 0xd4, 0x32, 0x00, 0x35, 1500 0x01, 0x70, 0x74, 0x4f, 0x28, 0xd2, 0x3d, 0xbb, 0xae, 0xbb, 0x2e, 0xa1, 0x3a, 0xb5, 0x89, 0x1b, 1501 0x70, 0x94, 0xa3, 0x07, 0x82, 0xeb, 0x10, 0xd7, 0xf2, 0x43, 0xd7, 0xb5, 0x5d, 0xab, 0x4e, 0x3c, 1502 0xec, 0xcf, 0x6d, 0x3a, 0x16, 0x9b, 0xd8, 0x6a, 0x18, 0x8e, 0xea, 0x66, 0xc8, 0x37, 0x08, 0xfe, 1503 0x07, 0x69, 0x3e, 0xb5, 0x27, 0x38, 0xa0, 0xfa, 0xc4, 0x13, 0x1b, 0x0e, 0xc4, 0x06, 0xdf, 0x33, 1504 0xea, 0x01, 0xd5, 0x69, 0x28, 0x90, 0xe5, 0xbf, 0xe6, 0xa0, 0xd2, 0xe0, 0x46, 0xe1, 0xe7, 0x91, 1505 0x0b, 0x2a, 0xfe, 0x2a, 0xc4, 0x01, 0x45, 0xdf, 0x85, 0xa2, 0xed, 0x7a, 0x21, 0xd5, 0x42, 0xdf, 1506 0xae, 0x4a, 0x27, 0xd2, 0x69, 0x51, 0xdd, 0x60, 0x84, 0x67, 0xbe, 0x8d, 0x1e, 0xc0, 0x36, 0x67, 1507 0x1a, 0xc4, 0xa5, 0xd8, 0xa5, 0xd5, 0xf5, 0x13, 0xe9, 0x74, 0x4b, 0xdd, 0x62, 0xc4, 0x26, 0xa7, 1508 0xa1, 0x2f, 0x60, 0x63, 0x84, 0x75, 0x1a, 0xfa, 0x38, 0xa8, 0xe6, 0x4e, 0xf2, 0xa7, 0x3b, 0xe7, 1509 0xf5, 0xda, 0x72, 0x21, 0xab, 0xb5, 0xb8, 0x9c, 0x3a, 0x05, 0x40, 0x2f, 0x60, 0x9b, 0x27, 0x82, 1510 0x69, 0x7c, 0x4d, 0xab, 0xf9, 0x13, 0xe9, 0x74, 0xf3, 0xfc, 0xe3, 0x65, 0x11, 0x99, 0x6f, 0x4d, 1511 0x2e, 0xab, 0x6e, 0xbd, 0x4a, 0xac, 0xd0, 0x7d, 0x00, 0x12, 0xd2, 0xd8, 0xd5, 0x02, 0x73, 0xb5, 1512 0xc8, 0x29, 0x91, 0xaf, 0x1f, 0xc0, 0xa6, 0x43, 0x0c, 0x16, 0x6d, 0xcd, 0x36, 0xab, 0x6b, 0x8c, 1513 0x0f, 0x31, 0xa9, 0x6d, 0xca, 0xff, 0x2e, 0xc0, 0x56, 0x12, 0x1e, 0xf5, 0x60, 0x23, 0xc0, 0xd6, 1514 0x04, 0xbb, 0x34, 0xa8, 0x4a, 0x27, 0xf9, 0x95, 0xcd, 0xec, 0x73, 0x61, 0x75, 0x8a, 0x82, 0x7c, 1515 0xd8, 0x77, 0xf4, 0x21, 0x76, 0x34, 0x13, 0x53, 0x6c, 0x30, 0x53, 0x0c, 0xe2, 0x8e, 0x6c, 0xab, 1516 0x9a, 0x63, 0x61, 0xf8, 0x74, 0x59, 0xfc, 0xab, 0x08, 0xe5, 0x32, 0x06, 0x69, 0x32, 0x0c, 0xb5, 1517 0xe2, 0x2c, 0xa0, 0xa2, 0xaf, 0x25, 0xb8, 0x17, 0x8c, 0x09, 0xd5, 0x8c, 0xb1, 0xee, 0x5a, 0x38, 1518 0xab, 0x9a, 0x67, 0xa0, 0xb1, 0xac, 0xea, 0xfe, 0x98, 0xd0, 0x26, 0x83, 0x4a, 0xeb, 0x3f, 0x0c, 1519 0x6e, 0x62, 0xa1, 0xdf, 0x4b, 0xf0, 0x3d, 0xfc, 0xda, 0x73, 0x6c, 0xc3, 0x9e, 0x16, 0x5b, 0xd6, 1520 0x92, 0x02, 0xb3, 0xa4, 0xb5, 0xac, 0x25, 0x8a, 0x00, 0x14, 0x85, 0x9a, 0x36, 0xe7, 0x18, 0xbf, 1521 0x95, 0x8f, 0x08, 0xec, 0x8d, 0x74, 0x63, 0x41, 0x40, 0xd6, 0x98, 0x19, 0x8f, 0x97, 0x2e, 0x72, 1522 0xdd, 0xc8, 0x84, 0x62, 0x77, 0x94, 0x25, 0xca, 0x7f, 0x97, 0xa0, 0xb2, 0x28, 0x71, 0xc8, 0x81, 1523 0x4a, 0xba, 0x2c, 0x26, 0xc4, 0xc4, 0xac, 0x5d, 0x77, 0xce, 0x1f, 0xbd, 0x5b, 0x51, 0x3c, 0x25, 1524 0x26, 0x56, 0x91, 0x93, 0xa1, 0xa1, 0x1f, 0xc2, 0xdd, 0x80, 0xcf, 0x2e, 0xdd, 0xbf, 0xd6, 0x0c, 1525 0x7d, 0x82, 0x7d, 0x9d, 0xd5, 0xdf, 0x86, 0x5a, 0x9e, 0x31, 0x9a, 0x8c, 0x8e, 0x2a, 0xb0, 0x16, 1526 0x99, 0xe2, 0xb0, 0x2a, 0x29, 0xaa, 0x7c, 0x21, 0x3f, 0x84, 0xc3, 0x1b, 0xcb, 0x60, 0x26, 0x22, 1527 0x25, 0x45, 0x3e, 0x81, 0xe3, 0xb7, 0xe7, 0xeb, 0x06, 0x39, 0x1d, 0x76, 0x17, 0x04, 0x78, 0xf1, 1528 0x66, 0xf4, 0x31, 0xec, 0xdb, 0xae, 0xe1, 0x84, 0x26, 0xd6, 0x86, 0x24, 0x74, 0x4d, 0xdb, 0xb5, 1529 0xb4, 0x21, 0x79, 0xcd, 0x06, 0x57, 0xe4, 0x5f, 0x45, 0x70, 0x2f, 0x04, 0xf3, 0x22, 0xe2, 0xc9, 1530 0x7f, 0x94, 0x44, 0xe3, 0x8b, 0x86, 0x45, 0x0a, 0x8b, 0x90, 0x4f, 0xb5, 0x68, 0xfc, 0x6a, 0x64, 1531 0x34, 0x0a, 0x30, 0x65, 0x8a, 0x36, 0xcf, 0x0f, 0xe3, 0x64, 0xc4, 0x23, 0xba, 0x76, 0x29, 0x46, 1532 0xb8, 0x5a, 0x62, 0x32, 0x03, 0x7b, 0x82, 0xbb, 0x4c, 0x02, 0x35, 0xa0, 0x84, 0x5d, 0x73, 0x0e, 1533 0x24, 0x77, 0x1b, 0xc8, 0x36, 0x76, 0xcd, 0x19, 0x84, 0xfc, 0x5b, 0xd8, 0x62, 0x59, 0x8d, 0x2d, 1534 0xeb, 0xc0, 0x1d, 0x31, 0x4c, 0x84, 0x3d, 0xef, 0x36, 0x91, 0x62, 0x10, 0x74, 0x0c, 0xc0, 0x8a, 1535 0xde, 0x8c, 0xf6, 0x32, 0xeb, 0x72, 0x6a, 0x82, 0x22, 0x8f, 0x01, 0x98, 0xfe, 0x96, 0xaf, 0x4f, 1536 0x30, 0x7a, 0x04, 0x9b, 0x2b, 0x45, 0x04, 0xe8, 0x2c, 0x18, 0xb7, 0x69, 0x72, 0x60, 0x5d, 0x71, 1537 0xa9, 0x4d, 0xaf, 0xa3, 0x13, 0x0b, 0xb3, 0xaf, 0x68, 0x4c, 0x8b, 0x13, 0x8b, 0x13, 0xda, 0x26, 1538 0x3a, 0x81, 0x4d, 0x13, 0x07, 0x86, 0x6f, 0x7b, 0x91, 0x06, 0x86, 0x53, 0x54, 0x93, 0xa4, 0xe8, 1539 0x4c, 0x73, 0x74, 0xd7, 0x0a, 0x75, 0x0b, 0x6b, 0x46, 0xd4, 0x45, 0xbc, 0x72, 0xb7, 0x62, 0x62, 1540 0x93, 0x98, 0x58, 0xfe, 0x67, 0x0e, 0x4a, 0xcc, 0xb1, 0xc6, 0xf4, 0x20, 0x47, 0x2d, 0x58, 0xe7, 1541 0x6a, 0x84, 0x63, 0xb5, 0xa5, 0xe7, 0x10, 0x93, 0x52, 0x85, 0x34, 0xfa, 0x15, 0xdc, 0x35, 0x74, 1542 0x8a, 0x2d, 0xe2, 0x5f, 0x6b, 0x8c, 0x64, 0x8b, 0x83, 0x73, 0x75, 0xc8, 0x72, 0x0c, 0xa4, 0x08, 1543 0x9c, 0xb9, 0x33, 0x29, 0xbf, 0xda, 0x99, 0x94, 0x2c, 0xa4, 0xc4, 0x99, 0xf4, 0x33, 0x58, 0x1f, 1544 0x45, 0xd9, 0x0d, 0xaa, 0x05, 0x86, 0x77, 0xbe, 0x12, 0x1e, 0x2b, 0x0c, 0x55, 0x20, 0xc8, 0x7f, 1545 0x91, 0xa0, 0x92, 0xea, 0xf2, 0xf7, 0xaf, 0x1c, 0x1b, 0xf6, 0x3d, 0xe2, 0xbb, 0xc4, 0xf2, 0x75, 1546 0x6f, 0x7c, 0xad, 0x39, 0xf6, 0x97, 0xd8, 0xb1, 0xc7, 0x84, 0x98, 0x2c, 0xfb, 0x3b, 0x2b, 0x18, 1547 0x3c, 0x95, 0x54, 0xf7, 0x12, 0x88, 0x33, 0xb2, 0xfc, 0x15, 0x1c, 0xa6, 0xcc, 0x4f, 0xd4, 0xc7, 1548 0x60, 0x1a, 0x28, 0x7e, 0x19, 0xf8, 0xf4, 0x1d, 0xcf, 0xa9, 0xf9, 0x90, 0x7d, 0x09, 0x7b, 0x1d, 1549 0xe2, 0x4f, 0x74, 0xc7, 0xfe, 0x0d, 0x36, 0x13, 0x73, 0x09, 0x21, 0x28, 0x38, 0x78, 0xc4, 0x63, 1550 0x95, 0x53, 0xd9, 0x37, 0x2a, 0x43, 0x9e, 0x12, 0x4f, 0x74, 0x4f, 0xf4, 0x19, 0xcd, 0x41, 0xdf, 1551 0xb6, 0xc6, 0xfc, 0x1e, 0x95, 0x53, 0xf9, 0x02, 0xed, 0xc3, 0xfa, 0x90, 0x50, 0x4a, 0x26, 0xec, 1552 0x48, 0xcd, 0xa9, 0x62, 0x25, 0xff, 0x1a, 0x36, 0xa3, 0x61, 0xfa, 0x2d, 0x4d, 0x13, 0xf9, 0x6f, 1553 0x12, 0x14, 0x23, 0x7c, 0x9e, 0xf3, 0x6b, 0x38, 0x74, 0xa7, 0x9e, 0xa5, 0xe7, 0x31, 0x0f, 0xe1, 1554 0x4f, 0x96, 0xd5, 0xb7, 0x30, 0x44, 0xea, 0x81, 0xbb, 0x88, 0x8c, 0x83, 0x74, 0xb9, 0xe5, 0x56, 1555 0x28, 0x37, 0xf9, 0x8d, 0x04, 0x3b, 0x91, 0x13, 0x89, 0xcc, 0xdf, 0x83, 0x22, 0x1d, 0x87, 0x93, 1556 0xa1, 0xab, 0xdb, 0xfc, 0xc0, 0xd9, 0x52, 0x67, 0x04, 0xd4, 0x4d, 0xb4, 0x24, 0x6f, 0xf3, 0x8f, 1557 0x56, 0xb9, 0x3a, 0x64, 0x3b, 0xb2, 0x3d, 0x2d, 0x34, 0xde, 0xe1, 0x0f, 0x57, 0x81, 0x9b, 0xaf, 1558 0xae, 0xff, 0xae, 0xc1, 0x3e, 0xcb, 0xd5, 0xcc, 0x1b, 0x15, 0x07, 0xa1, 0x43, 0x83, 0xb7, 0x3f, 1559 0x0c, 0x02, 0x38, 0x14, 0xe6, 0x68, 0xfc, 0x66, 0x92, 0x78, 0xf0, 0x08, 0x27, 0x7f, 0xb4, 0xd2, 1560 0x9c, 0x48, 0xe8, 0x3f, 0x10, 0xc8, 0x29, 0x7a, 0x80, 0x26, 0xb0, 0xcf, 0x2e, 0xaa, 0x59, 0x8d, 1561 0xf9, 0xf7, 0xd3, 0x58, 0x89, 0x60, 0x33, 0xea, 0x08, 0x1c, 0xb0, 0x28, 0x2d, 0xd0, 0x57, 0x78, 1562 0x3f, 0x7d, 0x7b, 0x0c, 0x37, 0xa3, 0x50, 0x87, 0x32, 0xbb, 0x70, 0x26, 0x35, 0xad, 0x31, 0x4d, 1563 0x9f, 0xac, 0x92, 0xe1, 0x84, 0xa2, 0xd2, 0x68, 0x6e, 0x1d, 0x20, 0x0d, 0xca, 0x2c, 0x84, 0x49, 1564 0x15, 0xeb, 0xef, 0xf1, 0x74, 0x29, 0x45, 0x68, 0x49, 0x05, 0x3e, 0xec, 0x4e, 0xef, 0xf1, 0x33, 1565 0x25, 0xd5, 0x3b, 0xab, 0xbd, 0x21, 0x6e, 0x1c, 0xb2, 0x2a, 0x8a, 0xd1, 0x13, 0xed, 0x77, 0x0a, 1566 0x6b, 0xd8, 0xf7, 0x89, 0x5f, 0x2d, 0x32, 0x2d, 0x28, 0xd6, 0xe2, 0x7b, 0x46, 0xad, 0xcf, 0x1e, 1567 0xc1, 0x2a, 0xdf, 0x20, 0x7f, 0x23, 0xc1, 0x5e, 0xea, 0x15, 0x1c, 0x78, 0xc4, 0x0d, 0x30, 0x9a, 1568 0x00, 0x9a, 0x99, 0xab, 0xf9, 0xbc, 0x07, 0xc4, 0x14, 0xfa, 0xe9, 0x4a, 0xa1, 0xc9, 0x74, 0x92, 1569 0x7a, 0x57, 0x4f, 0x93, 0xe4, 0x7f, 0x49, 0x70, 0x90, 0xda, 0xdd, 0xf3, 0x89, 0xe5, 0xe3, 0xe0, 1570 0x96, 0xc6, 0xfb, 0x01, 0x94, 0x3d, 0xb1, 0x51, 0xf3, 0xb0, 0x6f, 0x44, 0xb3, 0x39, 0x1a, 0x5f, 1571 0x6b, 0x6a, 0x29, 0xa6, 0xf7, 0x38, 0x19, 0xfd, 0x18, 0x60, 0x76, 0x4b, 0x15, 0xaf, 0xb8, 0xa3, 1572 0xcc, 0x8c, 0x1b, 0xc4, 0x7f, 0x10, 0xd4, 0xe2, 0xf4, 0x7e, 0x8a, 0x1e, 0xc3, 0x66, 0xe8, 0x99, 1573 0x3a, 0xc5, 0x5c, 0xb6, 0x70, 0xab, 0x2c, 0xf0, 0xed, 0x11, 0x41, 0xfe, 0x5d, 0x3a, 0xc8, 0x53, 1574 0xcf, 0x3c, 0xd8, 0x4d, 0x04, 0x39, 0xb6, 0x57, 0x44, 0xf9, 0xb3, 0x77, 0x8c, 0x72, 0x8c, 0xae, 1575 0x26, 0x12, 0x18, 0xd3, 0xce, 0xbe, 0x91, 0xe0, 0x8e, 0xf8, 0xc9, 0x80, 0x0e, 0x60, 0xb7, 0xa5, 1576 0x34, 0x06, 0xcf, 0x54, 0x45, 0x7b, 0xd6, 0xe9, 0xf7, 0x94, 0x66, 0xbb, 0xd5, 0x56, 0x2e, 0xcb, 1577 0xdf, 0x41, 0xbb, 0x50, 0xba, 0x6a, 0x5c, 0x28, 0x57, 0xda, 0xa5, 0x32, 0x50, 0x9a, 0x83, 0x76, 1578 0xb7, 0x53, 0x96, 0xd0, 0x21, 0xec, 0xf5, 0x9f, 0x74, 0x07, 0x5a, 0xf3, 0x49, 0xa3, 0xf3, 0xb9, 1579 0x92, 0x60, 0xe5, 0xd0, 0x31, 0x1c, 0x29, 0xbf, 0xe8, 0x5d, 0xb5, 0x9b, 0xed, 0x81, 0xd6, 0xec, 1580 0x76, 0x06, 0x4a, 0x67, 0x90, 0xe0, 0xe7, 0x11, 0x82, 0x9d, 0x56, 0xa3, 0x99, 0x94, 0x29, 0x9c, 1581 0xf9, 0x80, 0xb2, 0xcf, 0x2f, 0xf4, 0x7d, 0x38, 0x49, 0x69, 0xd6, 0x9e, 0x76, 0x2f, 0xd3, 0xf6, 1582 0x6d, 0x43, 0x91, 0x99, 0x12, 0xb1, 0xca, 0x12, 0xda, 0x01, 0x68, 0xa9, 0x8d, 0xa7, 0x0a, 0x5f, 1583 0xe7, 0x22, 0xbf, 0x18, 0xbb, 0xd1, 0xb9, 0xd4, 0x12, 0x8c, 0xfc, 0x19, 0x05, 0x98, 0xdd, 0x5d, 1584 0xd0, 0x11, 0xec, 0x5f, 0xb5, 0xbf, 0x50, 0xae, 0xda, 0x4f, 0xba, 0xdd, 0xcb, 0x94, 0x86, 0xbb, 1585 0xb0, 0xfd, 0x5c, 0x51, 0x5f, 0x68, 0xcf, 0x3a, 0x6c, 0xcb, 0x8b, 0xb2, 0x84, 0xb6, 0x60, 0x63, 1586 0xba, 0xca, 0x45, 0xab, 0x5e, 0xb7, 0xdf, 0x6f, 0x5f, 0x5c, 0x29, 0xe5, 0x3c, 0x02, 0x58, 0x17, 1587 0x9c, 0x02, 0x2a, 0xc1, 0x26, 0x13, 0x15, 0x84, 0xb5, 0xf3, 0x3f, 0x4b, 0x50, 0x65, 0x29, 0x6a, 1588 0x27, 0x92, 0xd7, 0xc7, 0xfe, 0x2b, 0xdb, 0xc0, 0xd1, 0x3b, 0x7f, 0x7b, 0xae, 0x36, 0xd0, 0xd2, 1589 0xb7, 0xa4, 0x45, 0x7f, 0xaf, 0x8e, 0xee, 0xc7, 0xd2, 0x89, 0xdf, 0x6a, 0xb5, 0x6e, 0xfc, 0x5b, 1590 0x4d, 0x7e, 0xf0, 0xf5, 0x3f, 0xfe, 0xf3, 0x87, 0xdc, 0x7d, 0xb9, 0x3a, 0xff, 0x97, 0x2f, 0x78, 1591 0x24, 0x4a, 0x05, 0x3f, 0x92, 0xce, 0x2e, 0xfe, 0x27, 0xc1, 0x99, 0x41, 0x26, 0x4b, 0xda, 0x71, 1592 0x71, 0xff, 0x26, 0xe7, 0x7a, 0x51, 0x5b, 0xf4, 0xa4, 0x5f, 0xfe, 0x5c, 0x00, 0x59, 0x24, 0x7a, 1593 0x52, 0xd4, 0x88, 0x6f, 0xd5, 0x2d, 0xec, 0xb2, 0xa6, 0xa9, 0x73, 0x96, 0xee, 0xd9, 0xc1, 0x6d, 1594 0xff, 0x23, 0x1f, 0x67, 0x38, 0x7f, 0xca, 0x7d, 0xf8, 0x39, 0x47, 0x6e, 0x32, 0x13, 0x33, 0x76, 1595 0xd4, 0x9e, 0x3f, 0xbc, 0x88, 0x44, 0xdf, 0xc4, 0x1b, 0x5f, 0xb2, 0x8d, 0x2f, 0x33, 0x1b, 0x5f, 1596 0x3e, 0xe7, 0x3a, 0x86, 0xeb, 0xcc, 0xaa, 0x8f, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x8a, 1597 0xa0, 0x1c, 0x24, 0x15, 0x00, 0x00, 1598} 1599