@class BWRamp, NSString, NSArray, FigCaptureMachPortSendRight, CIContext, BWPreviewRegistration, BWPixelBufferPool, BWSpringSimulation, NSObject, NSMutableDictionary, BWFencedAnimationQueue, BWMemoryPoolFlushAssertion; @protocol BWPreviewStitcherDelegate, OS_dispatch_queue, OS_dispatch_group; @interface BWPreviewStitcherNode : BWNode { struct { int width; int height; } _outputDimensions; int _rotationDegrees; BOOL _flipHorizontal; BOOL _flipVertical; double _primaryCaptureRectYInset; int _primaryCaptureRectPixelInset; double _primaryCaptureRectCenterX; int _primaryCaptureRectCenterXPixelOffset; int _primaryCaptureRectCenterXPixelOffsetFudge; BOOL _previewsWideBeforeSlaveStreamStarts; BOOL _generatesHistogram; int _maxLossyCompressionLevel; BOOL _superWideFallbackForMacroSceneEnabled; BOOL _haveSuperWideCamera; BOOL _haveTeleCamera; float _superWideBaseZoomFactor; float _wideBaseZoomFactor; float _teleBaseZoomFactor; float _superWideCorrectedBaseZoomFactor; float _wideBaseZoomFactorOverride; BOOL _wideBaseZoomFactorDynamicOverrideEnabled; float _wideBaseZoomFactorDynamicOverride; float _wideBaseZoomFactorDynamicOverrideScaled; float _wideBaseZoomFactorOverrideMacro; float _widePinholeFocalLengthInfinity; float _widePinholeFocalLengthMacro; float _dynamicWideBaseZoomFactorSmoothingFactor; BOOL _inputBuffersHaveHorizontalOverscanOnly; float _dynamicCameraScaleMSRMarginPercentage; NSArray *_wideNondisruptiveSwitchingZoomFactors; float _wideNondisruptiveSwitchingScaleFactor; float _lastWideNondisruptiveSwitchingScaleFactor; BOOL _wideNondisruptiveSwitchingCroppedFrameEnabled; BOOL _wideNondisruptiveSwitchingCurrentFrameIsCropped; float _teleBaseZoomFactorOverride; struct { int width; int height; } _sensorBinningFactor; float _shiftSmoothingFactor; BOOL _applyShift; struct CGPoint { double x; double y; } _superWideToWideBravoShift; struct CGPoint { double x; double y; } _wideToTeleBravoShift; struct OpaqueVTPixelRotationSession { } *_intermediateRotationSession; struct OpaqueVTPixelRotationSession { } *_outputRotationSession; struct opaqueCMFormatDescription { } *_outputFormatDescription; struct CGAffineTransform { double a; double b; double c; double d; double tx; double ty; } _outputTransform; id<BWPreviewStitcherDelegate> _delegate; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _configurationLock; BOOL _deviceIsStationary; BOOL _pendingRegistrationAfterDeviceBecomesStationary; BOOL _registrationEnabled; int _lastRegisteredFrameCaptureID; BOOL _lastRegistrationEnabled; int _registrationType; BOOL _excludeStaticComponentFromAlignmentShiftsEnabled; BWPreviewRegistration *_registration; BOOL _registrationResourcesAllocated; BOOL _firstRegistrationCompleted; BOOL _firstRegistrationIsSynchronous; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _shiftCorrectionsUpdateLock; struct BWPreviewStitcherShiftCorrection { struct CGPoint { double x; double y; } currentValue; struct CGPoint { double x; double y; } updatedValue; BOOL valueIsUpdated; BOOL lastRegistrationWasValid; int registeredFrameCaptureID; BWRamp *rampX; BWRamp *rampY; } _wideToTeleShiftCorrections[3]; struct BWPreviewStitcherShiftCorrection { struct CGPoint { double x; double y; } currentValue; struct CGPoint { double x; double y; } updatedValue; BOOL valueIsUpdated; BOOL lastRegistrationWasValid; int registeredFrameCaptureID; BWRamp *rampX; BWRamp *rampY; } _superWideToWideShiftCorrections[3]; int _registrationFrameSkipCount; int _registrationUpdateRampFrameCount; BOOL _registerFirstFrame; double _primaryCameraAspectRatio; float _lastPrimaryCameraAspectRatio; FigCaptureMachPortSendRight *_fencePortSendRight; BOOL _displaysWidestCameraOnly; BOOL _displaysPrimaryCameraOnly; BOOL _drawWiderCameraOnly; BOOL _currentZoomRequiresWiderCamera; BOOL _lastZoomingOrSwitchingCameras; float _rampZoomFactorOfInterest; float _rampStartZoomFactor; NSString *_lastRecommendedMasterPortType; NSString *_lastPreferredMasterPortType; NSString *_lastNarrowerPortType; BOOL _lastNarrowerCameraIsTele; BWRamp *_teleOpacityRamp; BWPixelBufferPool *_teleOpacityPool; BWMemoryPoolFlushAssertion *_teleOpacityPoolReadyAssertion; struct { int width; int height; } _teleOpacityPoolDimensions; CIContext *_teleOpacityCIContext; BOOL _teleOpacityRampForSuperMacroFallbackTransition; int _screenScale; BOOL _frameRateBasedRampsEnabled; NSObject<OS_dispatch_queue> *_ciPreheatingQueue; NSObject<OS_dispatch_group> *_ciPreheatingGroup; BOOL _havePreheatedCI; struct { long long value; int timescale; unsigned int flags; long long epoch; } _firstFramePTS; BOOL _edgeFeatheringEnabled; BOOL _showFeatherGradient; float _edgeFeatheringAspectCompensation; float _zoomInFeatheringInnerRadiusStart; float _zoomInFeatheringInnerRadiusEnd; float _zoomInFeatheringOuterRadiusStart; float _zoomInFeatheringOuterRadiusEnd; float _zoomOutFeatheringInnerRadiusStart; float _zoomOutFeatheringInnerRadiusEnd; float _zoomOutFeatheringOuterRadiusStart; float _zoomOutFeatheringOuterRadiusEnd; BOOL _featherEdgesForOpacityRamp; struct opaqueCMSampleBuffer { } *_lastSampleBuffer; struct { long long value; int timescale; unsigned int flags; long long epoch; } _lastRenderedPTS; BOOL _multiCameraStitchingEnabled; BOOL _aspectRatioChanging; long long _lastRenderTime; float _additionalZoomFactor; float _additionalZoomFactorSpringStartFactor; struct { long long value; int timescale; unsigned int flags; long long epoch; } _additionalZoomFactorSpringStartPTS; BWSpringSimulation *_additionalZoomFactorSpring; NSMutableDictionary *_blackFilledBorderRectsBySurfaceID; BOOL _forceBlackFillBorderEnabled; int _overCaptureStatus; struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _wideFocusDistanceFarEnoughForStitching; BOOL _hideSuperWideOverCaptureWhenTooClose; BOOL _superWideOccludedByWide; BOOL _superWideDrawingSuspendedUntilFocusImproves; BOOL _hideSuperWideStitchingWhenTooClose; BOOL _hidePartialOverCapture; struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _widerCameraFoVFillsOverCapture; float _uiZoomFactor; BOOL _deviceTooHotDimmingEnabled; int _wideFallbackMode; struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _wideFocusDistanceFarEnoughToUseTele; BOOL _wideFocusingOneShot; BOOL _teleFocusingOneShot; BWRamp *_wideFallbackShiftRamp; struct CGPoint { double x; double y; } _wideFallbackRecenteringShiftOffset; BOOL _wantWideFallbackDueToTeleAEAF; BOOL _wideFallbackShiftRampTargetValueIsWide; BOOL _wideFallbackUserInitiatedTuningEnabled; BOOL _lastWideCameraFallbackWasUserInitiated; int _lastRecommendedMasterSelectionReason; struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _wideFocusDistanceFarEnoughToUseWide; BWRamp *_superWideFallbackShiftRamp; BOOL _superWideFallbackShiftRampTargetValueIsSuperWide; struct CGPoint { double x; double y; } _superWideFallbackRecenteringShiftOffset; float _superWideFallbackRecenteringStrength; BOOL _wantSuperWideFallback; BOOL _superWideFallbackTransitioningWithStreamingPortTypesChanged; BOOL _superMacroUserInitiatedFallbackTuningEnabled; BOOL _lastSuperWideCameraFallbackWasUserInitiated; BOOL _inSuperMacroRange; BOOL _superMacroRangeRegistrationTuningEnabled; struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _superWideFocusDistanceFarEnoughForRegistration; BOOL _superMacroOpacityRampOnFullPrimaryRectEnabled; BOOL _superMacroEdgeFeatheringBlurEnabled; float _superMacroEdgeFeatheringBlurInset; BOOL _superMacroEdgeFeatheringShowBlurMask; BOOL _waitsForRegistrationToComplete; BWFencedAnimationQueue *_fencedAnimationQueue; BOOL _momentMovieRecordingRecenteringEnabled; int _momentMovieRecordingRecenteringShiftRampFrameCount; BOOL _borderBlurEnabled; float _borderBlurStrength; BOOL _borderStretchEnabled; float _borderStretchScaleFactor; float _borderStretchNextNarrowerBaseZoomFactorMultiplier; BOOL _zoomPIPOverlayEnabled; BOOL _zoomPIPSingleStreamModeEnabled; BOOL _zoomPIPUseNarrowerCamera; float _zoomPIPMinimumUIZoomFactor; BOOL _previewTapRegistered; BOOL _fractionalSourceRectEnabled; BOOL _propagateDepth; BOOL _parallaxMitigationBasedOnZoomFactorEnabled; } @property (nonatomic) id<BWPreviewStitcherDelegate> delegate; @property BOOL displaysWidestCameraOnly; @property (nonatomic) BOOL stoppingForModeSwitch; @property (nonatomic) BOOL previewTapRegistered; + (void)initialize; - (int)rotationDegrees; - (void)prepareForCurrentConfigurationToBecomeLive; - (void)renderSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 forInput:(id)a1; - (void)dealloc; - (void)configurationWithID:(long long)a0 updatedFormat:(id)a1 didBecomeLiveForInput:(id)a2; - (id)nodeType; - (void)didReachEndOfDataForInput:(id)a0; - (void)didSelectFormat:(id)a0 forInput:(id)a1; - (id)nodeSubType; - (void)setFlipHorizontal:(BOOL)a0; - (void)setRotationDegrees:(int)a0; - (BOOL)flipVertical; - (id)previewRegistrationType; - (BOOL)generatesHistogram; - (int)maxLossyCompressionLevel; - (void)setMaxLossyCompressionLevel:(int)a0; - (void)setGeneratesHistogram:(BOOL)a0; - (void)setOutputDimensions:(struct { int x0; int x1; })a0; - (BOOL)flipHorizontal; - (void)setFlipVertical:(BOOL)a0; - (struct { int x0; int x1; })outputDimensions; - (void)setForceBlackFillBorderEnabled:(BOOL)a0; - (BOOL)centerRegistrationValid; - (id)focusingDescription; - (BOOL)forceBlackFillBorderEnabled; - (id)initWithCameraInfoByPortType:(id)a0 sensorBinningFactor:(struct { int x0; int x1; })a1 inputBuffersHaveHorizontalOverscanOnly:(BOOL)a2 registrationType:(int)a3 registrationMetalCommandQueue:(id)a4 excludeStaticComponentFromAlignmentShifts:(BOOL)a5 propagateDepth:(BOOL)a6 parallaxMitigationBasedOnZoomFactorEnabled:(BOOL)a7 zoomPIPOverlayEnabled:(BOOL)a8 zoomPIPMinimumUIZoomFactor:(float)a9 zoomPIPSingleStreamModeEnabled:(BOOL)a10; - (id)initWithStitchingDisabledAndZoomPIPOverlayEnabled:(BOOL)a0 zoomPIPMinimumUIZoomFactor:(float)a1 zoomPIPSingleStreamModeEnabled:(BOOL)a2 propagateDepth:(BOOL)a3 parallaxMitigationBasedOnZoomFactorEnabled:(BOOL)a4; - (id)overCaptureStatusString; - (BOOL)previewsWideBeforeSlaveStreamStarts; - (double)primaryCameraAspectRatio; - (id)primaryCameraShortDisplayName; - (double)primaryCaptureRectCenterX; - (double)primaryCaptureRectYInset; - (void)rampToAdditionalZoomFactor:(double)a0 momentMovieRecordingRecenteringEnabled:(BOOL)a1; - (void)setPreviewsWideBeforeSlaveStreamStarts:(BOOL)a0; - (void)setPrimaryCameraAspectRatio:(double)a0; - (void)setPrimaryCaptureRectAspectRatio:(double)a0 center:(struct CGPoint { double x0; double x1; })a1 fencePortSendRight:(id)a2; - (void)setPrimaryCaptureRectCenterX:(double)a0; - (void)setPrimaryCaptureRectYInset:(double)a0; - (void)setSuperWideFallbackForMacroSceneEnabled:(BOOL)a0; - (void)setWaitsForRegistrationToComplete:(BOOL)a0; - (BOOL)superWideFallbackForMacroSceneEnabled; - (float)superWideFocusDistance; - (BOOL)tooCloseFor1xStitching; - (BOOL)tooCloseForSuperWideRegistration; - (BOOL)waitsForRegistrationToComplete; - (float)wideBaseZoomFactor; - (id)wideFallbackDescription; - (float)wideFocusDistance; @end