| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 | /* live_streaming.proto/Open GoPro, Version 2.0 (C) Copyright 2021 GoPro, Inc. (http://gopro.com/OpenGoPro). *//* This copyright was auto-generated on Wed Sep 11 20:31:30 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;}
 |