@class PTMetalContext, PTMTLDropHints; @protocol MTLComputePipelineState, MTLBuffer, MTLTexture; @interface LKTFlowGPU : NSObject { PTMetalContext *_metalContext; id _computePipelines[12]; unsigned long long _maxThreadExecutionWidth; struct CGSize { double width; double height; } _ref_pyr_size[10]; struct CGSize { double width; double height; } _aux_pyr_size[10]; id _I_tex[2][10]; id _I_u32_alias_tex[2][10]; id _G0_tex[10]; id _G1_tex[10]; id _C0_tex[10]; id _C1_tex[10]; id _Adiagb_buf[2]; id _Ixy_buf[2]; id _idt_buf; id _w_tex[10]; id _uv_fwd_tex[2][10]; id _uv_bwd_tex[2][10]; id _uv_fwd_u32_alias_tex[2][10]; id _uv_bwd_u32_alias_tex[2][10]; int _current_frame_index; BOOL _indexUpdated[2]; id _uv_fwd_tex_user_ref; id _uv_bwd_tex_user_ref; id _kpt_buf; PTMTLDropHints *_dropHints; } @property (readonly, nonatomic) BOOL isValid; @property (nonatomic) BOOL needConversionBGRA2YUVA; @property (readonly, nonatomic) struct CGSize { double width; double height; } ref_size; @property (readonly, nonatomic) struct CGSize { double width; double height; } aux_size; @property (readonly, nonatomic) int nscales; @property (readonly, nonatomic) int streamFrameCount; @property (nonatomic) int nwarpings; @property (nonatomic) BOOL useNonLocalRegularization; @property (nonatomic) int nlreg_radius; @property (nonatomic) int nlreg_padding; @property (nonatomic) float nlreg_sigma_l; @property (nonatomic) float nlreg_sigma_c; @property (nonatomic) float nlreg_sigma_w; @property (nonatomic) BOOL isBidirectional; @property (nonatomic) BOOL isInverse; @property (readonly, nonatomic) id keypoints; + (void)_computeScalingFactor:(id)a0 dst_tex:(id)a1 scale_xy_inv:(void *)a2 coeff:(float *)a3; - (void)reset; - (void)setPreset:(long long)a0; - (void).cxx_destruct; - (int)_setupBuffer; - (int)_computeFeaturesDerivativesWithCommandBuffer:(id)a0 in_tex:(id)a1 out_tex:(id)a2; - (int)_computeFeaturesWithCommandBuffer:(id)a0 in_tex:(id)a1 out_tex:(id)a2; - (int)_doNLRegularizationWithCommandBuffer:(id)a0 in_uv_tex:(id)a1 join_tex:(id)a2 w_tex:(id)a3 out_uv_tex:(id)a4; - (int)_zeroFlowWithCommandBuffer:(id)a0 uv_tex:(id)a1; - (void)_setDefaultParameters; - (int)setOutputTexUVForward:(id)a0 backward:(id)a1; - (int)_setupPipelines; - (int)setOutputTexUV:(id)a0; - (int)_computeOpticalFlow:(id)a0 computeFeatureI0:(BOOL)a1 computeFeatureI1:(BOOL)a2; - (int)_computeOpticalFlowBidirectional:(id)a0; - (int)_createImagePyramidWithCommandBuffer:(id)a0 in_tex:(id)a1 I_idx:(int)a2; - (int)_doSolverWithCommandBuffer:(id)a0 scale:(int)a1 in_uv_tex:(id)a2 in_G0_tex:(id)a3 in_G1_tex:(id)a4 in_C0_tex:(id)a5 in_C1_tex:(id)a6 out_uv_tex:(id)a7 out_w_tex:(id)a8; - (int)_downscale2XWithCommandBuffer:(id)a0 in_tex:(id)a1 out_tex:(id)a2; - (int)_enqueueFlowConsistencyWithCommandBuffer:(id)a0 in_uv0_tex:(id)a1 in_uv1_tex:(id)a2 out_uv_tex:(id)a3; - (int)_enqueueKeypointsFromFlowWithCommandBuffer:(id)a0 in_uv_fwd_tex:(id)a1 in_uv_bwd_tex:(id)a2 out_kpt_buf:(id)a3 block_size:(int)a4 bidirectional_error:(float)a5 out_num_keypoints:(unsigned short *)a6; - (void)_initMemory:(int)a0 height:(int)a1 nscales:(int)a2; - (int)computeKeypointsFromTexForwardFlow:(id)a0 backwardFlow:(id)a1 bidirectionalError:(float)a2 blockSize:(int)a3 outNumKeypoints:(unsigned short *)a4 commandBuffer:(id)a5; - (int)estimateFlowFromTexReference:(id)a0 target:(id)a1 commandBuffer:(id)a2; - (int)estimateFlowStreamTex:(id)a0 commandBuffer:(id)a1; - (int)estimateFlowStreamTex:(id)a0 index:(int)a1 doOpticalFlow:(BOOL)a2 commandBuffer:(id)a3; - (id)initWithMetalContext:(id)a0 width:(int)a1 height:(int)a2 nscales:(int)a3; - (id)newBufferWithPixelFormat:(unsigned long long)a0 width:(int)a1 data:(const void *)a2; @end