@class VideoMattingMetal, NSString, VideoRelightingMetal, CVAFilterAlphaBlend, NSDictionary, NSObject; @protocol MTLTexture, CVAVideoPipelineProperties, OS_dispatch_queue, MTLPipelineLibrarySPI, MTLLibrary, CVAVideoPipelinePropertiesSPI, MTLCaptureScope, MTLCommandQueue, MTLDeviceSPI; @interface CVAPortraitVideoPipeline_Impl : NSObject { NSObject *_notificationQueue; id _properties; BOOL _treatFixedPointDisparityAsDense; BOOL _useSixteenBitPrecisionForDenseStereoDisparityConversion; BOOL _renderForegroundBlur; float _disparityOffset; struct __CVBuffer { } *_untransformedCanonicalDisparityPixelBuffer; struct __CVPixelBufferPool { } *_canonicalDisparityPixelBufferPool; struct VideoPostprocessingParams { BOOL useFaceAsFocus; float faceSizeRatioInFocus; BOOL fillLargeHolesWithBackground; float disparityIntervalInHoleSearch; float backgroundFillMarginFromValidDisparity_px; BOOL useTemporalRejection; } _vmPostprocessingParams; struct VideoMattingStaticParams { BOOL supportsForegroundBlur; unsigned int colorWidth; unsigned int colorHeight; unsigned int shiftWidth; unsigned int shiftHeight; unsigned int alphaWidth; unsigned int alphaHeight; int guidedFilterWidth; int guidedFilterHeight; unsigned int kernelSize; float referenceShift; float guidedFilterUnconfidentWeight; float guidedFilterMinDistToDeweight; float alphaMaxLaplacian; float alphaContrastExponent; float shiftFilterColorStd; float shiftFilterUpdateRate; float minimumConfidenceToKeepDisparity; float maximumSimilarityToKeepDisparity; float maxShiftFillingInconsistency; float maxShiftFillingDistFromFg; unsigned int maxDistToPushShiftEdgesFwd; unsigned int maxDistToPushShiftEdgesRev; int shiftPushingBgToFgShiftDifference; float foregroundMaskDilationRadius; float infConvolutionDownsampling; float laplacianLimitingDownsampling; float laplacianLimitingBlurSize; } _vmStaticParams; struct VideoMattingDynamicParams { float updateRate; float sdofDeltaCanonicalDisparity; float alphaCoeffFilterColorStd; float alphaGammaExponent; float focusCanonicalDisparity; float backgroundCanonicalDisparity; float thresholdHardness; struct array { float __elems_[3]; } gravity; float alphaMatteDeltaCanonicalDisparity; BOOL doDisparityHoleFilling; } _vmDynamicParams; struct DynamicMetaParams { float mattingCoeffUpdateRate; float mattingCoeffUpdateRateFast; float mattingCoeffColorStd; float mattingCoeffColorStdFast; } _vmDynamicMetaParams; struct Preferences { BOOL drawFocusMachineState; int overlayShiftOnRendering; int displayFrameTime; int noiseBits; int fNumber_tenths; BOOL bypassGPUProcessing; BOOL bypassCPUProcessing; } _preferences; struct unique_ptr> { struct __compressed_pair> { struct DisparityConversion *__value_; } __ptr_; } _disparityConversion; struct unique_ptr> { struct __compressed_pair> { struct GeometricTransformation *__value_; } __ptr_; } _disparityGeometricTransformation; struct unique_ptr> { struct __compressed_pair> { struct FocusStatsPostprocessing *__value_; } __ptr_; } _focusStatsPostprocessing; struct unique_ptr> { struct __compressed_pair> { struct DisparityAutofocus *__value_; } __ptr_; } _disparityAutofocus; struct unique_ptr> { struct __compressed_pair> { struct DisparityStatistics *__value_; } __ptr_; } _disparityStatistics; struct unique_ptr> { struct __compressed_pair> { struct FocusStateMachine *__value_; } __ptr_; } _focusStateMachine; struct unique_ptr> { struct __compressed_pair> { struct StageLightStateMachine *__value_; } __ptr_; } _stageLightStateMachine; struct unique_ptr> { struct __compressed_pair> { struct SdofStateMachine *__value_; } __ptr_; } _sdofIntensityStateMachine; VideoMattingMetal *_vmAccelerator; VideoRelightingMetal *_vrAccelerator; CVAFilterAlphaBlend *_filterAlphaBlend; struct RetainPtr<__CVBuffer *> { void *m_ptr; } _intermediateRelightSourceBuffer; struct RetainPtr<__CVBuffer *> { void *m_ptr; } _intermediateTransitionBufferFrom; struct RetainPtr<__CVBuffer *> { void *m_ptr; } _intermediateTransitionBufferTo; NSDictionary *_faceKitProcessOutput; float _portraitStyleStrength; NSDictionary *_metadata; struct TransitionData { BOOL _inTransition; } _transitionData; float _referenceLensPosition_um; struct CVAPhotoMetalContext { id device; id commandQueue; id library; id pipelineLibrary; id captureScope; struct unique_ptr> { struct __compressed_pair> { struct CVAPerfEndTimeProfilerSet *__value_; } __ptr_; } profiler; BOOL _alreadyInCaptureScope; } _metalContext; int _debugGPUCaptureFrameNumber; BOOL _debugLogTransition; BOOL _debugLogTransitionPrintTrivial01; id _yuvSourceDownsampledAlias; float _priorDisparity; } @property (copy, nonatomic) id videoPipelineProperties; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (int)pixelBufferPoolCreateWithWidth:(unsigned long long)a0 height:(unsigned long long)a1 pixelFormat:(unsigned int)a2 pool:(struct __CVPixelBufferPool **)a3; + (void)drawDisparity:(const struct __CVBuffer { } *)a0 onColor:(struct __CVBuffer { } *)a1 canonical:(BOOL)a2 rawShiftInvalidThreshold:(int)a3 focusMachineState:(int)a4 offsetX:(unsigned long long)a5 offsetY:(unsigned long long)a6; - (BOOL)validateSegmentationPixelBuffer:(struct __CVBuffer { } *)a0 matchFormat:(id)a1 error:(id *)a2; - (id)internal_extractMatteWithRequest:(id)a0 disparityPostprocessingResult:(id)a1 usePostprocessedDisparity:(BOOL)a2 dilateForegroundMask:(BOOL)a3 gravity:(struct CVAVector { double x0; double x1; double x2; })a4 transitionData:(const struct TransitionData { BOOL x0; } *)a5 isMattingNeeded:(BOOL)a6 mattingCompletionHandler:(id /* block */)a7 isFinalStage:(BOOL)a8 status:(int *)a9; - (void)dealloc; - (int)extractMatteWithRequest:(id)a0; - (int)postprocessDisparityWithRequest:(id)a0; - (void)internal_relightWithRequest:(id)a0 intermediateSourceBuffer:(struct __CVBuffer { } *)a1 faceKitProcessOutput:(id)a2 portraitStyleStrength:(float)a3 mattingResult:(id)a4 singleCubeData:(id)a5 portraitCompletionHandler:(id /* block */)a6 timestamp:(long long)a7 status:(int *)a8; - (id)initWithProperties:(id)a0 error:(id *)a1; - (int)postprocessDisparityWithRequest:(id)a0 disparityPostprocessingCompletionHandler:(id /* block */)a1; - (id)internal_postprocessDisparityWithRequest:(id)a0 disparityPostprocessingCompletionHandler:(id /* block */)a1 isFinalStage:(BOOL)a2 status:(int *)a3; - (id).cxx_construct; - (id)initWithProperties:(id)a0 commandQueue:(id)a1 notificationQueue:(id)a2 error:(id *)a3; - (int)renderWithRequest:(id)a0 requestTo:(id)a1 mixValue:(float)a2 destinationColorPixelBuffer:(struct __CVBuffer { } *)a3 error:(id *)a4 disparityPostprocessingCompletionHandler:(id /* block */)a5 mattingCompletionHandler:(id /* block */)a6 portraitCompletionHandler:(id /* block */)a7; - (BOOL)validateMattingRequest:(id)a0 error:(id *)a1; - (void)internal_renderStageLightWithRequest:(id)a0 mattingResult:(id)a1 portraitCompletionHandler:(id /* block */)a2 status:(int *)a3; - (BOOL)validateDisparityPostprocessingRequest:(id)a0 error:(id *)a1; - (id)internal_extractMatteWithRequest:(id)a0 disparityPostprocessingResult:(id)a1 usePostprocessedDisparity:(BOOL)a2 dilateForegroundMask:(BOOL)a3 gravity:(struct CVAVector { double x0; double x1; double x2; })a4 transitionData:(const struct TransitionData { BOOL x0; } *)a5 mattingCompletionHandler:(id /* block */)a6 isFinalStage:(BOOL)a7 status:(int *)a8; - (void).cxx_destruct; - (BOOL)validatePortraitRequest:(id)a0 error:(id *)a1; - (int)internal_fixFocusPositionWithDisparityPostprocessingRequest:(id)a0; - (int)renderWithRequest:(id)a0; - (void)internal_renderWithRequest:(id)a0 dstBuffer:(struct __CVBuffer { } *)a1 mattingResult:(id)a2 portraitCompletionHandler:(id /* block */)a3 status:(int *)a4 timestamp:(long long)a5; - (int)renderSingleEffectWithRequest:(id)a0 destinationColorPixelBuffer:(struct __CVBuffer { } *)a1 error:(id *)a2 disparityPostprocessingCompletionHandler:(id /* block */)a3 mattingCompletionHandler:(id /* block */)a4 portraitCompletionHandler:(id /* block */)a5 requestFrom:(id)a6 requestTo:(id)a7; - (int)renderWithRequest:(id)a0 disparityPostprocessingCompletionHandler:(id /* block */)a1 mattingCompletionHandler:(id /* block */)a2 portraitCompletionHandler:(id /* block */)a3; - (int)makeMetalContextWithOptionalCommandQueue:(id)a0 error:(id *)a1; - (int)extractMatteWithRequest:(id)a0 disparityPostprocessingCompletionHandler:(id /* block */)a1 mattingCompletionHandler:(id /* block */)a2; @end