diff --git a/src/modules/video_capture/main/interface/video_capture.h b/src/modules/video_capture/main/interface/video_capture.h index d596b71d13..43380ec0c9 100644 --- a/src/modules/video_capture/main/interface/video_capture.h +++ b/src/modules/video_capture/main/interface/video_capture.h @@ -16,6 +16,10 @@ namespace webrtc { +#if defined(WEBRTC_ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) +WebRtc_Word32 SetCaptureAndroidVM(void* javaVM, void* javaContext); +#endif + class VideoCaptureModule: public RefCountedModule { public: // Interface for receiving information about available camera devices. diff --git a/src/modules/video_capture/main/source/android/video_capture_android.cc b/src/modules/video_capture/main/source/android/video_capture_android.cc index 3e427ddffa..f5abbc91cb 100644 --- a/src/modules/video_capture/main/source/android/video_capture_android.cc +++ b/src/modules/video_capture/main/source/android/video_capture_android.cc @@ -18,6 +18,16 @@ namespace webrtc { +#if defined(WEBRTC_ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) +// TODO(leozwang) These SetAndroidVM apis will be refactored, thus we only +// keep and reference java vm. +WebRtc_Word32 SetCaptureAndroidVM(void* javaVM, void* javaContext) { + return videocapturemodule::VideoCaptureAndroid::SetAndroidObjects( + javaVM, + javaContext); +} +#endif + namespace videocapturemodule { diff --git a/src/modules/video_capture/main/source/video_capture_factory.cc b/src/modules/video_capture/main/source/video_capture_factory.cc index a5ef816811..6b792e14de 100644 --- a/src/modules/video_capture/main/source/video_capture_factory.cc +++ b/src/modules/video_capture/main/source/video_capture_factory.cc @@ -10,9 +10,6 @@ #include "video_capture_factory.h" #include "video_capture_impl.h" -#ifdef WEBRTC_ANDROID -#include "video_capture_android.h" -#endif namespace webrtc { @@ -32,12 +29,4 @@ VideoCaptureModule::DeviceInfo* VideoCaptureFactory::CreateDeviceInfo( return videocapturemodule::VideoCaptureImpl::CreateDeviceInfo(id); } -#ifdef WEBRTC_ANDROID -WebRtc_Word32 VideoCaptureFactory::SetAndroidObjects(void* javaVM, - void* javaContext) { - return videocapturemodule::VideoCaptureAndroid::SetAndroidObjects(javaVM, - javaContext); -} -#endif - } // namespace webrtc diff --git a/src/modules/video_capture/main/source/video_capture_impl.cc b/src/modules/video_capture/main/source/video_capture_impl.cc index 5d63a5bfe8..601f4aeaca 100644 --- a/src/modules/video_capture/main/source/video_capture_impl.cc +++ b/src/modules/video_capture/main/source/video_capture_impl.cc @@ -20,10 +20,6 @@ #include -#ifdef WEBRTC_ANDROID -#include "video_capture_android.h" // Need inclusion here to set Java environment. -#endif - namespace webrtc { namespace videocapturemodule diff --git a/src/modules/video_render/main/interface/video_render.h b/src/modules/video_render/main/interface/video_render.h index 42fce70204..a0a5126e20 100644 --- a/src/modules/video_render/main/interface/video_render.h +++ b/src/modules/video_render/main/interface/video_render.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. + * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source @@ -24,6 +24,11 @@ #include "video_render_defines.h" namespace webrtc { + +#if defined(WEBRTC_ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) +WebRtc_Word32 SetRenderAndroidVM(void* javaVM); +#endif + // Class definitions class VideoRender: public Module { @@ -273,8 +278,6 @@ public: const bool enable, const bool mirrorXAxis, const bool mirrorYAxis) = 0; - - static WebRtc_Word32 SetAndroidObjects(void* javaVM); }; } //namespace webrtc #endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_INTERFACE_VIDEO_RENDER_H_ diff --git a/src/modules/video_render/main/source/android/video_render_android_impl.cc b/src/modules/video_render/main/source/android/video_render_android_impl.cc index 63d0d6ed46..9e709cb5eb 100644 --- a/src/modules/video_render/main/source/android/video_render_android_impl.cc +++ b/src/modules/video_render/main/source/android/video_render_android_impl.cc @@ -26,13 +26,16 @@ #endif namespace webrtc { + JavaVM* VideoRenderAndroid::g_jvm = NULL; -WebRtc_Word32 VideoRenderAndroid::SetAndroidEnvVariables(void* javaVM) { +#if defined(WEBRTC_ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) +WebRtc_Word32 SetRenderAndroidVM(void* javaVM) { WEBRTC_TRACE(kTraceDebug, kTraceVideoRenderer, -1, "%s", __FUNCTION__); - g_jvm = (JavaVM*) javaVM; + VideoRenderAndroid::g_jvm = (JavaVM*)javaVM; return 0; } +#endif VideoRenderAndroid::VideoRenderAndroid( const WebRtc_Word32 id, diff --git a/src/modules/video_render/main/source/android/video_render_android_impl.h b/src/modules/video_render/main/source/android/video_render_android_impl.h index d43d2d444f..d3f140afbd 100644 --- a/src/modules/video_render/main/source/android/video_render_android_impl.h +++ b/src/modules/video_render/main/source/android/video_render_android_impl.h @@ -38,8 +38,6 @@ class AndroidStream : public VideoRenderCallback { class VideoRenderAndroid: IVideoRender { public: - static WebRtc_Word32 SetAndroidEnvVariables(void* javaVM); - VideoRenderAndroid(const WebRtc_Word32 id, const VideoRenderType videoRenderType, void* window, @@ -118,6 +116,7 @@ class VideoRenderAndroid: IVideoRender { const void* colorKey, const float left, const float top, const float right, const float bottom); + static JavaVM* g_jvm; protected: virtual AndroidStream* CreateAndroidRenderChannel( @@ -134,8 +133,6 @@ class VideoRenderAndroid: IVideoRender { VideoRenderType _renderType; jobject _ptrWindow; - static JavaVM* g_jvm; - private: static bool JavaRenderThreadFun(void* obj); bool JavaRenderThreadProcess(); diff --git a/src/modules/video_render/main/source/video_render_impl.cc b/src/modules/video_render/main/source/video_render_impl.cc index 1aaa2865f0..6291791ffb 100644 --- a/src/modules/video_render/main/source/video_render_impl.cc +++ b/src/modules/video_render/main/source/video_render_impl.cc @@ -24,7 +24,9 @@ #include "windows/video_render_windows_impl.h" #define STANDARD_RENDERING kRenderWindows -#elif defined(MAC_IPHONE) // MAC_IPHONE should go before WEBRTC_MAC_INTEL because WEBRTC_MAC_INTEL gets defined if MAC_IPHONE is defined +// MAC_IPHONE should go before WEBRTC_MAC_INTEL because WEBRTC_MAC_INTEL +// gets defined if MAC_IPHONE is defined +#elif defined(MAC_IPHONE) #if defined(IPHONE_GLES_RENDERING) #define STANDARD_RENDERING kRenderiPhone #include "iPhone/video_render_iphone_impl.h" @@ -69,7 +71,6 @@ VideoRender::CreateVideoRender(const WebRtc_Word32 id, const bool fullscreen, const VideoRenderType videoRenderType/*=kRenderDefault*/) { - VideoRenderType resultVideoRenderType = videoRenderType; if (videoRenderType == kRenderDefault) { @@ -88,15 +89,6 @@ void VideoRender::DestroyVideoRender( } } -WebRtc_Word32 VideoRender::SetAndroidObjects(void *javaVM) -{ -#ifdef WEBRTC_ANDROID - return VideoRenderAndroid::SetAndroidEnvVariables(javaVM); -#else - return -1; -#endif -} - ModuleVideoRenderImpl::ModuleVideoRenderImpl( const WebRtc_Word32 id, const VideoRenderType videoRenderType, diff --git a/src/video_engine/vie_impl.cc b/src/video_engine/vie_impl.cc index 354b55c026..8805cd62cf 100644 --- a/src/video_engine/vie_impl.cc +++ b/src/video_engine/vie_impl.cc @@ -210,15 +210,15 @@ int VideoEngine::SetAndroidObjects(void* javaVM, void* javaContext) { WEBRTC_TRACE(kTraceApiCall, kTraceVideo, g_vie_active_instance_counter, "SetAndroidObjects()"); -#ifdef WEBRTC_ANDROID - if (VideoCaptureFactory::SetAndroidObjects(javaVM, javaContext) != 0) { +#if defined(WEBRTC_ANDROID) && !defined(WEBRTC_CHROMIUM_BUILD) + if (SetCaptureAndroidVM(javaVM, javaContext) != 0) { WEBRTC_TRACE(kTraceError, kTraceVideo, g_vie_active_instance_counter, - "Could not set capture module Android objects"); + "Could not set capture Android VM"); return -1; } - if (VideoRender::SetAndroidObjects(javaVM) != 0) { + if (SetRenderAndroidVM(javaVM) != 0) { WEBRTC_TRACE(kTraceError, kTraceVideo, g_vie_active_instance_counter, - "Could not set render module Android objects"); + "Could not set render Android VM"); return -1; } return 0;