@class NSString, NSArray, NSURL, NSError, NSObject, AVAssetWriter; @protocol OS_dispatch_queue, MOVStreamCustomEncoderConfigDelegate, MOVStreamWriterDelegate, MOVStreamWriterState; @interface MOVStreamWriter : NSObject { NSObject *m_delegateCallbackQueue; NSObject *m_writingQueue; NSObject *m_processingQueue; NSObject *_timeoutQueue; id /* block */ _timeoutBlock; NSURL *m_writeURL; AVAssetWriter *m_assetWriter; double m_expectedFrameRate; BOOL m_realtime; BOOL m_haveStartedSession; struct CGAffineTransform { double a; double b; double c; double d; double tx; double ty; } m_videoTransform; BOOL m_enableAVEHighPerformanceProfile; struct map, std::allocator>> { struct __tree, std::__map_value_compare, std::less>, std::allocator>> { void *__begin_node_; struct __compressed_pair *>, std::allocator, void *>>> { struct __tree_end_node *> { void *__left_; } __value_; } __pair1_; struct __compressed_pair, std::less>> { unsigned long long __value_; } __pair3_; } __tree_; } m_streamDataMap; struct vector> { void *__begin_; void *__end_; struct __compressed_pair> { void *__value_; } __end_cap_; } m_orderedStreamNames; struct map, std::allocator>> { struct __tree, std::__map_value_compare, std::less>, std::allocator>> { void *__begin_node_; struct __compressed_pair *>, std::allocator, void *>>> { struct __tree_end_node *> { void *__left_; } __value_; } __pair1_; struct __compressed_pair, std::less>> { unsigned long long __value_; } __pair3_; } __tree_; } m_metadataDataMap; struct vector> { void *__begin_; void *__end_; struct __compressed_pair> { void *__value_; } __end_cap_; } m_orderedMetadataStreamNames; struct map, std::less, std::allocator>>> { struct __tree>, std::__map_value_compare>, std::less>, std::allocator>>> { void *__begin_node_; struct __compressed_pair *>, std::allocator>, void *>>> { struct __tree_end_node *> { void *__left_; } __value_; } __pair1_; struct __compressed_pair>, std::less>> { unsigned long long __value_; } __pair3_; } __tree_; } m_associatedMetadataDataMap; struct map, std::allocator>> { struct __tree, std::__map_value_compare, std::less>, std::allocator>> { void *__begin_node_; struct __compressed_pair *>, std::allocator, void *>>> { struct __tree_end_node *> { void *__left_; } __value_; } __pair1_; struct __compressed_pair, std::less>> { unsigned long long __value_; } __pair3_; } __tree_; } m_lastPtsForStream; BOOL m_observingIsReady; unsigned long long _defaultWritingBufferCapacity; unsigned long long _defaultAudioWritingBufferCapacity; unsigned long long _defaultMetadataWritingBufferCapacity; NSError *_criticalError; } @property (weak) id delegate; @property (retain) id state; @property struct { long long value; int timescale; unsigned int flags; long long epoch; } movieFragmentInterval; @property struct { long long value; int timescale; unsigned int flags; long long epoch; } sessionStartTime; @property unsigned long long defaultWritingBufferCapacity; @property unsigned long long defaultAudioWritingBufferCapacity; @property unsigned long long defaultMetadataWritingBufferCapacity; @property double finishingTimeout; @property int baseMediaTimeScale; @property (readonly) long long status; @property (readonly) NSError *criticalError; @property (weak) id customEncoderConfigDelegate; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (retain) NSArray *movMetadataItems; @property BOOL legacyKeysMode; @property unsigned long long fifoBufferCapacity; + (id)getMOVStreamIOMetadataItem; + (unsigned int)getPixelFormatFromStreamData:(struct StreamRecordingData { struct opaqueCMFormatDescription *x0; BOOL x1; id x2; id x3; id x4; id x5; id x6; id x7; unsigned long long x8; id x9; id x10; id x11; id x12; id x13; id x14; id x15; struct { long long x0; int x1; unsigned int x2; long long x3; } x16; unsigned long long x17; id x18; long long x19; } *)a0; - (void)dealloc; - (id).cxx_construct; - (void)observeValueForKeyPath:(id)a0 ofObject:(id)a1 change:(id)a2 context:(void *)a3; - (void).cxx_destruct; - (void)cancelRecording; - (void)prepareToRecord; - (void)setDelegate:(id)a0 callbackQueue:(id)a1; - (void)finishRecording; - (void)addTrackForStreamWithIdentifier:(id)a0 formatDescription:(struct opaqueCMFormatDescription { } *)a1 recordingConfiguration:(id)a2; - (void)appendAudioBuffer:(struct opaqueCMSampleBuffer { } *)a0 forStream:(id)a1; - (void)appendMetadata:(id)a0 withTimeStamp:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1 toStream:(id)a2; - (BOOL)setTrackMetadata:(id)a0 forMetadataStream:(id)a1 error:(id *)a2; - (BOOL)setVideoTransform:(struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })a0; - (BOOL)isAudioStream:(struct StreamRecordingData { struct opaqueCMFormatDescription *x0; BOOL x1; id x2; id x3; id x4; id x5; id x6; id x7; unsigned long long x8; id x9; id x10; id x11; id x12; id x13; id x14; id x15; struct { long long x0; int x1; unsigned int x2; long long x3; } x16; unsigned long long x17; id x18; long long x19; } *)a0; - (void)addMetadataTrack:(id)a0; - (void)appendPixelBuffer:(struct __CVBuffer { } *)a0 presentationTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1 toStreamId:(id)a2; - (id)initWithURL:(id)a0 andExpectedFrameRate:(double)a1; - (void)prepareToRecordWithMovieMetadata:(id)a0; - (BOOL)setTrackMetadata:(id)a0 forMetadataStream:(id)a1; - (unsigned long long)writingBufferCapacityForStream:(id)a0; - (void)consumeMetadatOfMetadataStream:(id)a0; - (BOOL)enableAVEHighPerformanceProfile; - (void)encoder:(id)a0 encodedSampleBuffer:(struct opaqueCMSampleBuffer { } *)a1 metadata:(id)a2 presentationTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a3 streamId:(id)a4; - (BOOL)activateNewState:(id)a0 byEvent:(id)a1; - (void)addAudioTrackForStreamWithIdentifier:(id)a0 audioFormat:(id)a1 additionalSettings:(id)a2; - (void)addIsReadyObservers; - (void)addMetadataTrack:(id)a0 formatDescription:(struct opaqueCMFormatDescription { } *)a1; - (void)addMetadataTrackAssociatedWith:(id)a0 withIdentifier:(id)a1 withFormatDescription:(struct opaqueCMFormatDescription { } *)a2; - (void)addTrackForStreamWithIdentifier:(id)a0 formatDescription:(struct opaqueCMFormatDescription { } *)a1 encoderConfig:(id)a2; - (void)appendMetadata:(id)a0 associatedWith:(id)a1 toStream:(id)a2; - (void)appendSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 attachments:(id)a1 streamId:(id)a2; - (void)appendTimeMetadataGroup:(id)a0 toStream:(id)a1; - (void)appendVideoSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 attachmentMetadata:(id)a1 streamId:(id)a2; - (void)appendVideoSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 attachments:(id)a1 streamId:(id)a2; - (void)asyncWriteAssociatedMetadata:(id)a0 metadataKey:(struct basic_string, std::allocator> { struct __compressed_pair::__rep, std::allocator> { struct __rep { union { struct __long { char *x0; unsigned long long x1; unsigned long x2 : 63; unsigned char x3 : 1; } x0; struct __short { char x0[23]; unsigned char x1[0]; unsigned char x2 : 7; unsigned char x3 : 1; } x1; struct __raw { unsigned long long x0[3]; } x2; } x0; } x0; } x0; })a1 associatedStreamKey:(struct basic_string, std::allocator> { struct __compressed_pair::__rep, std::allocator> { struct __rep { union { struct __long { char *x0; unsigned long long x1; unsigned long x2 : 63; unsigned char x3 : 1; } x0; struct __short { char x0[23]; unsigned char x1[0]; unsigned char x2 : 7; unsigned char x3 : 1; } x1; struct __raw { unsigned long long x0[3]; } x2; } x0; } x0; } x0; })a2; - (int)attachmentSerializationModeForStream:(struct basic_string, std::allocator> { struct __compressed_pair::__rep, std::allocator> { struct __rep { union { struct __long { char *x0; unsigned long long x1; unsigned long x2 : 63; unsigned char x3 : 1; } x0; struct __short { char x0[23]; unsigned char x1[0]; unsigned char x2 : 7; unsigned char x3 : 1; } x1; struct __raw { unsigned long long x0[3]; } x2; } x0; } x0; } x0; })a0 withDefaultMode:(int)a1; - (int)attachmentSerializationModeForStream:(struct basic_string, std::allocator> { struct __compressed_pair::__rep, std::allocator> { struct __rep { union { struct __long { char *x0; unsigned long long x1; unsigned long x2 : 63; unsigned char x3 : 1; } x0; struct __short { char x0[23]; unsigned char x1[0]; unsigned char x2 : 7; unsigned char x3 : 1; } x1; struct __raw { unsigned long long x0[3]; } x2; } x0; } x0; } x0; })a0 withDefaultMode:(int)a1 fromMap:(void *)a2; - (void)cancelTimeoutBlock; - (void)checkForFinishing; - (BOOL)checkIfFifoAreEmpty; - (void)clearAllFifoQueues; - (void)consumeSamplesOfVideoAudioStream:(id)a0; - (struct opaqueCMFormatDescription { } *)createMetadataFormatDescription:(id)a0; - (id)createRelatedToStreamMetadata:(id)a0; - (id)createRelationSpecifierMetadata:(id)a0; - (id)customMetadataTrackMetadataForStream:(id)a0 fromMap:(void *)a1; - (id)customTrackMetadataForStream:(id)a0 fromMap:(void *)a1; - (void)deleteFileOnCancel; - (void)deleteMOVFile; - (unsigned int)encoder:(id)a0 codecTypeOverrideForstreamId:(id)a1; - (BOOL)encoder:(id)a0 configureSessionOverride:(struct OpaqueVTCompressionSession { } *)a1 streamId:(id)a2; - (void)encoder:(id)a0 encodingFailedForStream:(id)a1; - (id)encoder:(id)a0 overrideVideoEncoderSpecificationForstreamId:(id)a1; - (int)encoderTypeForStream:(id)a0; - (void)executePrepareToRecordWithMovieMetadata:(id)a0; - (unsigned long long)fifoBufferSizeForStream:(id)a0; - (BOOL)fifoDropsEnabled:(struct StreamRecordingData { struct opaqueCMFormatDescription *x0; BOOL x1; id x2; id x3; id x4; id x5; id x6; id x7; unsigned long long x8; id x9; id x10; id x11; id x12; id x13; id x14; id x15; struct { long long x0; int x1; unsigned int x2; long long x3; } x16; unsigned long long x17; id x18; long long x19; } *)a0; - (void)finishAVWriter; - (void)finishAndDrainFifoFirst; - (void)forceFinishRecording; - (id)getAudioMetadataForBuffer:(struct opaqueCMSampleBuffer { } *)a0; - (double)getExpectedFrameRateForStream:(id)a0; - (id)getLegacyTrackEncodedPixelFormatMetadataForStream:(id)a0 fromMap:(void *)a1; - (id)getLegacyTrackInputPixelFormatMetadataForStream:(id)a0 fromMap:(void *)a1; - (id)getLegacyTrackMetadataForAttachmentsSerializationMode:(id)a0 fromMap:(void *)a1; - (id)getLegacyTrackMetadataForStream:(id)a0; - (id)getMetadataGroupForBuffer:(struct __CVBuffer { } *)a0 stream:(id)a1 presentationTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a2 serializationMode:(int)a3; - (unsigned int)getPixelFormatForStream:(id)a0 fromMap:(void *)a1; - (id)getTrackEncodedPixelFormatMetadataForStream:(id)a0 fromMap:(void *)a1; - (id)getTrackInputPixelFormatMetadataForStream:(id)a0 fromMap:(void *)a1; - (id)getTrackMetadataForAttachmentsSerializationMode:(id)a0 fromMap:(void *)a1; - (id)getTrackMetadataForExactBytesPerRow:(id)a0 fromMap:(void *)a1 error:(id *)a2; - (id)getTrackMetadataForRawBayerRearrangeType:(id)a0 fromMap:(void *)a1; - (id)getTrackMetadataForStream:(id)a0; - (id)getTrackMetadataForTrackTypeInfo:(id)a0 fromMap:(void *)a1; - (struct CGAffineTransform { double x0; double x1; double x2; double x3; double x4; double x5; })getVideoTransformForStream:(id)a0; - (void)informDelegateAboutError:(id)a0; - (void)informDelegateAboutFinishingTimeout; - (void)informDelegateAboutIsReady:(BOOL)a0 forStream:(id)a1; - (void)informDelegateAboutMediaWrittenForStream:(id)a0 mediaType:(long long)a1; - (BOOL)isCustomTrackMetadataCompatibleObject:(id)a0; - (BOOL)isReadyForMoreDataForStreamId:(id)a0 fromMap:(void *)a1; - (BOOL)marksOutputTracksAsEnabledForStream:(struct basic_string, std::allocator> { struct __compressed_pair::__rep, std::allocator> { struct __rep { union { struct __long { char *x0; unsigned long long x1; unsigned long x2 : 63; unsigned char x3 : 1; } x0; struct __short { char x0[23]; unsigned char x1[0]; unsigned char x2 : 7; unsigned char x3 : 1; } x1; struct __raw { unsigned long long x0[3]; } x2; } x0; } x0; } x0; })a0; - (BOOL)marksOutputTracksAsEnabledForStream:(struct basic_string, std::allocator> { struct __compressed_pair::__rep, std::allocator> { struct __rep { union { struct __long { char *x0; unsigned long long x1; unsigned long x2 : 63; unsigned char x3 : 1; } x0; struct __short { char x0[23]; unsigned char x1[0]; unsigned char x2 : 7; unsigned char x3 : 1; } x1; struct __raw { unsigned long long x0[3]; } x2; } x0; } x0; } x0; })a0 fromMap:(void *)a1; - (void)newSampleReady:(struct opaqueCMSampleBuffer { } *)a0 metadata:(id)a1 presentationTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a2 streamKey:(struct basic_string, std::allocator> { struct __compressed_pair::__rep, std::allocator> { struct __rep { union { struct __long { char *x0; unsigned long long x1; unsigned long x2 : 63; unsigned char x3 : 1; } x0; struct __short { char x0[23]; unsigned char x1[0]; unsigned char x2 : 7; unsigned char x3 : 1; } x1; struct __raw { unsigned long long x0[3]; } x2; } x0; } x0; } x0; })a3 streamId:(id)a4 isAudioSample:(BOOL)a5; - (void)processCancelRecording; - (void)processFinishRecording; - (void)processForceFinishRecording; - (void)queueMetadataGroup:(id)a0 stream:(id)a1; - (BOOL)relateStream:(id)a0 toStream:(id)a1 relationSpecifier:(id)a2; - (BOOL)relateStream:(id)a0 toStream:(id)a1 relationSpecifier:(id)a2 error:(id *)a3; - (void)removeIsReadyObservers; - (void)resetTimeoutRefTime; - (void)resubmitTimeoutBlock; - (void)setCriticalError:(id)a0; - (BOOL)setExpectedFrameRate:(double)a0; - (BOOL)setRealTimeCapture:(BOOL)a0; - (BOOL)setTrackMetadata:(id)a0 forStream:(id)a1; - (BOOL)setTrackMetadata:(id)a0 forStream:(id)a1 error:(id *)a2; - (BOOL)setVideoTransformFromOrientation:(int)a0; - (void)setWritingBufferCapacity:(unsigned long long)a0 forAudioStream:(id)a1; - (void)setWritingBufferCapacity:(unsigned long long)a0 forMetadataStream:(id)a1; - (void)setWritingBufferCapacity:(unsigned long long)a0 forStream:(id)a1; - (void)setupAssetWriterStreamInputsWithError:(id *)a0; - (void)setupAssociatedMetadataInputsWithError:(id *)a0; - (void)setupMetadataInputsWithError:(id *)a0; - (void)startFinishingTimeoutTimer; - (struct { long long x0; int x1; unsigned int x2; long long x3; })timeWithSeconds:(double)a0; - (void)writeMetadata:(id)a0 forStreamId:(id)a1; - (void)writeSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0 andMetadata:(id)a1 forStreamId:(id)a2; - (BOOL)writeVideoFrameStreamAttachmentsData:(id)a0 toMetadataAdaptor:(id)a1 ofStream:(id)a2; - (void)writerStatusChanged:(long long)a0 writerDelegate:(id)a1 delegateCallbackQueue:(id)a2; - (unsigned long long)writingBufferCapacityForAudioStream:(id)a0; - (unsigned long long)writingBufferCapacityForMetadataStream:(id)a0; - (unsigned long long)writingBufferUsageForAudioStream:(id)a0; - (unsigned long long)writingBufferUsageForMetadataStream:(id)a0; - (unsigned long long)writingBufferUsageForStream:(id)a0; - (void)writingSessionDidStartAtTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0 streamId:(id)a1 mediaType:(long long)a2 writerDelegate:(id)a3 delegateCallbackQueue:(id)a4; @end