luxlabs header browser preview


@class NSData, NSLock, NSURL, AVAssetWriter, AVAssetWriterInputMetadataAdaptor, WriterReorderQ, NSDictionary, JFXDepthCompressor, NSMutableArray, AVAssetWriterInput, AVAssetWriterInputPixelBufferAdaptor;
@protocol JFXVideoWriterDelegate;

@interface JFXVideoWriter : NSObject {
    AVAssetWriter *_videoAssetWriter;
    AVAssetWriterInput *_videoAssetWriterInput;
    AVAssetWriterInput *_audioAssetWriterInput;
    struct opaqueCMFormatDescription { } *_audioFormatHint;
    AVAssetWriter *_metadataAssetWriter;
    AVAssetWriterInput *_depthAssetWriterInput;
    AVAssetWriterInput *_compressedDepthAssetWriterInput;
    AVAssetWriterInput *_exposureMetadataAssetWriterInput;
    AVAssetWriterInput *_faceMetadataAssetWriterInput;
    AVAssetWriterInput *_JFXARMetadataAssetWriterInput;
    AVAssetWriterInputPixelBufferAdaptor *_depthAdaptor;
    AVAssetWriterInputMetadataAdaptor *_exposureMetadataAdaptor;
    AVAssetWriterInputMetadataAdaptor *_faceMetadataAdaptor;
    AVAssetWriterInputMetadataAdaptor *_JFXARMetadataMetadataAdaptor;
    BOOL _wroteFirstAudioSample;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _sessionStartTime;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _sessionVideoEndTime;
    struct { long long value; int timescale; unsigned int flags; long long epoch; } _sessionMetadataEndTime;
    _Atomic BOOL _preparingWriter;
    _Atomic BOOL _finishingWritingMovie;
    NSLock *_finishingLock;
    WriterReorderQ *_reorderQ;
    NSMutableArray *_audioBufferQ;
}

@property (retain, nonatomic) NSURL *folderURL;
@property (readonly, nonatomic) NSURL *videoURL;
@property (readonly, nonatomic) NSURL *metadataURL;
@property (copy, nonatomic) NSDictionary *videoOutputSettings;
@property (copy, nonatomic) NSDictionary *audioOutputSettings;
@property (retain, nonatomic) JFXDepthCompressor *depthCompressor;
@property (copy, nonatomic) NSDictionary *depthBGRAPixelBufferAttributes;
@property (nonatomic) unsigned long long signPostID;
@property (readonly, nonatomic) BOOL wroteSessionStartTime;
@property (nonatomic) BOOL storeFaceMetadata;
@property (nonatomic) BOOL storeDepthDataAsVideoTrack;
@property (nonatomic) struct { int width; int height; } depthDimensions;
@property (retain, nonatomic) NSData *animojiMetadata;
@property (weak, nonatomic) id<JFXVideoWriterDelegate> delegate;
@property (nonatomic) BOOL trackOutOfOrderVideoBuffers;
@property (nonatomic) int depthCodecType;

+ (id)JFX_animojiMetadataIdentifier;
+ (id)JFX_funcamCaptureInterfaceOrientationMetadataIdentifier;
+ (id)META_ARMetadataTrackForAsset:(id)a0;
+ (id)META_metadataAssetTrackFromAsset:(id)a0 metadataIdentifier:(id)a1;
+ (id)JFX_faceAnchorMetadataIdentifier;
+ (id)JFX_funcamCameraPositionMetadataIdentifier;
+ (id)META_JFXARMetadataIdentifier;
+ (void)META_metadataForVideo:(id)a0 completion:(id /* block */)a1;

- (void)startSessionAtSourceTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0;
- (void).cxx_destruct;
- (void)finishWritingWithCompletionHandler:(id /* block */)a0;
- (void)JFX_drainQueuedAudioBufferBeforeSessionStart_noLock;
- (id)JFX_fileLevelMetadata;
- (BOOL)JFX_setupAutoExposureMetadataOutput:(id *)a0;
- (BOOL)JFX_setupDepthOutputWithTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0 error:(id *)a1;
- (BOOL)JFX_setupJFXARMetadataTrack:(id *)a0;
- (BOOL)JFX_setupVideoWriterWithTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0 error:(id *)a1;
- (void)JFX_writeAutoExposureMetadata:(struct opaqueCMSampleBuffer { } *)a0;
- (void)JFX_writeBuffer:(struct opaqueCMSampleBuffer { } *)a0 sampleType:(int)a1 arMetadata:(id)a2;
- (void)JFX_writeDepthData:(id)a0 timingInfo:(struct { struct { long long x0; int x1; unsigned int x2; long long x3; } x0; struct { long long x0; int x1; unsigned int x2; long long x3; } x1; struct { long long x0; int x1; unsigned int x2; long long x3; } x2; })a1;
- (void)JFX_writeFaceMetadata:(id)a0 withTimingInfo:(struct { struct { long long x0; int x1; unsigned int x2; long long x3; } x0; struct { long long x0; int x1; unsigned int x2; long long x3; } x1; struct { long long x0; int x1; unsigned int x2; long long x3; } x2; })a1;
- (BOOL)JFX_writerCanBegin:(id *)a0;
- (BOOL)JFX_writeSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 assetWriterInput:(id)a1 sampleType:(int)a2 depthAdaptor:(id)a3;
- (struct __CVBuffer { } *)JFX_copyDepthBufferAsBGRA:(struct __CVBuffer { } *)a0;
- (void)JFX_queueAudioBufferBeforeSessionStart:(struct opaqueCMSampleBuffer { } *)a0;
- (void)JFX_removeFileAtURL:(id)a0;
- (BOOL)JFX_setupAudioOutput:(id *)a0;
- (BOOL)JFX_setupCompressedDepthOutputWithTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0 error:(id *)a1;
- (BOOL)JFX_setupFaceMetadataOutput:(id *)a0;
- (BOOL)JFX_setupMetadataWriterWithTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0 error:(id *)a1;
- (BOOL)JFX_setupVideoOutput:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0 error:(id *)a1;
- (void)JFX_startSessionAtSourceTime_noLock:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0;
- (void)JFX_writeBuffer:(struct opaqueCMSampleBuffer { } *)a0 sampleType:(int)a1;
- (void)JFX_writeDepthBufferForAVDepthData:(id)a0 withTimingInfo:(struct { struct { long long x0; int x1; unsigned int x2; long long x3; } x0; struct { long long x0; int x1; unsigned int x2; long long x3; } x1; struct { long long x0; int x1; unsigned int x2; long long x3; } x2; })a1;
- (void)JFX_writeFaceDetectMetadata:(id)a0 pts:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1;
- (void)JFX_writeJFXARMetadata:(id)a0 time:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1;
- (id)initWithFolderURL:(id)a0 videoOutputSettings:(id)a1 audioOutputSettings:(id)a2 audioFormatHint:(struct opaqueCMFormatDescription { } *)a3;
- (BOOL)startWriterWithVideoTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0 error:(id *)a1;
- (void)writeAudioBuffer:(struct opaqueCMSampleBuffer { } *)a0;
- (void)writeCameraFrameSet:(id)a0;

@end