/* live_streaming.proto/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). */ /* This copyright was auto-generated on Mon Nov 4 18:00:55 UTC 2024 */ /*********************************************************************************************************************** * * This file is automatically generated!!! Do not modify manually. * **********************************************************************************************************************/ /** * Defines the structure of protobuf messages for working with Live Streams */ syntax = "proto2"; package open_gopro; enum EnumLens { LENS_WIDE = 0; LENS_LINEAR = 4; LENS_SUPERVIEW = 3; } enum EnumLiveStreamError { LIVE_STREAM_ERROR_NONE = 0; // No error (success) LIVE_STREAM_ERROR_NETWORK = 1; // General network error during the stream LIVE_STREAM_ERROR_CREATESTREAM = 2; // Startup error: bad URL or valid with live stream server LIVE_STREAM_ERROR_OUTOFMEMORY = 3; // Not enough memory on camera to complete task LIVE_STREAM_ERROR_INPUTSTREAM = 4; // Failed to get stream from low level camera system LIVE_STREAM_ERROR_INTERNET = 5; // No internet access detected on startup of streamer LIVE_STREAM_ERROR_OSNETWORK = 6; // Error occured in linux networking stack. Usually means the server closed the connection LIVE_STREAM_ERROR_SELECTEDNETWORKTIMEOUT = 7; // Timed out attemping to connect to the wifi network when attemping live stream LIVE_STREAM_ERROR_SSL_HANDSHAKE = 8; // SSL handshake failed (commonly caused due to incorrect time / time zone) LIVE_STREAM_ERROR_CAMERA_BLOCKED = 9; // Low level camera system rejected attempt to start live stream LIVE_STREAM_ERROR_UNKNOWN = 10; // Unknown LIVE_STREAM_ERROR_SD_CARD_FULL = 40; // Can not perform livestream because sd card is full LIVE_STREAM_ERROR_SD_CARD_REMOVED = 41; // Livestream stopped because sd card was removed } enum EnumLiveStreamStatus { LIVE_STREAM_STATE_IDLE = 0; // Initial status. Livestream has not yet been configured LIVE_STREAM_STATE_CONFIG = 1; // Livestream is being configured LIVE_STREAM_STATE_READY = 2; // Livestream has finished configuration and is ready to start streaming LIVE_STREAM_STATE_STREAMING = 3; // Livestream is actively streaming LIVE_STREAM_STATE_COMPLETE_STAY_ON = 4; // Live stream is exiting. No errors occured. LIVE_STREAM_STATE_FAILED_STAY_ON = 5; // Live stream is exiting. An error occurred. LIVE_STREAM_STATE_RECONNECTING = 6; // An error occurred during livestream and stream is attempting to reconnect. LIVE_STREAM_STATE_UNAVAILABLE = 7; // Live stream setup is unavailable due to camera lens configuration } enum EnumRegisterLiveStreamStatus { REGISTER_LIVE_STREAM_STATUS_STATUS = 1; REGISTER_LIVE_STREAM_STATUS_ERROR = 2; REGISTER_LIVE_STREAM_STATUS_MODE = 3; REGISTER_LIVE_STREAM_STATUS_BITRATE = 4; } enum EnumWindowSize { WINDOW_SIZE_480 = 4; WINDOW_SIZE_720 = 7; WINDOW_SIZE_1080 = 12; } /** * Live Stream status * * Sent either: * * - As a synchronous response to initial @ref RequestGetLiveStreamStatus * - As an asynchronous notifications registered for via @ref RequestGetLiveStreamStatus */ message NotifyLiveStreamStatus { optional EnumLiveStreamStatus live_stream_status = 1; // Live stream status optional EnumLiveStreamError live_stream_error = 2; // Live stream error optional bool live_stream_encode = 3; // Is live stream encoding? optional int32 live_stream_bitrate = 4; // Live stream bitrate (Kbps) repeated EnumWindowSize live_stream_window_size_supported_array = 5; // Set of currently supported resolutions optional bool live_stream_encode_supported = 6; // Does the camera support encoding while live streaming? optional bool live_stream_max_lens_unsupported = 7; // Is the Max Lens feature NOT supported? optional int32 live_stream_minimum_stream_bitrate = 8; // Camera-defined minimum bitrate (static) (Kbps) optional int32 live_stream_maximum_stream_bitrate = 9; // Camera-defined maximum bitrate (static) (Kbps) optional bool live_stream_lens_supported = 10; // Does camera support setting lens for live streaming? repeated EnumLens live_stream_lens_supported_array = 11; // Set of currently supported FOV options optional bool live_stream_protune_supported = 13; // Does the camera support live stream protune settings } /** * Get the current livestream status (and optionally register for future status changes) * * Response: @ref NotifyLiveStreamStatus * * Notification: @ref NotifyLiveStreamStatus */ message RequestGetLiveStreamStatus { repeated EnumRegisterLiveStreamStatus register_live_stream_status = 1; // Array of live stream statuses to be notified about repeated EnumRegisterLiveStreamStatus unregister_live_stream_status = 2; // Array of live stream statuses to stop being notified about } /** * Configure Live Streaming * * Response: @ref ResponseGeneric */ message RequestSetLiveStreamMode { optional string url = 1; // RTMP(S) URL used for live stream optional bool encode = 2; // Save media to sdcard while streaming? /** * Resolution to use for live stream * * The set of supported resolutions is only available from the `live_stream_window_size_supported_array` * in @ref NotifyLiveStreamStatus. */ optional EnumWindowSize window_size = 3; optional bytes cert = 6; // Certificate for servers that require it in PEM format optional int32 minimum_bitrate = 7; // Minimum desired bitrate (may or may not be honored) optional int32 maximum_bitrate = 8; // Maximum desired bitrate (may or may not be honored) optional int32 starting_bitrate = 9; // Starting bitrate /** * Lens to use for live stream * * The set of supported lenses is only available from the `live_stream_lens_supported_array` * in @ref NotifyLiveStreamStatus. */ optional EnumLens lens = 10; }