1#ifndef SKYWAY_CONTEXT_HPP_
2#define SKYWAY_CONTEXT_HPP_
6#include <skyway/core/context.hpp>
7#include <skyway/core/interface/remote_member_plugin.hpp>
8#include <skyway/global/error.hpp>
9#include <skyway/global/logger.hpp>
10#include <skyway/network/interface/http_client.hpp>
11#include <skyway/network/interface/websocket_client.hpp>
12#include "skyway/media/codec/video_codec.hpp"
13#include "skyway/media/device_manager.hpp"
19class PassthroughVideoEncoderFactoryTest;
27 static const unsigned int kVersionMajor = 4;
28 static const unsigned int kVersionMinor = 1;
29 static const unsigned int kVersionPatch = 1;
66 std::optional<std::string> domain;
67 std::optional<bool> secure;
72 std::optional<std::string> domain;
73 std::optional<int> version;
74 std::optional<bool> secure;
75 webrtc::PeerConnectionInterface::IceServers custom_ice_servers;
80 std::optional<std::string> domain;
81 std::optional<bool> secure;
86 std::optional<std::string> domain;
87 std::optional<bool> secure;
92 std::optional<int> timeout;
93 std::optional<domain::TurnPolicy> policy;
100 [[deprecated]] std::optional<int> remind_time_sec;
101 std::optional<int> update_remind_sec;
131 std::shared_ptr<media::codec::VideoCodec>
codec;
145 IceParams ice_params;
148 RtcConfig rtc_config;
157 skyway::media::AudioBackendType::kPulseAudio;
171 std::optional<std::string> domain;
172 std::optional<int> version;
173 std::optional<bool> secure;
184 static bool Setup(
const std::string& token,
195 const std::string& secret_key,
216 static std::shared_ptr<media::codec::VideoCodec> GetRtpVideoInputCodecWithValidate();
220 class CoreEventListenerAdapter :
public core::Context::EventListener {
222 CoreEventListenerAdapter();
224 void OnReconnectStart()
override;
225 void OnReconnectSuccess()
override;
226 void OnFatalError(
const global::Error& error)
override;
232 class CoreAuthTokenListenerAdapter :
public token::interface::AuthTokenManager::Listener {
234 CoreAuthTokenListenerAdapter();
236 void OnTokenRefreshingNeeded()
override;
237 void OnTokenExpired()
override;
243 static core::TurnPolicy ConvertToCoreTurnPolicy(domain::TurnPolicy policy);
244 static core::ContextOptions ConvertToCoreContextOptions(
const SkyWayOptions& options);
246 inline static SkyWayOptions::Rtp rtp_;
247 static std::mutex core_event_listener_mutex_;
248 static CoreEventListenerAdapter core_event_listener_adapter_;
249 static std::mutex core_auth_token_listener_mutex_;
250 static CoreAuthTokenListenerAdapter core_auth_token_listener_adapter_;
254 friend class media::rtp::PassthroughVideoEncoderFactoryTest;
AuthTokenのイベントリスナ
Definition context.hpp:49
virtual void OnTokenRefreshingNeeded()
設定したリマインド時間に応じてコールされるリマインダコールバック関数
Definition context.hpp:54
virtual void OnTokenExpired()
トークンが失効した時にコールされるコールバック関数
Definition context.hpp:57
Contextのイベントリスナ
Definition context.hpp:32
virtual void OnFatalError(const global::Error &error)=0
回復不能なエラーが発生した時にコールされます。
virtual void OnReconnectStart()=0
再接続処理が開始した時にコールされます。
virtual void OnReconnectSuccess()=0
再接続が成功した時にコールされます。
アプリケーションでSkyWay全体の設定、取得を行うStaticなコンテキスト
Definition context.hpp:25
static std::string GetVersionString()
SkyWay Linux SDKのバージョンを取得します。
static bool UpdateAuthToken(const std::string &token)
AuthTokenを更新します。
static bool SetupForDev(const std::string &app_id, const std::string &secret_key, EventListener *listener, const SkyWayOptions &options)
Contextを初期化します。このメソッドは動作確認用です。
static void Dispose()
SkyWayを終了し、Contextを破棄します。
static bool Setup(const std::string &token, EventListener *listener, const SkyWayOptions &options)
Contextを初期化します。
LogLevel
ログレベル
Definition domain.hpp:25
RTP映像入力に関する設定
Definition context.hpp:112
bool enabled
RTP映像入力を有効にするかどうか
Definition context.hpp:120
std::shared_ptr< media::codec::VideoCodec > codec
RTP映像入力のコーデック
Definition context.hpp:131
RTP入力に関する設定
Definition context.hpp:110
Video video
RTP映像入力に関する設定
Definition context.hpp:135
SkyWayのRTPに関する設定
Definition context.hpp:108
Input input
RTP入力に関する設定
Definition context.hpp:138
トークンに関する設定
Definition context.hpp:99
SkyWayの利用に関する設定
Definition context.hpp:61
bool enable_webrtc_log
WebRTCのログを有効にします
Definition context.hpp:153
skyway::media::AudioProcessingOptions audio_processing
音声処理に関する設定
Definition context.hpp:163
domain::LogLevel log_level
ログレベル
Definition context.hpp:141
Rtp rtp
RTPに関する設定
Definition context.hpp:166
skyway::media::AudioBackendType audio_backend
オーディオバックエンドを指定します
Definition context.hpp:156