// Copyright 2022 LTN Global Communications, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. syntax = "proto3"; package tv.make.api; import "google/protobuf/timestamp.proto"; option go_package = "git.ltnglobal.com/make.tv/genproto/api;api"; message Stream { message Metadata { // The value of a metadata entry. message Value { oneof value_type { // The floating point value. double double_value = 1; // The integer value. int32 int_value = 2; // The string value. string string_value = 3; } } // Relative time when this metadata was recorded. // // Given a value of 1s it would mean that this metadata was recorded 1s after // the stream started. // // Output only. double time_seconds = 1; // Metadata entries at a given point in time. // // Well-known keys are: // // - make.tv/geo_lat, float // - make.tv/geo_lng, float // - make.tv/geo_display_name, string // - make.tv/video_bps, int // - make.tv/video_fps, float // - make.tv/video_width_pixels, int // - make.tv/video_height_pixels, int // - make.tv/video_codec, string // - make.tv/video_codec_details, string // - make.tv/audio_bps, int // - make.tv/audio_channel_count, int // - make.tv/audio_sample_rate_hz, int // - make.tv/audio_codec, string // - make.tv/audio_codec_details, string map entries = 2; } message Source { // The mime type of the source. string mime_type = 1; // The urls associated for this mime type with this stream. // // The URL may be chosen randomly from the list if more than one is given. repeated string urls = 2; } // The unique identifier of the stream. string id = 1; // The display name of the stream. string display_name = 2; // The unique identifier of the asset that's being produced by this stream. // // The asset identifier is not stable and might change during the life time of a stream. // Assets are periodically "split" so that they have a maximum duration of ca. 8h. string asset_id = 3; // The user generating this stream. // [optional] string publisher_id = 4; // This stream's input. string input_id = 5; // Metadata for this stream. // // Metadata may be appended using custom methods. // // Output only. repeated Metadata metadata = 6; // Persistent id across reconnects. // // The same client may produce may streams for one session identifier. // Stable session identifiers may be used to re-route streams to their previous // destination after signal loss. string session_id = 7; // Sources of the stream. repeated Source sources = 8; // When has this stream started. // // Output only. google.protobuf.Timestamp start_time = 9; // When has this stream stopped. // // Output only. google.protobuf.Timestamp stop_time = 10; }