Sync the bundled .proto definitions with greyshirtguy/ProPresenter7-Proto "Proto 19beta" (dumped from ProPresenter v19 beta build 318767123, 2025-06-05). This pulls in the schema for ProPresenter 19 features including new advertisement groups, custom options, media metadata, prop API v1, transport API, feature flags, PSB workspace, and zone definitions, plus refactored analytics tracked events. Strategy: merge rather than wholesale replace. All Proto 19beta files overwrite our existing copies so we pick up the field/message updates upstream made between 7.16.2 and 19beta. Eleven new .proto files are added: advertisementGroup, analyticsEdit, analyticsMediaManagement, analyticsPowerPoint, analyticsTrackedEvents, analyticsTriggerCue, customOptions, mediaMetadata, proCoreFeatureFlags, psbWorkspace, zone. Three google/protobuf well-known types (any, source_context, type) are added for completeness; only descriptor.proto is actually imported. Five proto files are kept that are not part of Proto 19beta upstream: calendar.proto and keyMappings.proto were extracted from PP binaries to support our parse-calendar and parse-key-mappings tools, while analyticsCapture/Update/WHMStore.proto are retained from the prior 7.16.2 set so existing generated descriptors keep loading. generated/ is regenerated from scratch with `protoc --php_out=generated --proto_path=proto *.proto` (protoc 29.3, google/protobuf PHP 4.33.5). The full PHPUnit suite (369 tests, 1298 assertions) still passes without any source changes - the new schema is wire-compatible with our reference files and high-level wrappers. Documentation references to "v7.16.2" are updated to "Proto 19beta" in LICENSE, doc/formats/pp_song_spec.md, pp_playlist_spec.md, pp_bundle_spec.md, and doc/internal/decisions.md.
651 lines
17 KiB
Protocol Buffer
Executable file
651 lines
17 KiB
Protocol Buffer
Executable file
syntax = "proto3";
|
|
|
|
package rv.data;
|
|
|
|
option cc_enable_arenas = true;
|
|
option csharp_namespace = "Pro.SerializationInterop.RVProtoData";
|
|
option swift_prefix = "RVData_";
|
|
|
|
import "alphaType.proto";
|
|
import "color.proto";
|
|
import "customOptions.proto";
|
|
import "digitalAudio.proto";
|
|
import "effects.proto";
|
|
import "fileProperties.proto";
|
|
import "font.proto";
|
|
import "intRange.proto";
|
|
import "url.proto";
|
|
import "uuid.proto";
|
|
|
|
message Graphics {
|
|
message Element {
|
|
enum FlipMode {
|
|
FLIP_MODE_NONE = 0;
|
|
FLIP_MODE_VERTICAL = 1;
|
|
FLIP_MODE_HORIZONTAL = 2;
|
|
FLIP_MODE_BOTH = 3;
|
|
}
|
|
|
|
.rv.data.UUID uuid = 1;
|
|
string name = 2;
|
|
.rv.data.Graphics.Rect bounds = 3;
|
|
double rotation = 4;
|
|
double opacity = 5;
|
|
bool locked = 6;
|
|
bool aspect_ratio_locked = 7;
|
|
.rv.data.Graphics.Path path = 8;
|
|
.rv.data.Graphics.Fill fill = 9;
|
|
.rv.data.Graphics.Stroke stroke = 10;
|
|
.rv.data.Graphics.Shadow shadow = 11;
|
|
.rv.data.Graphics.Feather feather = 12;
|
|
.rv.data.Graphics.Text text = 13;
|
|
.rv.data.Graphics.Element.FlipMode flipMode = 15;
|
|
bool hidden = 16;
|
|
oneof Mask {
|
|
.rv.data.Graphics.Text.LineFillMask text_line_mask = 14;
|
|
}
|
|
}
|
|
|
|
message Rect {
|
|
.rv.data.Graphics.Point origin = 1;
|
|
.rv.data.Graphics.Size size = 2;
|
|
}
|
|
|
|
message Point {
|
|
double x = 1;
|
|
double y = 2;
|
|
}
|
|
|
|
message Size {
|
|
double width = 1;
|
|
double height = 2;
|
|
}
|
|
|
|
message EdgeInsets {
|
|
double left = 1;
|
|
double right = 2;
|
|
double top = 3;
|
|
double bottom = 4;
|
|
}
|
|
|
|
message Path {
|
|
message BezierPoint {
|
|
.rv.data.Graphics.Point point = 1;
|
|
.rv.data.Graphics.Point q0 = 2;
|
|
.rv.data.Graphics.Point q1 = 3;
|
|
bool curved = 4;
|
|
}
|
|
|
|
message Shape {
|
|
message RoundedRectangle {
|
|
double roundness = 1;
|
|
}
|
|
|
|
message Arrow {
|
|
.rv.data.Graphics.Point corner = 1;
|
|
}
|
|
|
|
message Polygon {
|
|
uint32 number_sides = 1;
|
|
}
|
|
|
|
message Star {
|
|
double inner_radius = 1;
|
|
uint32 number_points = 2;
|
|
}
|
|
|
|
enum Type {
|
|
TYPE_UNKNOWN = 0;
|
|
TYPE_RECTANGLE = 1;
|
|
TYPE_ELLIPSE = 2;
|
|
TYPE_ISOSCELES_TRIANGLE = 3;
|
|
TYPE_RIGHT_TRIANGLE = 4;
|
|
TYPE_RHOMBUS = 5;
|
|
TYPE_STAR = 6;
|
|
TYPE_POLYGON = 7;
|
|
TYPE_CUSTOM = 8;
|
|
TYPE_RIGHT_ARROW = 9;
|
|
TYPE_DOUBLE_ARROW = 10;
|
|
TYPE_ROUNDED_RECTANGLE = 11;
|
|
}
|
|
|
|
.rv.data.Graphics.Path.Shape.Type type = 1;
|
|
oneof AdditionalData {
|
|
.rv.data.Graphics.Path.Shape.RoundedRectangle rounded_rectangle = 2;
|
|
.rv.data.Graphics.Path.Shape.Polygon polygon = 3;
|
|
.rv.data.Graphics.Path.Shape.Star star = 4;
|
|
.rv.data.Graphics.Path.Shape.Arrow arrow = 5;
|
|
}
|
|
}
|
|
|
|
bool closed = 1;
|
|
repeated .rv.data.Graphics.Path.BezierPoint points = 2;
|
|
.rv.data.Graphics.Path.Shape shape = 3;
|
|
}
|
|
|
|
message Fill {
|
|
bool enable = 4;
|
|
oneof FillType {
|
|
.rv.data.Color color = 1;
|
|
.rv.data.Graphics.Gradient gradient = 2;
|
|
.rv.data.Media media = 3;
|
|
.rv.data.Graphics.BackgroundEffect backgroundEffect = 5;
|
|
}
|
|
}
|
|
|
|
message BackgroundEffect {
|
|
reserved "layer";
|
|
reserved 1;
|
|
message BackgroundEffectBlur {
|
|
double saturation = 1;
|
|
double blur_amount = 2;
|
|
}
|
|
|
|
message BackgroundEffectInvert {
|
|
}
|
|
|
|
oneof EffectType {
|
|
.rv.data.Graphics.BackgroundEffect.BackgroundEffectBlur backgroundBlur = 2;
|
|
.rv.data.Graphics.BackgroundEffect.BackgroundEffectInvert backgroundInvert = 3;
|
|
}
|
|
}
|
|
|
|
message Gradient {
|
|
message ColorStop {
|
|
.rv.data.Color color = 1;
|
|
double position = 2;
|
|
double blend_point = 3;
|
|
}
|
|
|
|
enum Type {
|
|
TYPE_LINEAR = 0;
|
|
TYPE_RADIAL = 1;
|
|
TYPE_ANGLE = 2;
|
|
}
|
|
|
|
.rv.data.Graphics.Gradient.Type type = 1;
|
|
double angle = 2;
|
|
double length = 3;
|
|
repeated .rv.data.Graphics.Gradient.ColorStop stops = 4;
|
|
}
|
|
|
|
message Shadow {
|
|
enum Style {
|
|
STYLE_DROP = 0;
|
|
}
|
|
|
|
.rv.data.Graphics.Shadow.Style style = 1;
|
|
double angle = 2;
|
|
double offset = 3;
|
|
double radius = 4;
|
|
.rv.data.Color color = 5;
|
|
double opacity = 6;
|
|
bool enable = 7;
|
|
}
|
|
|
|
message Stroke {
|
|
enum Style {
|
|
STYLE_SOLID_LINE = 0;
|
|
STYLE_SQUARE_DASH = 1;
|
|
STYLE_SHORT_DASH = 2;
|
|
STYLE_LONG_DASH = 3;
|
|
}
|
|
|
|
.rv.data.Graphics.Stroke.Style style = 1;
|
|
double width = 2;
|
|
.rv.data.Color color = 3;
|
|
repeated double pattern = 4;
|
|
bool enable = 5;
|
|
}
|
|
|
|
message Feather {
|
|
enum Style {
|
|
STYLE_INSIDE = 0;
|
|
STYLE_CENTER = 1;
|
|
STYLE_OUTSIDE = 2;
|
|
}
|
|
|
|
.rv.data.Graphics.Feather.Style style = 1;
|
|
double radius = 2;
|
|
bool enable = 3;
|
|
}
|
|
|
|
message Text {
|
|
reserved 1;
|
|
reserved 2;
|
|
message LineFillMask {
|
|
enum LineMaskStyle {
|
|
LINE_MASK_STYLE_FULL_WIDTH = 0;
|
|
LINE_MASK_STYLE_LINE_WIDTH = 1;
|
|
LINE_MASK_STYLE_MAX_LINE_WIDTH = 2;
|
|
}
|
|
|
|
bool enabled = 1;
|
|
double height_offset = 2;
|
|
double vertical_offset = 3;
|
|
.rv.data.Graphics.Text.LineFillMask.LineMaskStyle mask_style = 4;
|
|
double width_offset = 5;
|
|
double horizontal_offset = 6;
|
|
}
|
|
|
|
message GradientFill {
|
|
.rv.data.Graphics.Gradient gradient = 1;
|
|
bool stretch_to_document_bounds = 2;
|
|
}
|
|
|
|
message CutOutFill {
|
|
}
|
|
|
|
message MediaFill {
|
|
.rv.data.Media media = 1;
|
|
}
|
|
|
|
message ChordPro {
|
|
enum Notation {
|
|
NOTATION_CHORDS = 0;
|
|
NOTATION_NUMBERS = 1;
|
|
NOTATION_NUMERALS = 2;
|
|
NOTATION_DO_RE_MI = 3;
|
|
}
|
|
|
|
bool enabled = 1;
|
|
.rv.data.Graphics.Text.ChordPro.Notation notation = 2;
|
|
.rv.data.Color color = 3;
|
|
}
|
|
|
|
message Attributes {
|
|
message Underline {
|
|
enum Style {
|
|
STYLE_NONE = 0;
|
|
STYLE_SINGLE = 1;
|
|
STYLE_THICK = 2;
|
|
STYLE_DOUBLE = 3;
|
|
}
|
|
|
|
enum Pattern {
|
|
PATTERN_SOLID = 0;
|
|
PATTERN_DOT = 1;
|
|
PATTERN_DASH = 2;
|
|
PATTERN_DASH_DOT = 3;
|
|
PATTERN_DASH_DOT_DOT = 4;
|
|
}
|
|
|
|
.rv.data.Graphics.Text.Attributes.Underline.Style style = 1;
|
|
.rv.data.Graphics.Text.Attributes.Underline.Pattern pattern = 2;
|
|
bool by_word = 3;
|
|
}
|
|
|
|
message Paragraph {
|
|
message TabStop {
|
|
double location = 1;
|
|
.rv.data.Graphics.Text.Attributes.Alignment alignment = 2;
|
|
}
|
|
|
|
message TextList {
|
|
enum NumberType {
|
|
NUMBER_TYPE_BOX = 0;
|
|
NUMBER_TYPE_CHECK = 1;
|
|
NUMBER_TYPE_CIRCLE = 2;
|
|
NUMBER_TYPE_DIAMOND = 3;
|
|
NUMBER_TYPE_DISC = 4;
|
|
NUMBER_TYPE_HYPHEN = 5;
|
|
NUMBER_TYPE_SQUARE = 6;
|
|
NUMBER_TYPE_DECIMAL = 7;
|
|
NUMBER_TYPE_LOWERCASE_ALPHA = 8;
|
|
NUMBER_TYPE_UPPERCASE_ALPHA = 9;
|
|
NUMBER_TYPE_LOWERCASE_ROMAN = 10;
|
|
NUMBER_TYPE_UPPERCASE_ROMAN = 11;
|
|
}
|
|
|
|
bool is_enabled = 1;
|
|
.rv.data.Graphics.Text.Attributes.Paragraph.TextList.NumberType number_type = 2;
|
|
string prefix = 3;
|
|
string postfix = 4;
|
|
int32 starting_number = 5;
|
|
}
|
|
|
|
.rv.data.Graphics.Text.Attributes.Alignment alignment = 1;
|
|
double first_line_head_indent = 2;
|
|
double head_indent = 3;
|
|
double tail_indent = 4;
|
|
double line_height_multiple = 5;
|
|
double maximum_line_height = 6;
|
|
double minimum_line_height = 7;
|
|
double line_spacing = 8;
|
|
double paragraph_spacing = 9;
|
|
double paragraph_spacing_before = 10;
|
|
repeated .rv.data.Graphics.Text.Attributes.Paragraph.TabStop tab_stops = 11;
|
|
double default_tab_interval = 12;
|
|
.rv.data.Graphics.Text.Attributes.Paragraph.TextList text_list = 13;
|
|
repeated .rv.data.Graphics.Text.Attributes.Paragraph.TextList text_lists = 14;
|
|
}
|
|
|
|
message CustomAttribute {
|
|
.rv.data.IntRange range = 1;
|
|
oneof Attribute {
|
|
.rv.data.Graphics.Text.Attributes.Capitalization capitalization = 2;
|
|
double original_font_size = 3;
|
|
double font_scale_factor = 4;
|
|
.rv.data.Graphics.Text.GradientFill text_gradient_fill = 5;
|
|
bool should_preserve_foreground_color = 6;
|
|
string chord = 7;
|
|
.rv.data.Graphics.Text.CutOutFill cut_out_fill = 8;
|
|
.rv.data.Graphics.Text.MediaFill media_fill = 9;
|
|
.rv.data.Graphics.BackgroundEffect background_effect = 10;
|
|
.rv.data.Graphics.Text.Attributes.CharacterSizeMode character_size_mode = 11;
|
|
}
|
|
}
|
|
|
|
enum Capitalization {
|
|
CAPITALIZATION_NONE = 0;
|
|
CAPITALIZATION_ALL_CAPS = 1;
|
|
CAPITALIZATION_SMALL_CAPS = 2;
|
|
CAPITALIZATION_TITLE_CASE = 3;
|
|
CAPITALIZATION_START_CASE = 4;
|
|
}
|
|
|
|
enum Alignment {
|
|
ALIGNMENT_LEFT = 0;
|
|
ALIGNMENT_RIGHT = 1;
|
|
ALIGNMENT_CENTER = 2;
|
|
ALIGNMENT_JUSTIFIED = 3;
|
|
ALIGNMENT_NATURAL = 4;
|
|
}
|
|
|
|
enum CharacterSizeMode {
|
|
CHARACTER_SIZE_MODE_NORMAL = 0;
|
|
CHARACTER_SIZE_MODE_SCALED_BY_DOCUMENT_HEIGHT = 1;
|
|
CHARACTER_SIZE_MODE_SCALED_BY_DOCUMENT_WIDTH = 2;
|
|
}
|
|
|
|
enum LigatureStyle {
|
|
LIGATURE_STYLE_DEFAULT = 0;
|
|
LIGATURE_STYLE_NONE = 1;
|
|
}
|
|
|
|
.rv.data.Font font = 1;
|
|
.rv.data.Graphics.Text.Attributes.Capitalization capitalization = 2;
|
|
.rv.data.Graphics.Text.Attributes.Underline underline_style = 4;
|
|
.rv.data.Color underline_color = 5;
|
|
.rv.data.Graphics.Text.Attributes.Paragraph paragraph_style = 6;
|
|
double kerning = 7;
|
|
int32 superscript = 8;
|
|
.rv.data.Graphics.Text.Attributes.Underline strikethrough_style = 9;
|
|
.rv.data.Color strikethrough_color = 10;
|
|
double stroke_width = 11;
|
|
.rv.data.Color stroke_color = 12;
|
|
repeated .rv.data.Graphics.Text.Attributes.CustomAttribute custom_attributes = 13;
|
|
.rv.data.Color background_color = 15;
|
|
.rv.data.Graphics.Text.Attributes.LigatureStyle ligature_style = 19;
|
|
oneof fill {
|
|
.rv.data.Color text_solid_fill = 3;
|
|
.rv.data.Graphics.Text.GradientFill text_gradient_fill = 14;
|
|
.rv.data.Graphics.Text.CutOutFill cut_out_fill = 16;
|
|
.rv.data.Graphics.Text.MediaFill media_fill = 17;
|
|
.rv.data.Graphics.BackgroundEffect background_effect = 18;
|
|
}
|
|
}
|
|
|
|
message AlternateText {
|
|
string key = 1;
|
|
oneof ContentType {
|
|
string plain_text = 2;
|
|
}
|
|
}
|
|
|
|
enum VerticalAlignment {
|
|
VERTICAL_ALIGNMENT_TOP = 0;
|
|
VERTICAL_ALIGNMENT_MIDDLE = 1;
|
|
VERTICAL_ALIGNMENT_BOTTOM = 2;
|
|
}
|
|
|
|
enum ScaleBehavior {
|
|
SCALE_BEHAVIOR_NONE = 0;
|
|
SCALE_BEHAVIOR_ADJUST_CONTAINER_HEIGHT = 1;
|
|
SCALE_BEHAVIOR_SCALE_FONT_DOWN = 2;
|
|
SCALE_BEHAVIOR_SCALE_FONT_UP = 3;
|
|
SCALE_BEHAVIOR_SCALE_FONT_UP_DOWN = 4;
|
|
}
|
|
|
|
enum Transform {
|
|
TRANSFORM_NONE = 0;
|
|
TRANSFORM_SINGLE_LINE = 1;
|
|
TRANSFORM_ONE_WORD_PER_LINE = 2;
|
|
TRANSFORM_ONE_CHARACTER_PER_LINE = 3;
|
|
TRANSFORM_REPLACE_LINE_RETURNS = 4;
|
|
}
|
|
|
|
.rv.data.Graphics.Text.Attributes attributes = 3;
|
|
.rv.data.Graphics.Shadow shadow = 4;
|
|
bytes rtf_data = 5;
|
|
.rv.data.Graphics.Text.VerticalAlignment vertical_alignment = 6;
|
|
.rv.data.Graphics.Text.ScaleBehavior scale_behavior = 7;
|
|
.rv.data.Graphics.EdgeInsets margins = 8;
|
|
bool is_superscript_standardized = 9;
|
|
.rv.data.Graphics.Text.Transform transform = 10;
|
|
string transformDelimiter = 11;
|
|
.rv.data.Graphics.Text.ChordPro chord_pro = 12;
|
|
repeated .rv.data.Graphics.Text.AlternateText alternate_texts = 13;
|
|
}
|
|
|
|
}
|
|
|
|
message Media {
|
|
message Metadata {
|
|
string manufacture_name = 1;
|
|
.rv.data.URL manufacture_url = 2;
|
|
string information = 3;
|
|
string artist = 4;
|
|
string format = 5;
|
|
}
|
|
|
|
message VideoDevice {
|
|
message AirCast {
|
|
string service_name = 1;
|
|
string password = 2;
|
|
bool password_enabled = 3;
|
|
}
|
|
|
|
enum Type {
|
|
TYPE_GENERIC = 0;
|
|
TYPE_DIRECTSHOW = 1;
|
|
TYPE_BLACKMAGIC = 2;
|
|
TYPE_AJA = 3;
|
|
TYPE_AV = 4;
|
|
TYPE_SYPHON = 5;
|
|
TYPE_NDI = 6;
|
|
TYPE_BLUEFISH = 7;
|
|
TYPE_AIRCAST = 8;
|
|
}
|
|
|
|
.rv.data.Media.VideoDevice.Type type = 1;
|
|
string name = 2;
|
|
string unique_id = 3;
|
|
string model_id = 4;
|
|
uint32 format_index = 5;
|
|
.rv.data.DigitalAudio.Device.Routing audio_routing = 6;
|
|
.rv.data.Media.VideoDevice.AirCast aircast = 7;
|
|
}
|
|
|
|
message AudioDevice {
|
|
string name = 1;
|
|
string unique_id = 2;
|
|
string model_id = 3;
|
|
uint32 channel_count = 4;
|
|
}
|
|
|
|
message Audio {
|
|
message Channel {
|
|
message Output {
|
|
reserved 1;
|
|
int32 channel_index = 2;
|
|
}
|
|
|
|
uint32 index = 1;
|
|
bool muted = 2;
|
|
double volume = 3;
|
|
bool compress_limit = 4;
|
|
repeated .rv.data.Media.Audio.Channel.Output outputs = 5;
|
|
}
|
|
|
|
}
|
|
|
|
message AudioProperties {
|
|
double volume = 1;
|
|
repeated .rv.data.Media.Audio.Channel audio_channels = 2;
|
|
bool is_custom_mapping = 3;
|
|
}
|
|
|
|
message TransportProperties {
|
|
reserved "start_ramp_time";
|
|
reserved "end_ramp_time";
|
|
reserved "fade_start_position";
|
|
reserved 4;
|
|
reserved 5;
|
|
reserved 6;
|
|
enum PlaybackBehavior {
|
|
PLAYBACK_BEHAVIOR_STOP = 0;
|
|
PLAYBACK_BEHAVIOR_LOOP = 1;
|
|
PLAYBACK_BEHAVIOR_LOOP_FOR_COUNT = 2;
|
|
PLAYBACK_BEHAVIOR_LOOP_FOR_TIME = 3;
|
|
}
|
|
|
|
enum RetriggerSetting {
|
|
RETRIGGER_SETTING_UNSET = 0;
|
|
RETRIGGER_SETTING_ALWAYS = 1;
|
|
RETRIGGER_SETTING_NEVER = 2;
|
|
RETRIGGER_SETTING_AUTOMATIC = 3;
|
|
}
|
|
|
|
double play_rate = 1;
|
|
double in_point = 2;
|
|
double out_point = 3;
|
|
double fade_in_duration = 7;
|
|
double fade_out_duration = 8;
|
|
bool should_fade_in = 9;
|
|
bool should_fade_out = 10;
|
|
double end_point = 11;
|
|
.rv.data.Media.TransportProperties.PlaybackBehavior playback_behavior = 12;
|
|
double loop_time = 13;
|
|
uint32 times_to_loop = 14;
|
|
.rv.data.Media.TransportProperties.RetriggerSetting retrigger = 15;
|
|
}
|
|
|
|
message DrawingProperties {
|
|
enum NativeRotationType {
|
|
NATIVE_ROTATION_TYPE_ROTATE_STANDARD = 0;
|
|
NATIVE_ROTATION_TYPE_ROTATE_90 = 90;
|
|
NATIVE_ROTATION_TYPE_ROTATE_180 = 180;
|
|
NATIVE_ROTATION_TYPE_ROTATE_270 = 270;
|
|
}
|
|
|
|
.rv.data.Media.ScaleBehavior scale_behavior = 1;
|
|
bool is_blurred = 16;
|
|
.rv.data.Media.ScaleAlignment scale_alignment = 2;
|
|
bool flipped_horizontally = 3;
|
|
bool flipped_vertically = 4;
|
|
.rv.data.Graphics.Size natural_size = 5;
|
|
double custom_image_rotation = 6;
|
|
.rv.data.Graphics.Rect custom_image_bounds = 7;
|
|
bool custom_image_aspect_locked = 8;
|
|
bool alpha_inverted = 9;
|
|
.rv.data.Media.DrawingProperties.NativeRotationType native_rotation = 10;
|
|
.rv.data.UUID selected_effect_preset_uuid = 11;
|
|
repeated .rv.data.Effect effects = 12;
|
|
bool crop_enable = 13;
|
|
.rv.data.Graphics.EdgeInsets crop_insets = 14;
|
|
.rv.data.AlphaType alpha_type = 15;
|
|
}
|
|
|
|
message VideoProperties {
|
|
enum EndBehavior {
|
|
END_BEHAVIOR_STOP = 0;
|
|
END_BEHAVIOR_STOP_ON_BLACK = 1;
|
|
END_BEHAVIOR_STOP_ON_CLEAR = 2;
|
|
END_BEHAVIOR_FADE_TO_BLACK = 3;
|
|
END_BEHAVIOR_FADE_TO_CLEAR = 4;
|
|
}
|
|
|
|
enum FieldType {
|
|
FIELD_TYPE_UNKNOWN = 0;
|
|
FIELD_TYPE_PROGRESSIVE = 1;
|
|
FIELD_TYPE_INTERLACED_UPPER_FIRST = 2;
|
|
FIELD_TYPE_INTERLACED_LOWER_FIRST = 3;
|
|
}
|
|
|
|
double frame_rate = 1;
|
|
.rv.data.Media.VideoProperties.FieldType field_type = 2;
|
|
double thumbnail_position = 3;
|
|
.rv.data.Media.VideoProperties.EndBehavior end_behavior = 4;
|
|
bool soft_loop = 5;
|
|
double soft_loop_duration = 6;
|
|
}
|
|
|
|
message LiveVideoProperties {
|
|
.rv.data.Media.VideoDevice video_device = 1;
|
|
.rv.data.Media.AudioDevice audio_device = 2;
|
|
int32 live_video_index = 3;
|
|
}
|
|
|
|
message AudioTypeProperties {
|
|
.rv.data.Media.AudioProperties audio = 1;
|
|
.rv.data.Media.TransportProperties transport = 2;
|
|
.rv.data.FileProperties file = 3;
|
|
}
|
|
|
|
message ImageTypeProperties {
|
|
.rv.data.Media.DrawingProperties drawing = 1;
|
|
.rv.data.FileProperties file = 2;
|
|
}
|
|
|
|
message VideoTypeProperties {
|
|
.rv.data.Media.DrawingProperties drawing = 1;
|
|
.rv.data.Media.AudioProperties audio = 2;
|
|
.rv.data.Media.TransportProperties transport = 3;
|
|
.rv.data.Media.VideoProperties video = 4;
|
|
.rv.data.FileProperties file = 5;
|
|
}
|
|
|
|
message LiveVideoTypeProperties {
|
|
.rv.data.Media.DrawingProperties drawing = 1;
|
|
.rv.data.Media.AudioProperties audio = 2;
|
|
.rv.data.Media.LiveVideoProperties live_video = 3;
|
|
}
|
|
|
|
message WebContentTypeProperties {
|
|
.rv.data.Media.DrawingProperties drawing = 1;
|
|
.rv.data.URL url = 2;
|
|
}
|
|
|
|
enum ScaleBehavior {
|
|
SCALE_BEHAVIOR_FIT = 0;
|
|
SCALE_BEHAVIOR_FILL = 1;
|
|
SCALE_BEHAVIOR_STRETCH = 2;
|
|
SCALE_BEHAVIOR_CUSTOM = 3;
|
|
}
|
|
|
|
enum ScaleAlignment {
|
|
SCALE_ALIGNMENT_MIDDLE_CENTER = 0;
|
|
SCALE_ALIGNMENT_TOP_LEFT = 1;
|
|
SCALE_ALIGNMENT_TOP_CENTER = 2;
|
|
SCALE_ALIGNMENT_TOP_RIGHT = 3;
|
|
SCALE_ALIGNMENT_MIDDLE_RIGHT = 4;
|
|
SCALE_ALIGNMENT_BOTTOM_RIGHT = 5;
|
|
SCALE_ALIGNMENT_BOTTOM_CENTER = 6;
|
|
SCALE_ALIGNMENT_BOTTOM_LEFT = 7;
|
|
SCALE_ALIGNMENT_MIDDLE_LEFT = 8;
|
|
}
|
|
|
|
.rv.data.UUID uuid = 1;
|
|
.rv.data.URL url = 2;
|
|
.rv.data.Media.Metadata metadata = 3;
|
|
oneof TypeProperties {
|
|
.rv.data.Media.AudioTypeProperties audio = 4;
|
|
.rv.data.Media.ImageTypeProperties image = 5;
|
|
.rv.data.Media.VideoTypeProperties video = 6;
|
|
.rv.data.Media.LiveVideoTypeProperties live_video = 7;
|
|
.rv.data.Media.WebContentTypeProperties web_content = 8;
|
|
}
|
|
}
|
|
|