diff --git a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.mm b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.mm index fb9cc4f3e..c043837f3 100644 --- a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.mm +++ b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit.mm @@ -23,11 +23,13 @@ namespace videocapturemodule VideoCaptureMacQTKit::VideoCaptureMacQTKit(const WebRtc_Word32 id) : VideoCaptureImpl(id), + _captureDevice(NULL), + _captureInfo(NULL), + _isCapturing(false), _id(id), _captureWidth(QTKIT_DEFAULT_WIDTH), _captureHeight(QTKIT_DEFAULT_HEIGHT), _captureFrameRate(QTKIT_DEFAULT_FRAME_RATE), - _isCapturing(false), _frameCount(0) { WEBRTC_TRACE(webrtc::kTraceModuleCall, webrtc::kTraceVideoCapture, id, @@ -64,7 +66,6 @@ WebRtc_Word32 VideoCaptureMacQTKit::Init( "VideoCaptureMacQTKit::Init() called with id %d and unique " "device %s", id, iDeviceUniqueIdUTF8); - WebRtc_Word32 result=0; const WebRtc_Word32 nameLength = (WebRtc_Word32) strlen((char*)iDeviceUniqueIdUTF8); if(nameLength>kVideoCaptureUniqueNameLength) diff --git a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.h b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.h index f692b5aad..1d3ac8688 100644 --- a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.h +++ b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.h @@ -21,9 +21,6 @@ #include "video_capture_qtkit_utility.h" #include "video_capture_qtkit_info.h" - -using namespace webrtc; - @interface VideoCaptureMacQTKitInfoObjC : NSObject{ bool _OSSupportedInfo; NSArray* _captureDevicesInfo; diff --git a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.mm b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.mm index d5be0d88a..3f0e7cb76 100644 --- a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.mm +++ b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_info_objc.mm @@ -10,7 +10,7 @@ #include "trace.h" - +using namespace webrtc; #pragma mark **** hidden class interface @@ -127,21 +127,6 @@ // ****************** "private" category functions below here ****************** #pragma mark **** "private" method implementations -- (NSNumber*)getCaptureDeviceWithIndex:(int)index ToString:(char*)name - WithLength:(int)length -{ - index = index; - name = name; - length = length; - return [NSNumber numberWithInt:0]; -} - -- (NSNumber*)setCaptureDeviceByIndex:(int)index -{ - index = index; - return [NSNumber numberWithInt:0]; -} - - (NSNumber*)initializeVariables { if(NO == _OSSupportedInfo) diff --git a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.h b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.h index 5b91b03f5..d48dbf1c9 100644 --- a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.h +++ b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.h @@ -23,18 +23,10 @@ #import #import - - #import "video_capture_recursive_lock.h" - #include "video_capture_qtkit.h" -using namespace webrtc; -using namespace videocapturemodule; - - - @interface VideoCaptureMacQTKitObjC : NSObject{ // class properties bool _capturing; @@ -48,7 +40,7 @@ using namespace videocapturemodule; bool _captureInitialized; // WebRTC Custom classes - VideoCaptureMacQTKit* _owner; + webrtc::videocapturemodule::VideoCaptureMacQTKit* _owner; VideoCaptureRecursiveLock* _rLock; // QTKit variables @@ -90,9 +82,7 @@ using namespace videocapturemodule; ***************************************************************************/ -- (NSNumber*)getCaptureDeviceWithIndex:(int)index ToString:(char*)name WithLength:(int)length; - (NSNumber*)registerOwner:(webrtc::videocapturemodule::VideoCaptureMacQTKit*)owner; -- (NSNumber*)setCaptureDeviceByIndex:(int)index; - (NSNumber*)setCaptureDeviceById:(char*)uniqueId; - (NSNumber*)setCaptureHeight:(int)height AndWidth:(int)width AndFrameRate:(int)frameRate; - (NSNumber*)startCapture; diff --git a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.mm b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.mm index d718bdf94..0e08f621e 100644 --- a/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.mm +++ b/src/modules/video_capture/main/source/Mac/QTKit/video_capture_qtkit_objc.mm @@ -17,6 +17,8 @@ #include "video_capture_qtkit_utility.h" #include "trace.h" +using namespace webrtc; +using namespace videocapturemodule; @implementation VideoCaptureMacQTKitObjC @@ -70,28 +72,6 @@ return [NSNumber numberWithInt:0]; } -/// ***** Supposed to get capture device by index. -/// ***** Currently not used -- (NSNumber*)getCaptureDeviceWithIndex:(int)index ToString:(char*)name - WithLength:(int)length{ - WEBRTC_TRACE(kTraceModuleCall, kTraceVideoCapture, 0, - "%s:%d index=%s name=%s", __FUNCTION__, __LINE__, name); - - index = index; - name = name; - length = length; - return [NSNumber numberWithInt:0]; -} - -/// ***** Supposed to set capture device by index. -/// ***** Currently not used -- (NSNumber*)setCaptureDeviceByIndex:(int)index { - WEBRTC_TRACE(kTraceModuleCall, kTraceVideoCapture, 0, - "%s:%d name", __FUNCTION__, __LINE__); - index = index; - return [NSNumber numberWithInt:0]; -} - /// ***** Sets the QTCaptureSession's input device from a char* /// ***** Sets several member variables. Can signal the error system if one has /// occurred @@ -215,8 +195,9 @@ _frameHeight = height; _frameRate = frameRate; - [_captureDecompressedVideoOutput - setMinimumVideoFrameInterval:(NSTimeInterval)1/(float)_frameRate]; + // TODO(mflodman) Check fps settings. + // [_captureDecompressedVideoOutput + // setMinimumVideoFrameInterval:(NSTimeInterval)1/(float)_frameRate]; NSDictionary* captureDictionary = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithDouble:_frameWidth], (id)kCVPixelBufferWidthKey, [NSNumber numberWithDouble:_frameHeight], (id)kCVPixelBufferHeightKey, @@ -417,9 +398,10 @@ [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32ARGB], (id)kCVPixelBufferPixelFormatTypeKey, nil]]; - [_captureDecompressedVideoOutput setMinimumVideoFrameInterval: - (NSTimeInterval)1/(float)_frameRate]; - [_captureDecompressedVideoOutput setAutomaticallyDropsLateVideoFrames:YES]; + // TODO(mflodman) Check fps settings. + //[_captureDecompressedVideoOutput setMinimumVideoFrameInterval: + // (NSTimeInterval)1/(float)_frameRate]; + //[_captureDecompressedVideoOutput setAutomaticallyDropsLateVideoFrames:YES]; success = [_captureSession addOutput:_captureDecompressedVideoOutput error:&error]; @@ -465,7 +447,6 @@ CVPixelBufferLockBaseAddress(videoFrame, LOCK_FLAGS); void* baseAddress = CVPixelBufferGetBaseAddress(videoFrame); size_t bytesPerRow = CVPixelBufferGetBytesPerRow(videoFrame); - int frameWidth = CVPixelBufferGetWidth(videoFrame); int frameHeight = CVPixelBufferGetHeight(videoFrame); CVPixelBufferUnlockBaseAddress(videoFrame, LOCK_FLAGS); @@ -491,10 +472,6 @@ _framesDelivered++; _framesRendered++; - captureOutput = captureOutput; - sampleBuffer = sampleBuffer; - connection = connection; - if(YES == [_rLock locked]) { [_rLock unlock]; diff --git a/src/modules/video_render/main/source/mac/cocoa_full_screen_window.h b/src/modules/video_render/main/source/mac/cocoa_full_screen_window.h index 0638561e7..c8e98bba6 100644 --- a/src/modules/video_render/main/source/mac/cocoa_full_screen_window.h +++ b/src/modules/video_render/main/source/mac/cocoa_full_screen_window.h @@ -26,7 +26,7 @@ -(id)init; -(void)grabFullScreen; -(void)releaseFullScreen; - +-(NSWindow*)window; @end diff --git a/src/modules/video_render/main/source/mac/cocoa_full_screen_window.mm b/src/modules/video_render/main/source/mac/cocoa_full_screen_window.mm index 642231b33..be92d7b6b 100644 --- a/src/modules/video_render/main/source/mac/cocoa_full_screen_window.mm +++ b/src/modules/video_render/main/source/mac/cocoa_full_screen_window.mm @@ -25,11 +25,6 @@ using namespace webrtc; return self; } --(NSWindow*)window{ - return _window; -} - - -(void)grabFullScreen{ WEBRTC_TRACE(kTraceModuleCall, kTraceVideoRenderer, 0, "%s:%d", __FUNCTION__, __LINE__); @@ -75,6 +70,11 @@ using namespace webrtc; } } +- (NSWindow*)window +{ + return _window; +} + - (void) dealloc { WEBRTC_TRACE(kTraceModuleCall, kTraceVideoRenderer, 0, "%s:%d", __FUNCTION__, __LINE__); diff --git a/src/modules/video_render/main/source/mac/cocoa_render_view.h b/src/modules/video_render/main/source/mac/cocoa_render_view.h index 84a2bd5ba..15a8108de 100644 --- a/src/modules/video_render/main/source/mac/cocoa_render_view.h +++ b/src/modules/video_render/main/source/mac/cocoa_render_view.h @@ -9,7 +9,7 @@ */ // -// cocoa_render_view.h +// cocoa_render_view.h // #ifndef WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_COCOA_RENDER_VIEW_H_ @@ -20,16 +20,13 @@ #import #import - - @interface CocoaRenderView : NSOpenGLView { - NSOpenGLContext* _nsOpenGLContext; + NSOpenGLContext* _nsOpenGLContext; } - - -(void)initCocoaRenderView:(NSOpenGLPixelFormat*)fmt; -(void)initCocoaRenderViewFullScreen:(NSOpenGLPixelFormat*)fmt; +-(NSOpenGLContext*)nsOpenGLContext; @end -#endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_COCOA_RENDER_VIEW_H_ \ No newline at end of file +#endif // WEBRTC_MODULES_VIDEO_RENDER_MAIN_SOURCE_MAC_COCOA_RENDER_VIEW_H_ diff --git a/src/modules/video_render/main/source/mac/cocoa_render_view.mm b/src/modules/video_render/main/source/mac/cocoa_render_view.mm index acbd3c285..5d79904f2 100644 --- a/src/modules/video_render/main/source/mac/cocoa_render_view.mm +++ b/src/modules/video_render/main/source/mac/cocoa_render_view.mm @@ -28,12 +28,10 @@ using namespace webrtc; } --(NSOpenGLContext*)nsOpenGLContext{ +-(NSOpenGLContext*)nsOpenGLContext { return _nsOpenGLContext; } - - -(void)initCocoaRenderViewFullScreen:(NSOpenGLPixelFormat*)fmt{ WEBRTC_TRACE(kTraceModuleCall, kTraceVideoRenderer, 0, "%s:%d", __FUNCTION__, __LINE__); diff --git a/src/modules/video_render/main/source/mac/video_render_nsopengl.mm b/src/modules/video_render/main/source/mac/video_render_nsopengl.mm index efc59a374..437bac5d2 100644 --- a/src/modules/video_render/main/source/mac/video_render_nsopengl.mm +++ b/src/modules/video_render/main/source/mac/video_render_nsopengl.mm @@ -289,7 +289,7 @@ int VideoChannelNSOpenGL::RenderOffScreenBuffer() // if(_fullscreen) // { - NSRect mainDisplayRect = [[NSScreen mainScreen] frame]; + // NSRect mainDisplayRect = [[NSScreen mainScreen] frame]; // _width = mainDisplayRect.size.width; // _height = mainDisplayRect.size.height; // glViewport(0, 0, mainDisplayRect.size.width, mainDisplayRect.size.height); diff --git a/src/video_engine/test/auto_test/primitives/general_primitives.h b/src/video_engine/test/auto_test/primitives/general_primitives.h index d998c0e3e..61eeb057c 100644 --- a/src/video_engine/test/auto_test/primitives/general_primitives.h +++ b/src/video_engine/test/auto_test/primitives/general_primitives.h @@ -17,12 +17,12 @@ class ViEToFileRenderer; namespace webrtc { class VideoCaptureModule; -class VideoCodec; class ViEBase; class ViECapture; class ViECodec; class ViERender; class ViERTP_RTCP; +struct VideoCodec; } // Finds a suitable capture device (e.g. camera) on the current system diff --git a/src/video_engine/test/auto_test/source/vie_autotest_capture.cc b/src/video_engine/test/auto_test/source/vie_autotest_capture.cc index c19a04c9b..47c326586 100644 --- a/src/video_engine/test/auto_test/source/vie_autotest_capture.cc +++ b/src/video_engine/test/auto_test/source/vie_autotest_capture.cc @@ -131,6 +131,7 @@ void ViEAutoTest::ViECaptureStandardTest() EXPECT_GT(numberOfCaptureDevices, 0); int captureDeviceId[10]; + memset(captureDeviceId, 0, sizeof(captureDeviceId)); webrtc::VideoCaptureModule* vcpms[10]; memset(vcpms, 0, sizeof(vcpms)); diff --git a/src/video_engine/test/auto_test/source/vie_autotest_mac_cocoa.mm b/src/video_engine/test/auto_test/source/vie_autotest_mac_cocoa.mm index f2cd3a7fb..b038659f5 100644 --- a/src/video_engine/test/auto_test/source/vie_autotest_mac_cocoa.mm +++ b/src/video_engine/test/auto_test/source/vie_autotest_mac_cocoa.mm @@ -8,15 +8,16 @@ * be found in the AUTHORS file in the root of the source tree. */ -#include "engine_configurations.h" +#include "engine_configurations.h" #if defined(COCOA_RENDERING) -#include "vie_autotest_mac_cocoa.h" -#include "vie_autotest_defines.h" -#include "vie_autotest.h" -#include "vie_autotest_main.h" +#import "cocoa_render_view.h" +#include "vie_autotest_mac_cocoa.h" +#include "vie_autotest_defines.h" +#include "vie_autotest.h" +#include "vie_autotest_main.h" -ViEAutoTestWindowManager::ViEAutoTestWindowManager() +ViEAutoTestWindowManager::ViEAutoTestWindowManager() : _cocoaRenderView1(nil), _cocoaRenderView2(nil) { } @@ -85,19 +86,19 @@ int main(int argc, char * argv[]) { int result = 0; #if defined(MAC_COCOA_USE_NSRUNLOOP) AutoTestClass* tests = [[AutoTestClass alloc] init]; - + [tests setArgc:argc argv:argv]; [NSThread detachNewThreadSelector:@selector(autoTestWithArg:) toTarget:tests withObject:nil]; - // Process OS events. Blocking call. + // Process OS events. Blocking call. [[NSRunLoop mainRunLoop]run]; - + result = [tests result]; #else ViEAutoTestMain autoTest; result = autoTest.RunTests(argc, argv); - + #endif [pool release]; return result; diff --git a/src/video_engine/test/auto_test/vie_auto_test.gypi b/src/video_engine/test/auto_test/vie_auto_test.gypi index e091b7a4f..4c19a3702 100644 --- a/src/video_engine/test/auto_test/vie_auto_test.gypi +++ b/src/video_engine/test/auto_test/vie_auto_test.gypi @@ -154,6 +154,9 @@ ], }], ['OS=="mac"', { + 'include_dirs': [ + '../../../modules/video_render/main/source/mac', + ], 'xcode_settings': { 'OTHER_LDFLAGS': [ '-framework Foundation -framework AppKit -framework Cocoa -framework OpenGL -framework CoreVideo -framework CoreAudio -framework AudioToolbox',