diff --git a/examples/messaging_recvonly_sample/src/messaging_recvonly_sample.cpp b/examples/messaging_recvonly_sample/src/messaging_recvonly_sample.cpp index e6d88f4c..b5d85512 100644 --- a/examples/messaging_recvonly_sample/src/messaging_recvonly_sample.cpp +++ b/examples/messaging_recvonly_sample/src/messaging_recvonly_sample.cpp @@ -1,6 +1,3 @@ -// WebRTC -#include - // Sora #include @@ -197,8 +194,7 @@ int main(int argc, char* argv[]) { sora::SoraClientContextConfig context_config; context_config.use_audio_device = false; context_config.use_hardware_encoder = false; - auto env = webrtc::CreateEnvironment(); - auto context = sora::SoraClientContext::Create(context_config, env); + auto context = sora::SoraClientContext::Create(context_config); auto messaging_recvonly_sample = std::make_shared(context, config); diff --git a/examples/sdl_sample/src/sdl_sample.cpp b/examples/sdl_sample/src/sdl_sample.cpp index e7875a7b..20a404c9 100644 --- a/examples/sdl_sample/src/sdl_sample.cpp +++ b/examples/sdl_sample/src/sdl_sample.cpp @@ -1,6 +1,3 @@ -// WebRTC -#include - // Sora #include #include @@ -251,9 +248,8 @@ int main(int argc, char* argv[]) { rtc::LogMessage::LogThreads(); } - auto env = webrtc::CreateEnvironment(); auto context = - sora::SoraClientContext::Create(sora::SoraClientContextConfig(), env); + sora::SoraClientContext::Create(sora::SoraClientContextConfig()); auto sdlsample = std::make_shared(context, config); sdlsample->Run(); diff --git a/examples/sumomo/src/sumomo.cpp b/examples/sumomo/src/sumomo.cpp index 516d055e..702dbacc 100644 --- a/examples/sumomo/src/sumomo.cpp +++ b/examples/sumomo/src/sumomo.cpp @@ -1,6 +1,3 @@ -// WebRTC -#include - // Sora #include #include @@ -450,8 +447,7 @@ int main(int argc, char* argv[]) { context_config.use_hardware_encoder = *use_hardware_encoder; } context_config.openh264 = openh264; - auto env = webrtc::CreateEnvironment(); - auto context = sora::SoraClientContext::Create(context_config, env); + auto context = sora::SoraClientContext::Create(context_config); auto sumomo = std::make_shared(context, config); sumomo->Run(); diff --git a/include/sora/sora_client_context.h b/include/sora/sora_client_context.h index 18987dad..26e31ae8 100644 --- a/include/sora/sora_client_context.h +++ b/include/sora/sora_client_context.h @@ -2,6 +2,7 @@ #define SORA_SORA_CLIENT_CONTEXT_H_ // WebRTC +#include #include #include #include @@ -59,6 +60,13 @@ class SoraClientContext { const SoraClientContextConfig& config, webrtc::Environment& env); + static std::shared_ptr Create( + const SoraClientContextConfig& config) { + // TODO(enm10k): ライフタイム的には env をクラスで保持した方が良さそうだが、 Create が static なメソッドなので難しい気がする + auto env = webrtc::CreateEnvironment(); + return Create(SoraClientContextConfig(), env); + }; + ~SoraClientContext(); rtc::Thread* network_thread() const { return network_thread_.get(); } diff --git a/src/sora_client_context.cpp b/src/sora_client_context.cpp index dd9cc778..446b8134 100644 --- a/src/sora_client_context.cpp +++ b/src/sora_client_context.cpp @@ -5,7 +5,6 @@ #include #include #include -// #include #include #include #include