luxlabs header browser preview


@class NSMutableDictionary, BWInferenceResult;

@interface BWVariableFrameRateSelector : NSObject {
    float _suggestedFrameRate;
    int _mode;
    float _integrationTimeFrom60To30;
    float _integrationTimeFrom30To24;
    float _integrationTimeFrom30BackTo60;
    NSMutableDictionary *_vfrAEMaxGainsByPortType;
    NSMutableDictionary *_variableFrameRateInfo;
    struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _variableFrameRateInfoLock;
    int _frameRateConversionStatus;
    BOOL _lastStabilityFlag;
    BOOL _deviceMotionEnabled;
    BOOL _sceneMotionEnabled;
    BOOL _zoomInProgress;
    struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _sceneMotionAEInLowLight;
    struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _sceneMotionAEInHighLight;
    struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _deviceMotionInLowLight;
    struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _deviceMotionInHighLight;
    struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _aeLimits;
    struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _zoomRequest;
    struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _flickerDetected;
    struct BWSmartCameraScene { BOOL enabled; BOOL confident; float confidenceFilterRatio; float filteredConfidence; float confidenceThreshold; float confidenceHysteresisValueLag; short confidenceHysteresisTemporalLagBeforeConfident; short confidenceHysteresisTemporalLagBeforeNotConfident; short currentTemporalHysteresis; BOOL resetTemporalHysteresisAndFilteringOnNextUpdate; char *name; } _waterSceneDetected;
    float _previousEITForAELimitsReached;
    int _globalMotionAE;
    NSMutableDictionary *_highLightSceneMotionThresholdsByPortType;
    NSMutableDictionary *_lowLightSceneMotionThresholdsByPortType;
    struct { double w; double x; double y; double z; } _lastQuaternion;
    struct { double w; double x; double y; double z; } _lastQuaternionDiff;
    BOOL _testRun;
    BOOL _frameRateConversionInVISNodeEnabled;
    BWInferenceResult *_mostRecentInferenceResult;
    struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _smartCameraLock;
    struct { int reason; int mode; float fromFR; float toFR; struct { long long value; int timescale; unsigned int flags; long long epoch; } time; BOOL isSceneStable; BOOL aeLimitsReached; BOOL waterSceneDetected; int currentFrameRate; } _state;
}

@property (readonly, nonatomic) float suggestedFrameRate;

+ (void)initialize;

- (void)dealloc;
- (void)addAttachmentsToSamplebuffer:(struct opaqueCMSampleBuffer { } *)a0;
- (float)getAEMaxGainForPortType:(id)a0 suggestedFrameRate:(double)a1;
- (id)initWithPortTypes:(id)a0 forParameters:(id)a1 frameRateSwitchBasedOnMotionDisabled:(BOOL)a2;
- (void)processSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 frameStatistics:(id)a1 currentFrameRate:(float)a2 aeMaxGain:(float)a3 zoomInProgress:(BOOL)a4 mostRecentInferenceResult:(id)a5;

@end