luxlabs header browser preview


@class FigCaptureRecordingSettings, NSArray, NSDictionary, BWNodeInput, BWMotionDataTimeMachine, NSMutableArray, NSString;
@protocol BWAudioSourceRecordingReadinessDelegate, BWNodeFileCoordinatorStatusDelegate;

@interface BWFileCoordinatorNode : BWNode {
    NSArray *_stagingQueues;
    NSMutableArray *_pendingIrisRequestMarkerBuffers;
    FigCaptureRecordingSettings *_settings;
    long long _currSettingsID;
    BOOL _currSettingsPrefersNoInterruptionsByRingtonesAndAlerts;
    BOOL _currSettingsIsIris;
    BOOL _currSettingsIsIrisMovieRecording;
    NSDictionary *_videoSettings;
    float _maxFrameRate;
    int _recordingState;
    BWNodeInput *_masterInput;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _inputOffset;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _lastMasterPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _lastMasterDuration;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _lastMasterEndingPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _masterStartingPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _largestStagedSupportingAudioVideoStagedPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _largestAudioPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _largestMetadataPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _masterStoppingPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _stopRecordingPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _stopRecordingAudioOffset;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _stopRecordingObservedLastVideoPTS;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _focusWaitTimeStart;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _torchWaitTimeStart;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _startAfterPTS;
    double _focusWaitTime;
    double _torchWaitTime;
    double _maxFocusWaitTime;
    int _firstFrameFocusingMethod;
    int _firstFrameAFStatus;
    int _numberOfFocusWaitBuffersDropped;
    int _numberOfTorchWaitBuffersDropped;
    BOOL _focusWaitTimedOut;
    BOOL _sendFlushMarkerWhenStopping;
    BOOL _haveSeenAudioWhenStarting;
    BOOL _lowLatencyCanTransitionEarlyToRecording;
    BOOL _lowLatencyCanTossExtraVideoWhenStopping;
    BOOL _firstAudioHasBeenProcessed;
    int _terminationErrorCode;
    struct OpaqueCMBlockBuffer { } *_emptyMetadataSampleData;
    const struct opaqueCMFormatDescription **_formatDescriptionsForInputs;
    struct OpaqueFigSimpleMutex { } *_stateMutex;
    unsigned long long _numInputs;
    unsigned long long _numOutputs;
    unsigned long long _numVideoInputs;
    unsigned long long _numAudioInputs;
    unsigned long long _numMetadataInputs;
    unsigned long long _numActionOnlyOutputs;
    unsigned long long _masterInputIndex;
    unsigned long long _firstAudioInputIndex;
    NSMutableArray *_idleInputIndicesWaitingForFlush;
    BOOL _lowLatencyModeEnabled;
    BOOL _flagsLastFrameForVideoCompressor;
    BOOL _overCaptureEnabled;
    BOOL _overCaptureIsRequested;
    BOOL _overCaptureActiveSlaveStreamForcedOff;
    BOOL _attachOverCaptureActiveSlaveStreamForcedOffMarkerBuffer;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _firstAudioPTSReadyForRecording;
    id<BWAudioSourceRecordingReadinessDelegate> _audioSourceDelegate;
    id<BWNodeFileCoordinatorStatusDelegate> _fileCoordiatorStatusDelegate;
    BWMotionDataTimeMachine *_motionDataTimeMachine;
    NSMutableArray *_videoSampleBuffersWaitingForMetadata;
    unsigned long long _cinematicLookAheadFrameCount;
    unsigned long long _pendingMotionDataSerialNumber;
    unsigned long long _largestEmittedLookAheadMotionDataSerialNumber;
    BOOL _lookAheadMotionDataPreloadHasBeenAttached;
    BOOL _receivedFinalEnqueuedIrisReferenceRequest;
    unsigned long long _droppedFramesCountDueToISP;
    NSString *_lastPortType;
}

+ (void)initialize;

- (void)handleDroppedSample:(id)a0 forInput:(id)a1;
- (int)cinematicLookAheadFrameCount;
- (id)audioSourceDelegate;
- (id)init;
- (void)renderSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 forInput:(id)a1;
- (void)dealloc;
- (void)configurationWithID:(long long)a0 updatedFormat:(id)a1 didBecomeLiveForInput:(id)a2;
- (BOOL)flagsLastFrameForVideoCompressor;
- (void)setFileCoordiatorStatusDelegate:(id)a0;
- (id)nodeType;
- (void)didReachEndOfDataForInput:(id)a0;
- (void)tryToEmitFramesWaitingForMotion;
- (void)didSelectFormat:(id)a0 forInput:(id)a1;
- (id)nodeSubType;
- (id)fileCoordiatorStatusDelegate;
- (void)pauseRecording;
- (void)setAudioSourceDelegate:(id)a0;
- (void)recordingTerminated:(long long)a0;
- (int)startRecordingWithSettings:(id)a0 videoSettings:(id)a1 maxFrameRate:(float)a2 stopAtPTS:(struct { long long x0; int x1; unsigned int x2; long long x3; })a3 startAfterPTS:(struct { long long x0; int x1; unsigned int x2; long long x3; })a4;
- (void)setFlagsLastFrameForVideoCompressor:(BOOL)a0;
- (void)setCinematicLookAheadFrameCount:(int)a0;
- (BOOL)updateStopPTS:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0 audioOffset:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1 previousStopPTS:(struct { long long x0; int x1; unsigned int x2; long long x3; } *)a2 previousAudioOffset:(struct { long long x0; int x1; unsigned int x2; long long x3; } *)a3;
- (void)cancelStartRecordingWithSettings:(id)a0;
- (void)stopRecordingWithErrorCode:(int)a0;
- (void)resumeRecording;
- (id)initWithNumberOfVideoInputs:(unsigned long long)a0 numberOfAudioInputs:(unsigned long long)a1 numberOfMetadataInputs:(unsigned long long)a2 numberOfActionOnlyOutputs:(unsigned long long)a3 overCaptureEnabled:(BOOL)a4 allowLowLatencyWhenPossible:(BOOL)a5 motionDataTimeMachine:(id)a6;

@end