Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: webrtc/examples/objc/AppRTCDemo/mac/APPRTCViewController.m

Issue 2283743003: Add local capturer on mac (Closed)
Patch Set: rebase to master Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/examples/objc/AppRTCDemo/mac/APPRTCAppDelegate.m ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/examples/objc/AppRTCDemo/mac/APPRTCViewController.m
diff --git a/webrtc/examples/objc/AppRTCDemo/mac/APPRTCViewController.m b/webrtc/examples/objc/AppRTCDemo/mac/APPRTCViewController.m
index 0f5bc386d7af65518d8fd8acd91f8756092d50b4..710b8a5ea40e1264c73d60d2c9be953e84111d93 100644
--- a/webrtc/examples/objc/AppRTCDemo/mac/APPRTCViewController.m
+++ b/webrtc/examples/objc/AppRTCDemo/mac/APPRTCViewController.m
@@ -21,6 +21,7 @@ static NSUInteger const kContentWidth = 1280;
static NSUInteger const kContentHeight = 720;
static NSUInteger const kRoomFieldWidth = 80;
static NSUInteger const kLogViewHeight = 280;
+static NSUInteger const kPreviewWidth = 490;
@class APPRTCMainView;
@protocol APPRTCMainViewDelegate
@@ -74,14 +75,18 @@ static NSUInteger const kLogViewHeight = 280;
NSDictionaryOfVariableBindings(_roomLabel,
_roomField,
_scrollView,
- _remoteVideoView);
+ _remoteVideoView,
+ _localVideoView);
NSSize remoteViewSize = [self remoteVideoViewSize];
NSDictionary* metrics = @{
@"kLogViewHeight" : @(kLogViewHeight),
+ @"kPreviewWidth" : @(kPreviewWidth),
@"kRoomFieldWidth" : @(kRoomFieldWidth),
@"remoteViewWidth" : @(remoteViewSize.width),
@"remoteViewHeight" : @(remoteViewSize.height),
+ @"localViewHeight" : @(remoteViewSize.height),
+ @"scrollViewWidth" : @(kContentWidth - kPreviewWidth),
};
// Declare this separately to avoid compiler warning about splitting string
// within an NSArray expression.
@@ -90,10 +95,14 @@ static NSUInteger const kLogViewHeight = 280;
"-[_remoteVideoView(remoteViewHeight)]-|";
NSArray* constraintFormats = @[
verticalConstraint,
+ @"V:[_localVideoView]-[_remoteVideoView]",
+ @"V:[_localVideoView(kLogViewHeight)]",
@"|-[_roomLabel]",
@"|-[_roomField(kRoomFieldWidth)]",
- @"|-[_scrollView(remoteViewWidth)]-|",
+ @"|-[_scrollView(scrollViewWidth)]",
+ @"[_scrollView]-[_localVideoView]",
@"|-[_remoteVideoView(remoteViewWidth)]-|",
+ @"[_localVideoView(kPreviewWidth)]-|",
];
for (NSString* constraintFormat in constraintFormats) {
NSArray* constraints =
@@ -190,20 +199,17 @@ static NSUInteger const kLogViewHeight = 280;
_remoteVideoView.delegate = self;
[self addSubview:_remoteVideoView];
- // TODO(tkchin): create local video view.
- // https://code.google.com/p/webrtc/issues/detail?id=3417.
+ _localVideoView = [[RTCNSGLVideoView alloc] initWithFrame:NSZeroRect
+ pixelFormat:pixelFormat];
+ [_localVideoView setTranslatesAutoresizingMaskIntoConstraints:NO];
+ _localVideoView.delegate = self;
+ [self addSubview:_localVideoView];
}
- (NSSize)remoteVideoViewSize {
- if (_remoteVideoSize.width > 0 && _remoteVideoSize.height > 0) {
- return _remoteVideoSize;
- } else {
- return NSMakeSize(kContentWidth, kContentHeight);
- }
-}
-
-- (NSSize)localVideoViewSize {
- return NSZeroSize;
+ NSInteger width = MAX(_remoteVideoSize.width, kContentWidth);
+ NSInteger height = (width/16) * 9;
+ return NSMakeSize(width, height);
}
@end
@@ -260,6 +266,7 @@ static NSUInteger const kLogViewHeight = 280;
- (void)appClient:(ARDAppClient *)client
didReceiveLocalVideoTrack:(RTCVideoTrack *)localVideoTrack {
_localVideoTrack = localVideoTrack;
+ [_localVideoTrack addRenderer:self.mainView.localVideoView];
}
- (void)appClient:(ARDAppClient *)client
@@ -306,8 +313,11 @@ static NSUInteger const kLogViewHeight = 280;
- (void)resetUI {
[_remoteVideoTrack removeRenderer:self.mainView.remoteVideoView];
+ [_localVideoTrack removeRenderer:self.mainView.localVideoView];
_remoteVideoTrack = nil;
+ _localVideoTrack = nil;
[self.mainView.remoteVideoView renderFrame:nil];
+ [self.mainView.localVideoView renderFrame:nil];
}
- (void)disconnect {
« no previous file with comments | « webrtc/examples/objc/AppRTCDemo/mac/APPRTCAppDelegate.m ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698