luxlabs header browser preview


@class InverseLTMBuffers, PyramidStorage, AMBNRStage, NSDictionary, AMBNRBuffers, NSMutableArray, FigMetalContext, FusionRemixStage, RegDense, BilateralGrid;
@protocol MTLTexture, MTLBuffer, SidecarWriter;

@interface DenoiseFusePipeline : NSObject {
    NSDictionary *_options;
    BOOL _supportsHDR;
    BOOL _onlySingleImageDenoising;
    FigMetalContext *_metal;
    int _currentFrame;
    AMBNRStage *_ambnrStage[4];
    AMBNRBuffers *_ambnrBuffers[2];
    int _pyrFormat;
    int _fusionAlgo;
    struct __CVBuffer { } *_gain;
    struct __CVBuffer { } *_similarityMap;
    FusionRemixStage *_fusionRemixStage;
    PyramidStorage *_fusedBands[2];
    PyramidStorage *_fusedDenoisedBands[2];
    struct __CVBuffer *_denoisedAllocInternally[4];
    int _denoisedAllocInternallyIndex;
    NSMutableArray *_recycledInputBuffers;
    BilateralGrid *_bilateralGrid;
    RegDense *_regDense;
    char *_morphology;
    id<MTLBuffer> _scratchBuffer;
    id<MTLTexture> _ltmLumaTex;
    id<MTLTexture> _ltmChromaTex;
    BOOL _resetAliasingForHDR;
    InverseLTMBuffers *_inverseLTMBuffers[4];
    unsigned long long _lastWidth;
    unsigned long long _lastHeight;
}

@property (weak, nonatomic) id<SidecarWriter> sidecarWriter;
@property (nonatomic) int forceHDRFusionReferenceFrame;
@property (nonatomic) BOOL allowModifyingInputBuffers;
@property (copy, nonatomic) id /* block */ fusionReferenceSelectionBlock;

- (void)reset;
- (void)dealloc;
- (void)releaseAllBuffers;
- (int)fuseImages:(struct __CVBuffer { } *)a0 config:(struct FusionConfiguration { int x0; struct { void /* unknown type, empty encoding */ x0[3]; } x1[4]; int x2; BOOL x3; int x4; int x5; int x6; int x7; int x8; } *)a1 properties:(struct frameProperties_t { BOOL x0; int x1; long long x2; struct exposureParameters { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; BOOL x9; } x3; BOOL x4; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x5; BOOL x6; BOOL x7; struct { void /* unknown type, empty encoding */ x0[3]; } x8; BOOL x9; struct ltmCurves { unsigned short x0[1584]; unsigned short x1[257]; unsigned short x2[257]; } x10; BOOL x11; } *)a2 pbEV0Properties:(struct frameProperties_t { BOOL x0; int x1; long long x2; struct exposureParameters { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; BOOL x9; } x3; BOOL x4; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x5; BOOL x6; BOOL x7; struct { void /* unknown type, empty encoding */ x0[3]; } x8; BOOL x9; struct ltmCurves { unsigned short x0[1584]; unsigned short x1[257]; unsigned short x2[257]; } x10; BOOL x11; } *)a3 tuningParams:(id)a4 validBufferRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a5;
- (struct __CVBuffer { } *)getDenoisingOutputBuffer:(struct __CVBuffer { } *)a0;
- (int)reAliasPyramid:(id)a0 withPixelBuffer:(struct __CVBuffer { } *)a1;
- (int)setFusionMode:(int)a0;
- (void).cxx_destruct;
- (int)reAliasPyramidsIntoIntermediateBuffersUsingOutput:(struct __CVBuffer { } *)a0;
- (int)resizeBuffersIfNeededWithWidth:(unsigned long long)a0 height:(unsigned long long)a1;
- (int)denoiseSingleImage:(struct __CVBuffer { } *)a0 input:(struct __CVBuffer { } *)a1 exposure:(struct exposureParameters { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; BOOL x9; } *)a2 tuningParams:(id)a3 highGainTuningParams:(id)a4 ltmCurves:(struct ltmCurves { unsigned short x0[1584]; unsigned short x1[257]; unsigned short x2[257]; } *)a5;
- (int)denoiseFrame:(struct __CVBuffer { } *)a0 input:(struct __CVBuffer { } *)a1 exposure:(struct exposureParameters { float x0; float x1; float x2; float x3; float x4; float x5; float x6; float x7; float x8; BOOL x9; } *)a2 tuningParams:(id)a3 highGainTuningParams:(id)a4 ltmCurves:(struct ltmCurves { unsigned short x0[1584]; unsigned short x1[257]; unsigned short x2[257]; } *)a5 recycleInput:(BOOL)a6;
- (struct __CVBuffer { } *)getDenoisedFrame:(int)a0;
- (int)baseLayer:(id)a0;
- (id)initWithContext:(id)a0 supportsHDR:(BOOL)a1 onlySingleImageDenoising:(BOOL)a2;

@end