@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 _audioSourceDelegate; id _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