diff --git a/CocoaSplit/InputSource.h b/CocoaSplit/InputSource.h index 797276f9..2c11dd39 100644 --- a/CocoaSplit/InputSource.h +++ b/CocoaSplit/InputSource.h @@ -252,6 +252,7 @@ typedef enum resize_style_t { NSDictionary *_undoActionMap; float _croppedAR; NSMutableArray *_frameUpdateQueue; + NSSize _previousSize; diff --git a/CocoaSplit/InputSource.m b/CocoaSplit/InputSource.m index c3864f65..a6492f26 100644 --- a/CocoaSplit/InputSource.m +++ b/CocoaSplit/InputSource.m @@ -745,6 +745,7 @@ static NSArray *_sourceTypes = nil; _needsAdjustPosition = NO; _topLevelHeight = 0; _topLevelWidth = 0; + _previousSize = NSZeroSize; _frameUpdateQueue = [NSMutableArray array]; self.changeInterval = 20.0f; @@ -2094,6 +2095,21 @@ static NSArray *_sourceTypes = nil; [self.videoInput frameTickFromInput:self]; [self.layer frameTick]; + NSSize capSize = self.videoInput.captureSize; + + if (!NSEqualSizes(capSize, _previousSize) ) + { + if (!NSEqualSizes(NSZeroSize, _previousSize)) + { + resize_style resizeSave = self.resizeType; + self.resizeType = kResizeCenter | kResizeFree; + [self updateSize:capSize.width height:capSize.height]; + self.resizeType = resizeSave; + } + _previousSize = capSize; + } + + if (self.needsAdjustment) { [self adjustInputSize:self.needsAdjustPosition]; diff --git a/CocoaSplit/PluginBaseClasses/CSCaptureBase.m b/CocoaSplit/PluginBaseClasses/CSCaptureBase.m index 63f89689..f0db5812 100644 --- a/CocoaSplit/PluginBaseClasses/CSCaptureBase.m +++ b/CocoaSplit/PluginBaseClasses/CSCaptureBase.m @@ -87,7 +87,6 @@ _fps_start_time = CFAbsoluteTimeGetCurrent(); _fps_frame_cnt = 0; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateStatistics:) name:CSNotificationStatisticsUpdate object:nil]; }