diff options
Diffstat (limited to 'webrtc/modules/video_render')
30 files changed, 122 insertions, 107 deletions
diff --git a/webrtc/modules/video_render/BUILD.gn b/webrtc/modules/video_render/BUILD.gn index 80f23870aa..0771bd7080 100644 --- a/webrtc/modules/video_render/BUILD.gn +++ b/webrtc/modules/video_render/BUILD.gn @@ -13,8 +13,8 @@ source_set("video_render_module") { "external/video_render_external_impl.cc", "external/video_render_external_impl.h", "i_video_render.h", - "include/video_render.h", - "include/video_render_defines.h", + "video_render.h", + "video_render_defines.h", "video_render_impl.h", ] diff --git a/webrtc/modules/video_render/android/video_render_android_impl.cc b/webrtc/modules/video_render/android/video_render_android_impl.cc index c647501963..9affb23d99 100644 --- a/webrtc/modules/video_render/android/video_render_android_impl.cc +++ b/webrtc/modules/video_render/android/video_render_android_impl.cc @@ -141,18 +141,13 @@ int32_t VideoRenderAndroid::StartRender() { return 0; } - _javaRenderThread = ThreadWrapper::CreateThread(JavaRenderThreadFun, this, - "AndroidRenderThread"); + _javaRenderThread.reset(new rtc::PlatformThread(JavaRenderThreadFun, this, + "AndroidRenderThread")); - if (_javaRenderThread->Start()) - WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, - "%s: thread started", __FUNCTION__); - else { - WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id, - "%s: Could not start send thread", __FUNCTION__); - return -1; - } - _javaRenderThread->SetPriority(kRealtimePriority); + _javaRenderThread->Start(); + WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s: thread started", + __FUNCTION__); + _javaRenderThread->SetPriority(rtc::kRealtimePriority); return 0; } diff --git a/webrtc/modules/video_render/android/video_render_android_impl.h b/webrtc/modules/video_render/android/video_render_android_impl.h index 34950db7d1..e5b7de4643 100644 --- a/webrtc/modules/video_render/android/video_render_android_impl.h +++ b/webrtc/modules/video_render/android/video_render_android_impl.h @@ -15,8 +15,8 @@ #include <map> +#include "webrtc/base/platform_thread.h" #include "webrtc/modules/video_render/i_video_render.h" -#include "webrtc/system_wrappers/include/thread_wrapper.h" namespace webrtc { @@ -144,7 +144,8 @@ class VideoRenderAndroid: IVideoRender { EventWrapper& _javaRenderEvent; int64_t _lastJavaRenderEvent; JNIEnv* _javaRenderJniEnv; // JNIEnv for the java render thread. - rtc::scoped_ptr<ThreadWrapper> _javaRenderThread; + // TODO(pbos): Remove scoped_ptr and use the member directly. + rtc::scoped_ptr<rtc::PlatformThread> _javaRenderThread; }; } // namespace webrtc diff --git a/webrtc/modules/video_render/android/video_render_android_native_opengl2.h b/webrtc/modules/video_render/android/video_render_android_native_opengl2.h index b748b2dd47..8be247b834 100644 --- a/webrtc/modules/video_render/android/video_render_android_native_opengl2.h +++ b/webrtc/modules/video_render/android/video_render_android_native_opengl2.h @@ -15,7 +15,7 @@ #include "webrtc/modules/video_render/android/video_render_android_impl.h" #include "webrtc/modules/video_render/android/video_render_opengles20.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" namespace webrtc { diff --git a/webrtc/modules/video_render/android/video_render_android_surface_view.h b/webrtc/modules/video_render/android/video_render_android_surface_view.h index 480e8b5106..0f029b54f3 100644 --- a/webrtc/modules/video_render/android/video_render_android_surface_view.h +++ b/webrtc/modules/video_render/android/video_render_android_surface_view.h @@ -14,7 +14,7 @@ #include <jni.h> #include "webrtc/modules/video_render/android/video_render_android_impl.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" namespace webrtc { diff --git a/webrtc/modules/video_render/android/video_render_opengles20.h b/webrtc/modules/video_render/android/video_render_opengles20.h index 44ab4c04bc..57e2a10d42 100644 --- a/webrtc/modules/video_render/android/video_render_opengles20.h +++ b/webrtc/modules/video_render/android/video_render_opengles20.h @@ -11,7 +11,7 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_ANDROID_VIDEO_RENDER_OPENGLES20_H_ #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_ANDROID_VIDEO_RENDER_OPENGLES20_H_ -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" #include <GLES2/gl2.h> #include <GLES2/gl2ext.h> diff --git a/webrtc/modules/video_render/external/video_render_external_impl.h b/webrtc/modules/video_render/external/video_render_external_impl.h index 9230e60acc..a8b663fff7 100644 --- a/webrtc/modules/video_render/external/video_render_external_impl.h +++ b/webrtc/modules/video_render/external/video_render_external_impl.h @@ -11,7 +11,7 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_EXTERNAL_VIDEO_RENDER_EXTERNAL_IMPL_H_ #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_EXTERNAL_VIDEO_RENDER_EXTERNAL_IMPL_H_ -#include "webrtc/modules/interface/module_common_types.h" +#include "webrtc/modules/include/module_common_types.h" #include "webrtc/modules/video_render/i_video_render.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" diff --git a/webrtc/modules/video_render/i_video_render.h b/webrtc/modules/video_render/i_video_render.h index ff1cce782e..e6ec7a4680 100644 --- a/webrtc/modules/video_render/i_video_render.h +++ b/webrtc/modules/video_render/i_video_render.h @@ -11,7 +11,7 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_I_VIDEO_RENDER_H_ #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_I_VIDEO_RENDER_H_ -#include "webrtc/modules/video_render/include/video_render.h" +#include "webrtc/modules/video_render/video_render.h" namespace webrtc { diff --git a/webrtc/modules/video_render/ios/open_gles20.h b/webrtc/modules/video_render/ios/open_gles20.h index f74955fee4..880ddb5231 100644 --- a/webrtc/modules/video_render/ios/open_gles20.h +++ b/webrtc/modules/video_render/ios/open_gles20.h @@ -13,7 +13,7 @@ #include <OpenGLES/ES2/glext.h> -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" /* * This OpenGles20 is the class of renderer for VideoFrame into a GLES 2.0 diff --git a/webrtc/modules/video_render/ios/video_render_ios_channel.h b/webrtc/modules/video_render/ios/video_render_ios_channel.h index 375a5ee719..a15ba393dc 100644 --- a/webrtc/modules/video_render/ios/video_render_ios_channel.h +++ b/webrtc/modules/video_render/ios/video_render_ios_channel.h @@ -11,7 +11,7 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_IOS_VIDEO_RENDER_IOS_CHANNEL_H_ #define WEBRTC_MODULES_VIDEO_RENDER_IOS_VIDEO_RENDER_IOS_CHANNEL_H_ -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" #include "webrtc/modules/video_render/ios/video_render_ios_view.h" namespace webrtc { diff --git a/webrtc/modules/video_render/ios/video_render_ios_gles20.h b/webrtc/modules/video_render/ios/video_render_ios_gles20.h index b6da12aab8..d703630d92 100644 --- a/webrtc/modules/video_render/ios/video_render_ios_gles20.h +++ b/webrtc/modules/video_render/ios/video_render_ios_gles20.h @@ -14,10 +14,10 @@ #include <list> #include <map> +#include "webrtc/base/platform_thread.h" #include "webrtc/base/scoped_ptr.h" #include "webrtc/modules/video_render/ios/video_render_ios_channel.h" #include "webrtc/modules/video_render/ios/video_render_ios_view.h" -#include "webrtc/system_wrappers/include/thread_wrapper.h" namespace webrtc { @@ -64,7 +64,8 @@ class VideoRenderIosGles20 { private: rtc::scoped_ptr<CriticalSectionWrapper> gles_crit_sec_; EventTimerWrapper* screen_update_event_; - rtc::scoped_ptr<ThreadWrapper> screen_update_thread_; + // TODO(pbos): Remove scoped_ptr and use member directly. + rtc::scoped_ptr<rtc::PlatformThread> screen_update_thread_; VideoRenderIosView* view_; Rect window_rect_; diff --git a/webrtc/modules/video_render/ios/video_render_ios_gles20.mm b/webrtc/modules/video_render/ios/video_render_ios_gles20.mm index 3a276d6030..6ad5db8b8c 100644 --- a/webrtc/modules/video_render/ios/video_render_ios_gles20.mm +++ b/webrtc/modules/video_render/ios/video_render_ios_gles20.mm @@ -32,15 +32,15 @@ VideoRenderIosGles20::VideoRenderIosGles20(VideoRenderIosView* view, z_order_to_channel_(), gles_context_([view context]), is_rendering_(true) { - screen_update_thread_ = ThreadWrapper::CreateThread( - ScreenUpdateThreadProc, this, "ScreenUpdateGles20"); + screen_update_thread_.reset(new rtc::PlatformThread( + ScreenUpdateThreadProc, this, "ScreenUpdateGles20")); screen_update_event_ = EventTimerWrapper::Create(); GetWindowRect(window_rect_); } VideoRenderIosGles20::~VideoRenderIosGles20() { // Signal event to exit thread, then delete it - ThreadWrapper* thread_wrapper = screen_update_thread_.release(); + rtc::PlatformThread* thread_wrapper = screen_update_thread_.release(); if (thread_wrapper) { screen_update_event_->Set(); @@ -83,7 +83,7 @@ int VideoRenderIosGles20::Init() { } screen_update_thread_->Start(); - screen_update_thread_->SetPriority(kRealtimePriority); + screen_update_thread_->SetPriority(rtc::kRealtimePriority); // Start the event triggering the render process unsigned int monitor_freq = 60; diff --git a/webrtc/modules/video_render/linux/video_x11_channel.h b/webrtc/modules/video_render/linux/video_x11_channel.h index 8cbd2a27d1..6eb402e12e 100644 --- a/webrtc/modules/video_render/linux/video_x11_channel.h +++ b/webrtc/modules/video_render/linux/video_x11_channel.h @@ -13,7 +13,7 @@ #include <sys/shm.h> #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" #include <X11/Xlib.h> #include <X11/Xutil.h> diff --git a/webrtc/modules/video_render/linux/video_x11_render.h b/webrtc/modules/video_render/linux/video_x11_render.h index 265ef7cfab..23b83bd67b 100644 --- a/webrtc/modules/video_render/linux/video_x11_render.h +++ b/webrtc/modules/video_render/linux/video_x11_render.h @@ -11,7 +11,7 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_LINUX_VIDEO_X11_RENDER_H_ #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_LINUX_VIDEO_X11_RENDER_H_ -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" #include <X11/Xlib.h> #include <map> diff --git a/webrtc/modules/video_render/mac/video_render_agl.cc b/webrtc/modules/video_render/mac/video_render_agl.cc index dc157d597b..3243563b2b 100644 --- a/webrtc/modules/video_render/mac/video_render_agl.cc +++ b/webrtc/modules/video_render/mac/video_render_agl.cc @@ -395,8 +395,8 @@ _renderingIsPaused( false), { //WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s"); - _screenUpdateThread = ThreadWrapper::CreateThread( - ScreenUpdateThreadProc, this, "ScreenUpdate"); + _screenUpdateThread.reset( + new rtc::PlatformThread(ScreenUpdateThreadProc, this, "ScreenUpdate")); _screenUpdateEvent = EventWrapper::Create(); if(!IsValidWindowPtr(_windowRef)) @@ -512,8 +512,8 @@ _renderingIsPaused( false), //WEBRTC_TRACE(kTraceDebug, "%s:%d Constructor", __FUNCTION__, __LINE__); // _renderCritSec = CriticalSectionWrapper::CreateCriticalSection(); - _screenUpdateThread = ThreadWrapper::CreateThread( - ScreenUpdateThreadProc, this, "ScreenUpdateThread"); + _screenUpdateThread.reset(new rtc::PlatformThread( + ScreenUpdateThreadProc, this, "ScreenUpdateThread")); _screenUpdateEvent = EventWrapper::Create(); GetWindowRect(_windowRect); @@ -677,7 +677,7 @@ VideoRenderAGL::~VideoRenderAGL() #endif // Signal event to exit thread, then delete it - ThreadWrapper* tmpPtr = _screenUpdateThread.release(); + rtc::PlatformThread* tmpPtr = _screenUpdateThread.release(); if (tmpPtr) { @@ -739,7 +739,7 @@ int VideoRenderAGL::Init() return -1; } _screenUpdateThread->Start(); - _screenUpdateThread->SetPriority(kRealtimePriority); + _screenUpdateThread->SetPriority(rtc::kRealtimePriority); // Start the event triggering the render process unsigned int monitorFreq = 60; @@ -856,7 +856,7 @@ int VideoRenderAGL::DeleteAGLChannel(int channel) int VideoRenderAGL::StopThread() { CriticalSectionScoped cs(&_renderCritSec); - ThreadWrapper* tmpPtr = _screenUpdateThread.release(); + rtc::PlatformThread* tmpPtr = _screenUpdateThread.release(); if (tmpPtr) { @@ -1880,7 +1880,7 @@ int32_t VideoRenderAGL::StartRender() UnlockAGLCntx(); return -1; } - _screenUpdateThread->SetPriority(kRealtimePriority); + _screenUpdateThread->SetPriority(rtc::kRealtimePriority); if(FALSE == _screenUpdateEvent->StartTimer(true, 1000/MONITOR_FREQ)) { //WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id, "%s:%d Failed to start screenUpdateEvent", __FUNCTION__, __LINE__); @@ -1891,8 +1891,8 @@ int32_t VideoRenderAGL::StartRender() return 0; } - _screenUpdateThread = ThreadWrapper::CreateThread(ScreenUpdateThreadProc, - this, "ScreenUpdate"); + _screenUpdateThread.reset( + new rtc::PlatformThread(ScreenUpdateThreadProc, this, "ScreenUpdate")); _screenUpdateEvent = EventWrapper::Create(); if (!_screenUpdateThread) @@ -1903,14 +1903,13 @@ int32_t VideoRenderAGL::StartRender() } _screenUpdateThread->Start(); - _screenUpdateThread->SetPriority(kRealtimePriority); + _screenUpdateThread->SetPriority(rtc::kRealtimePriority); _screenUpdateEvent->StartTimer(true, 1000/MONITOR_FREQ); //WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s:%d Started screenUpdateThread", __FUNCTION__, __LINE__); UnlockAGLCntx(); return 0; - } int32_t VideoRenderAGL::StopRender() diff --git a/webrtc/modules/video_render/mac/video_render_agl.h b/webrtc/modules/video_render/mac/video_render_agl.h index 8710228754..e1da8faf83 100644 --- a/webrtc/modules/video_render/mac/video_render_agl.h +++ b/webrtc/modules/video_render/mac/video_render_agl.h @@ -15,8 +15,8 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_AGL_H_ #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_VIDEO_RENDER_AGL_H_ -#include "webrtc/modules/video_render/include/video_render_defines.h" -#include "webrtc/system_wrappers/include/thread_wrapper.h" +#include "webrtc/base/platform_thread.h" +#include "webrtc/modules/video_render/video_render_defines.h" #define NEW_HIVIEW_PARENT_EVENT_HANDLER 1 #define NEW_HIVIEW_EVENT_HANDLER 1 @@ -142,7 +142,8 @@ class VideoRenderAGL { bool _fullScreen; int _id; webrtc::CriticalSectionWrapper& _renderCritSec; - rtc::scoped_ptr<webrtc::ThreadWrapper> _screenUpdateThread; + // TODO(pbos): Remove scoped_ptr and use PlatformThread directly. + rtc::scoped_ptr<rtc::PlatformThread> _screenUpdateThread; webrtc::EventWrapper* _screenUpdateEvent; bool _isHIViewRef; AGLContext _aglContext; diff --git a/webrtc/modules/video_render/mac/video_render_nsopengl.h b/webrtc/modules/video_render/mac/video_render_nsopengl.h index 5dab4d266f..a888b68a97 100644 --- a/webrtc/modules/video_render/mac/video_render_nsopengl.h +++ b/webrtc/modules/video_render/mac/video_render_nsopengl.h @@ -23,16 +23,19 @@ #include <map> #include "webrtc/base/thread_annotations.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" #import "webrtc/modules/video_render/mac/cocoa_full_screen_window.h" #import "webrtc/modules/video_render/mac/cocoa_render_view.h" class Trace; +namespace rtc { +class PlatformThread; +} // namespace rtc + namespace webrtc { class EventTimerWrapper; -class ThreadWrapper; class VideoRenderNSOpenGL; class CriticalSectionWrapper; @@ -166,7 +169,8 @@ private: // variables bool _fullScreen; int _id; CriticalSectionWrapper& _nsglContextCritSec; - rtc::scoped_ptr<ThreadWrapper> _screenUpdateThread; + // TODO(pbos): Remove scoped_ptr and use PlatformThread directly. + rtc::scoped_ptr<rtc::PlatformThread> _screenUpdateThread; EventTimerWrapper* _screenUpdateEvent; NSOpenGLContext* _nsglContext; NSOpenGLContext* _nsglFullScreenContext; diff --git a/webrtc/modules/video_render/mac/video_render_nsopengl.mm b/webrtc/modules/video_render/mac/video_render_nsopengl.mm index b5150eb668..b7683a96af 100644 --- a/webrtc/modules/video_render/mac/video_render_nsopengl.mm +++ b/webrtc/modules/video_render/mac/video_render_nsopengl.mm @@ -11,11 +11,11 @@ #include "webrtc/engine_configurations.h" #if defined(COCOA_RENDERING) +#include "webrtc/base/platform_thread.h" #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" #include "webrtc/modules/video_render/mac/video_render_nsopengl.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" #include "webrtc/system_wrappers/include/event_wrapper.h" -#include "webrtc/system_wrappers/include/thread_wrapper.h" #include "webrtc/system_wrappers/include/trace.h" namespace webrtc { @@ -378,8 +378,8 @@ _renderingIsPaused (FALSE), _windowRefSuperView(NULL), _windowRefSuperViewFrame(NSMakeRect(0,0,0,0)) { - _screenUpdateThread = ThreadWrapper::CreateThread(ScreenUpdateThreadProc, - this, "ScreenUpdateNSOpenGL"); + _screenUpdateThread.reset(new rtc::PlatformThread( + ScreenUpdateThreadProc, this, "ScreenUpdateNSOpenGL")); } int VideoRenderNSOpenGL::ChangeWindow(CocoaRenderView* newWindowRef) @@ -427,15 +427,15 @@ int32_t VideoRenderNSOpenGL::StartRender() WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, _id, "Restarting screenUpdateThread"); // we already have the thread. Most likely StopRender() was called and they were paused - if(FALSE == _screenUpdateThread->Start() || - FALSE == _screenUpdateEvent->StartTimer(true, 1000/MONITOR_FREQ)) - { + _screenUpdateThread->Start(); + if (FALSE == + _screenUpdateEvent->StartTimer(true, 1000 / MONITOR_FREQ)) { WEBRTC_TRACE(kTraceError, kTraceVideoRenderer, _id, "Failed to restart screenUpdateThread or screenUpdateEvent"); UnlockAGLCntx(); return -1; } - _screenUpdateThread->SetPriority(kRealtimePriority); + _screenUpdateThread->SetPriority(rtc::kRealtimePriority); UnlockAGLCntx(); return 0; @@ -471,8 +471,8 @@ int32_t VideoRenderNSOpenGL::StopRender() return 0; } - if(FALSE == _screenUpdateThread->Stop() || FALSE == _screenUpdateEvent->StopTimer()) - { + _screenUpdateThread->Stop(); + if (FALSE == _screenUpdateEvent->StopTimer()) { _renderingIsPaused = FALSE; UnlockAGLCntx(); @@ -657,17 +657,15 @@ VideoRenderNSOpenGL::~VideoRenderNSOpenGL() } // Signal event to exit thread, then delete it - ThreadWrapper* tmpPtr = _screenUpdateThread.release(); + rtc::PlatformThread* tmpPtr = _screenUpdateThread.release(); if (tmpPtr) { _screenUpdateEvent->Set(); _screenUpdateEvent->StopTimer(); - if (tmpPtr->Stop()) - { - delete tmpPtr; - } + tmpPtr->Stop(); + delete tmpPtr; delete _screenUpdateEvent; _screenUpdateEvent = NULL; } @@ -716,7 +714,7 @@ int VideoRenderNSOpenGL::Init() } _screenUpdateThread->Start(); - _screenUpdateThread->SetPriority(kRealtimePriority); + _screenUpdateThread->SetPriority(rtc::kRealtimePriority); // Start the event triggering the render process unsigned int monitorFreq = 60; @@ -864,17 +862,15 @@ int32_t VideoRenderNSOpenGL::GetChannelProperties(const uint16_t streamId, int VideoRenderNSOpenGL::StopThread() { - ThreadWrapper* tmpPtr = _screenUpdateThread.release(); + rtc::PlatformThread* tmpPtr = _screenUpdateThread.release(); WEBRTC_TRACE(kTraceInfo, kTraceVideoRenderer, _id, "%s Stopping thread ", __FUNCTION__, tmpPtr); if (tmpPtr) { _screenUpdateEvent->Set(); - if (tmpPtr->Stop()) - { - delete tmpPtr; - } + tmpPtr->Stop(); + delete tmpPtr; } delete _screenUpdateEvent; diff --git a/webrtc/modules/video_render/test/testAPI/testAPI.cc b/webrtc/modules/video_render/test/testAPI/testAPI.cc index 256d031c0c..cea2f6b56f 100644 --- a/webrtc/modules/video_render/test/testAPI/testAPI.cc +++ b/webrtc/modules/video_render/test/testAPI/testAPI.cc @@ -32,10 +32,10 @@ #endif #include "webrtc/common_types.h" -#include "webrtc/modules/interface/module_common_types.h" -#include "webrtc/modules/utility/interface/process_thread.h" -#include "webrtc/modules/video_render/include/video_render.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/include/module_common_types.h" +#include "webrtc/modules/utility/include/process_thread.h" +#include "webrtc/modules/video_render/video_render.h" +#include "webrtc/modules/video_render/video_render_defines.h" #include "webrtc/system_wrappers/include/sleep.h" #include "webrtc/system_wrappers/include/tick_util.h" #include "webrtc/system_wrappers/include/trace.h" @@ -244,7 +244,7 @@ int WebRtcCreateWindow(Window *outWindow, Display **outDisplay, int winNum, int return 0; } -#endif // LINUX +#endif // WEBRTC_LINUX // Note: Mac code is in testApi_mac.mm. diff --git a/webrtc/modules/video_render/test/testAPI/testAPI.h b/webrtc/modules/video_render/test/testAPI/testAPI.h index 8b14e84931..0655a5b434 100644 --- a/webrtc/modules/video_render/test/testAPI/testAPI.h +++ b/webrtc/modules/video_render/test/testAPI/testAPI.h @@ -11,7 +11,7 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_TEST_TESTAPI_TESTAPI_H #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_TEST_TESTAPI_TESTAPI_H -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" void RunVideoRenderTests(void* window, webrtc::VideoRenderType windowType); diff --git a/webrtc/modules/video_render/test/testAPI/testAPI_mac.mm b/webrtc/modules/video_render/test/testAPI/testAPI_mac.mm index dd57397c73..dfee4c7298 100644 --- a/webrtc/modules/video_render/test/testAPI/testAPI_mac.mm +++ b/webrtc/modules/video_render/test/testAPI/testAPI_mac.mm @@ -20,10 +20,10 @@ #import "webrtc/modules/video_render/mac/cocoa_render_view.h" #include "webrtc/common_types.h" -#include "webrtc/modules/interface/module_common_types.h" -#include "webrtc/modules/utility/interface/process_thread.h" -#include "webrtc/modules/video_render/include/video_render.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/include/module_common_types.h" +#include "webrtc/modules/utility/include/process_thread.h" +#include "webrtc/modules/video_render/video_render.h" +#include "webrtc/modules/video_render/video_render_defines.h" #include "webrtc/system_wrappers/include/tick_util.h" #include "webrtc/system_wrappers/include/trace.h" diff --git a/webrtc/modules/video_render/video_render.gypi b/webrtc/modules/video_render/video_render.gypi index 63f69b0a63..e8cc03a4b0 100644 --- a/webrtc/modules/video_render/video_render.gypi +++ b/webrtc/modules/video_render/video_render.gypi @@ -25,8 +25,8 @@ 'external/video_render_external_impl.cc', 'external/video_render_external_impl.h', 'i_video_render.h', - 'include/video_render.h', - 'include/video_render_defines.h', + 'video_render.h', + 'video_render_defines.h', 'video_render_impl.h', ], }, @@ -149,13 +149,28 @@ '<(directx_sdk_path)/Include', ], }], + ['OS=="win" and clang==1', { + 'msvs_settings': { + 'VCCLCompilerTool': { + 'AdditionalOptions': [ + # Disable warnings failing when compiling with Clang on Windows. + # https://bugs.chromium.org/p/webrtc/issues/detail?id=5366 + '-Wno-comment', + '-Wno-reorder', + '-Wno-unused-value', + '-Wno-unused-private-field', + ], + }, + }, + }], ] # conditions }, ], }], # build_with_chromium==0 - ['include_tests==1', { + ['include_tests==1 and OS!="ios"', { 'targets': [ { + # Does not compile on iOS: webrtc:4755. 'target_name': 'video_render_tests', 'type': 'executable', 'dependencies': [ @@ -197,7 +212,7 @@ ] # conditions }, # video_render_module_test ], # targets - }], # include_tests==1 + }], # include_tests==1 and OS!=ios ], # conditions } diff --git a/webrtc/modules/video_render/include/video_render.h b/webrtc/modules/video_render/video_render.h index 51fcce10c3..a193a187e7 100644 --- a/webrtc/modules/video_render/include/video_render.h +++ b/webrtc/modules/video_render/video_render.h @@ -8,8 +8,8 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_H_ -#define WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_H_ +#ifndef WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_H_ +#define WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_H_ /* * video_render.h @@ -20,8 +20,8 @@ * */ -#include "webrtc/modules/interface/module.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/include/module.h" +#include "webrtc/modules/video_render/video_render_defines.h" namespace webrtc { @@ -265,4 +265,4 @@ public: const uint32_t timeout) = 0; }; } // namespace webrtc -#endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_H_ +#endif // WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_H_ diff --git a/webrtc/modules/video_render/include/video_render_defines.h b/webrtc/modules/video_render/video_render_defines.h index f8f48035ea..999707cb6e 100644 --- a/webrtc/modules/video_render/include/video_render_defines.h +++ b/webrtc/modules/video_render/video_render_defines.h @@ -8,12 +8,12 @@ * be found in the AUTHORS file in the root of the source tree. */ -#ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_DEFINES_H_ -#define WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_DEFINES_H_ +#ifndef WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_DEFINES_H_ +#define WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_DEFINES_H_ #include "webrtc/common_types.h" -#include "webrtc/common_video/interface/incoming_video_stream.h" -#include "webrtc/modules/interface/module_common_types.h" +#include "webrtc/common_video/include/incoming_video_stream.h" +#include "webrtc/modules/include/module_common_types.h" namespace webrtc { @@ -67,4 +67,4 @@ enum StretchMode } // namespace webrtc -#endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_DEFINES_H_ +#endif // WEBRTC_MODULES_VIDEO_RENDER_VIDEO_RENDER_DEFINES_H_ diff --git a/webrtc/modules/video_render/video_render_impl.cc b/webrtc/modules/video_render/video_render_impl.cc index 32ec2b0e75..d2a074b4c4 100644 --- a/webrtc/modules/video_render/video_render_impl.cc +++ b/webrtc/modules/video_render/video_render_impl.cc @@ -10,11 +10,11 @@ #include <assert.h> -#include "webrtc/common_video/interface/incoming_video_stream.h" +#include "webrtc/common_video/include/incoming_video_stream.h" #include "webrtc/engine_configurations.h" #include "webrtc/modules/video_render/external/video_render_external_impl.h" #include "webrtc/modules/video_render/i_video_render.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" #include "webrtc/modules/video_render/video_render_impl.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" #include "webrtc/system_wrappers/include/trace.h" @@ -197,7 +197,8 @@ ModuleVideoRenderImpl::AddIncomingRenderStream(const uint32_t streamId, } // Create platform independant code - IncomingVideoStream* ptrIncomingStream = new IncomingVideoStream(streamId); + IncomingVideoStream* ptrIncomingStream = + new IncomingVideoStream(streamId, false); ptrIncomingStream->SetRenderCallback(ptrRenderCallback); VideoRenderCallback* moduleCallback = ptrIncomingStream->ModuleCallback(); diff --git a/webrtc/modules/video_render/video_render_impl.h b/webrtc/modules/video_render/video_render_impl.h index cc00897cc3..ce93cea6b5 100644 --- a/webrtc/modules/video_render/video_render_impl.h +++ b/webrtc/modules/video_render/video_render_impl.h @@ -14,7 +14,7 @@ #include <map> #include "webrtc/engine_configurations.h" -#include "webrtc/modules/video_render/include/video_render.h" +#include "webrtc/modules/video_render/video_render.h" namespace webrtc { class CriticalSectionWrapper; diff --git a/webrtc/modules/video_render/video_render_internal_impl.cc b/webrtc/modules/video_render/video_render_internal_impl.cc index 09ebc7e548..1fed26e9c4 100644 --- a/webrtc/modules/video_render/video_render_internal_impl.cc +++ b/webrtc/modules/video_render/video_render_internal_impl.cc @@ -10,10 +10,10 @@ #include <assert.h> -#include "webrtc/common_video/interface/incoming_video_stream.h" +#include "webrtc/common_video/include/incoming_video_stream.h" #include "webrtc/engine_configurations.h" #include "webrtc/modules/video_render/i_video_render.h" -#include "webrtc/modules/video_render/include/video_render_defines.h" +#include "webrtc/modules/video_render/video_render_defines.h" #include "webrtc/modules/video_render/video_render_impl.h" #include "webrtc/system_wrappers/include/critical_section_wrapper.h" #include "webrtc/system_wrappers/include/trace.h" @@ -420,7 +420,8 @@ ModuleVideoRenderImpl::AddIncomingRenderStream(const uint32_t streamId, } // Create platform independant code - IncomingVideoStream* ptrIncomingStream = new IncomingVideoStream(streamId); + IncomingVideoStream* ptrIncomingStream = + new IncomingVideoStream(streamId, false); ptrIncomingStream->SetRenderCallback(ptrRenderCallback); VideoRenderCallback* moduleCallback = ptrIncomingStream->ModuleCallback(); diff --git a/webrtc/modules/video_render/windows/i_video_render_win.h b/webrtc/modules/video_render/windows/i_video_render_win.h index 56731e3770..6dbb4fd3cb 100644 --- a/webrtc/modules/video_render/windows/i_video_render_win.h +++ b/webrtc/modules/video_render/windows/i_video_render_win.h @@ -11,7 +11,7 @@ #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_ #define WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_WINDOWS_I_VIDEO_RENDER_WIN_H_ -#include "webrtc/modules/video_render/include/video_render.h" +#include "webrtc/modules/video_render/video_render.h" namespace webrtc { diff --git a/webrtc/modules/video_render/windows/video_render_direct3d9.cc b/webrtc/modules/video_render/windows/video_render_direct3d9.cc index 24dd0efddb..83835aebb8 100644 --- a/webrtc/modules/video_render/windows/video_render_direct3d9.cc +++ b/webrtc/modules/video_render/windows/video_render_direct3d9.cc @@ -294,8 +294,8 @@ VideoRenderDirect3D9::VideoRenderDirect3D9(Trace* trace, _totalMemory(0), _availableMemory(0) { - _screenUpdateThread = ThreadWrapper::CreateThread( - ScreenUpdateThreadProc, this, "ScreenUpdateThread"); + _screenUpdateThread.reset(new rtc::PlatformThread( + ScreenUpdateThreadProc, this, "ScreenUpdateThread")); _screenUpdateEvent = EventTimerWrapper::Create(); SetRect(&_originalHwndRect, 0, 0, 0, 0); } @@ -305,7 +305,7 @@ VideoRenderDirect3D9::~VideoRenderDirect3D9() //NOTE: we should not enter CriticalSection in here! // Signal event to exit thread, then delete it - ThreadWrapper* tmpPtr = _screenUpdateThread.release(); + rtc::PlatformThread* tmpPtr = _screenUpdateThread.release(); if (tmpPtr) { _screenUpdateEvent->Set(); @@ -546,7 +546,7 @@ int32_t VideoRenderDirect3D9::Init() return -1; } _screenUpdateThread->Start(); - _screenUpdateThread->SetPriority(kRealtimePriority); + _screenUpdateThread->SetPriority(rtc::kRealtimePriority); // Start the event triggering the render process unsigned int monitorFreq = 60; diff --git a/webrtc/modules/video_render/windows/video_render_direct3d9.h b/webrtc/modules/video_render/windows/video_render_direct3d9.h index c8f6639d9a..5a1f207934 100644 --- a/webrtc/modules/video_render/windows/video_render_direct3d9.h +++ b/webrtc/modules/video_render/windows/video_render_direct3d9.h @@ -19,8 +19,8 @@ #include <Map> // Added -#include "webrtc/modules/video_render/include/video_render_defines.h" -#include "webrtc/system_wrappers/include/thread_wrapper.h" +#include "webrtc/base/platform_thread.h" +#include "webrtc/modules/video_render/video_render_defines.h" #pragma comment(lib, "d3d9.lib") // located in DirectX SDK @@ -203,7 +203,8 @@ private: CriticalSectionWrapper& _refD3DCritsect; Trace* _trace; - rtc::scoped_ptr<ThreadWrapper> _screenUpdateThread; + // TODO(pbos): Remove scoped_ptr and use PlatformThread directly. + rtc::scoped_ptr<rtc::PlatformThread> _screenUpdateThread; EventTimerWrapper* _screenUpdateEvent; HWND _hWnd; |