MiXiD API Reference: Compositing and Mixing

Back to MiXiD API Documentation

Detailed MiXiD XCFramework reference for Compositing and Mixing. Read through each header, class, protocol, and function section to inspect Objective-C declarations, parameters, return values, and usage guidance.

Compositing and Mixing

Compositing and Mixing

MXDCompositeAudioRenderer.h

Audio playback renderer for mixed or decoded media.

MXDCompositeAudioRenderer

start
- (void)start;
KindInstance method
Returnvoid
DetailsStarts the component and begins the related capture, server, playback, publish, recording, or discovery workflow.
ParametersNo parameters.
Swift usageinstance.start()
pause
- (void)pause;
KindInstance method
Returnvoid
DetailsPauses playback while keeping the object available for a later resume.
ParametersNo parameters.
Swift usageinstance.pause()
flush
- (void)flush;
KindInstance method
Returnvoid
DetailsClears queued decoder/player state so future media starts from a clean point.
ParametersNo parameters.
Swift usageinstance.flush()
stop
- (void)stop;
KindInstance method
Returnvoid
DetailsStops the component and releases or finalizes active workflow resources.
ParametersNo parameters.
Swift usageinstance.stop()
enqueueAudioBuffer:when:
- (void)enqueueAudioBuffer:(AVAudioPCMBuffer *)buffer when:(AVAudioTime * _Nullable)when;
KindInstance method
Returnvoid
DetailsQueues encoded audio data for playback. Call in timestamp order for stable audio scheduling.
ParametersenqueueAudioBuffer (AVAudioPCMBuffer *, buffer); when (AVAudioTime * _Nullable, when)
Swift usageinstance.enqueueAudioBuffer(enqueueAudioBuffer: audioBuffer, when: when)
enqueueAACAccessUnit:sampleRate:channels:objectType:config:
- (void)enqueueAACAccessUnit:(NSData *)accessUnit sampleRate:(Float64)sampleRate channels:(UInt32)channels objectType:(UInt32)objectType config:(NSData * _Nullable)config;
KindInstance method
Returnvoid
DetailsQueues encoded audio data for playback. Call in timestamp order for stable audio scheduling.
ParametersenqueueAACAccessUnit (NSData *, accessUnit); sampleRate (Float64, sampleRate); channels (UInt32, channels); objectType (UInt32, objectType); config (NSData * _Nullable, config)
Swift usageinstance.enqueueAACAccessUnit(enqueueAACAccessUnit: data, sampleRate: 0.0, channels: channels, objectType: objectType, config: data)

MXDCompositeMediaMixer.h

Four-slot audio/video mixer.

MXDCompositeMediaMixerDelegate Protocol

compositeMediaMixerDidOutputAudioBuffer:
- (void)compositeMediaMixerDidOutputAudioBuffer:(AVAudioPCMBuffer *)audioBuffer;
KindDelegate / protocol callback
Returnvoid
DetailsCallback invoked by MiXiD for compositeMediaMixerDidOutputAudioBuffer. Implement this method to observe lifecycle, media output, status, or error events.
ParameterscompositeMediaMixerDidOutputAudioBuffer (AVAudioPCMBuffer *, audioBuffer)
Swift usageinstance.compositeMediaMixerDidOutputAudioBuffer(compositeMediaMixerDidOutputAudioBuffer: audioBuffer)
compositeMediaMixerDidUpdateAudioLevels:masterLevel:
- (void)compositeMediaMixerDidUpdateAudioLevels:(NSArray<NSNumber *> *)slotLevels masterLevel:(Float32)masterLevel;
KindDelegate / protocol callback
Returnvoid
DetailsCallback invoked by MiXiD for compositeMediaMixerDidUpdateAudioLevels masterLevel. Implement this method to observe lifecycle, media output, status, or error events.
ParameterscompositeMediaMixerDidUpdateAudioLevels (NSArray<NSNumber *> *, slotLevels); masterLevel (Float32, masterLevel)
Swift usageinstance.compositeMediaMixerDidUpdateAudioLevels(compositeMediaMixerDidUpdateAudioLevels: 0, masterLevel: 0.0)
compositeMediaMixerNeedsVideoRenderForBuffers:count:outputWidth:outputHeight:presentationTime:
- (void)compositeMediaMixerNeedsVideoRenderForBuffers:(CVPixelBufferRef _Nullable const * _Nonnull)videoBuffers count:(NSInteger)count outputWidth:(NSInteger)outputWidth outputHeight:(NSInteger)outputHeight presentationTime:(CMTime)presentationTime;
KindDelegate / protocol callback
Returnvoid
DetailsCallback invoked by MiXiD for compositeMediaMixerNeedsVideoRenderForBuffers count outputWidth outputHeight presentationTime. Implement this method to observe lifecycle, media output, status, or error events.
ParameterscompositeMediaMixerNeedsVideoRenderForBuffers (CVPixelBufferRef _Nullable const * _Nonnull, videoBuffers); count (NSInteger, count); outputWidth (NSInteger, outputWidth); outputHeight (NSInteger, outputHeight); presentationTime (CMTime, presentationTime)
Swift usageinstance.compositeMediaMixerNeedsVideoRenderForBuffers(compositeMediaMixerNeedsVideoRenderForBuffers: imageBuffer, count: 0, outputWidth: 0, outputHeight: 0, presentationTime: 0.0)
compositeMediaMixerDidFailWithError:
- (void)compositeMediaMixerDidFailWithError:(NSError *)error;
KindDelegate / protocol callback
Returnvoid
DetailsCallback invoked by MiXiD for compositeMediaMixerDidFailWithError. Implement this method to observe lifecycle, media output, status, or error events.
ParameterscompositeMediaMixerDidFailWithError (NSError *, error)
Swift usageinstance.compositeMediaMixerDidFailWithError(compositeMediaMixerDidFailWithError: nil)

MXDCompositeMediaMixer

NameDeclarationDetails
delegate@property (nonatomic, weak, nullable) id<MXDCompositeMediaMixerDelegate> delegate;Receives lifecycle, media output, status, or error callbacks.
running@property (nonatomic, assign, readonly, getter=isRunning) BOOL running;Read-only runtime state flag.
start
- (void)start;
KindInstance method
Returnvoid
DetailsStarts the component and begins the related capture, server, playback, publish, recording, or discovery workflow.
ParametersNo parameters.
Swift usageinstance.start()
stop
- (void)stop;
KindInstance method
Returnvoid
DetailsStops the component and releases or finalizes active workflow resources.
ParametersNo parameters.
Swift usageinstance.stop()
appendVideoFrame:forSlot:presentationTime:
- (void)appendVideoFrame:(CVImageBufferRef)imageBuffer forSlot:(NSInteger)slotIndex presentationTime:(CMTime)presentationTime;
KindInstance method
Returnvoid
DetailsAppends media into the component. Use presentation timestamps and matching stream configuration so downstream encoders, mixers, or recorders stay synchronized.
ParametersappendVideoFrame (CVImageBufferRef, imageBuffer); forSlot (NSInteger, slotIndex); presentationTime (CMTime, presentationTime)
Swift usageinstance.appendVideoFrame(appendVideoFrame: imageBuffer, forSlot: 0, presentationTime: 0.0)
appendAudioBuffer:forSlot:
- (void)appendAudioBuffer:(AVAudioPCMBuffer *)audioBuffer forSlot:(NSInteger)slotIndex;
KindInstance method
Returnvoid
DetailsAppends media into the component. Use presentation timestamps and matching stream configuration so downstream encoders, mixers, or recorders stay synchronized.
ParametersappendAudioBuffer (AVAudioPCMBuffer *, audioBuffer); forSlot (NSInteger, slotIndex)
Swift usageinstance.appendAudioBuffer(appendAudioBuffer: audioBuffer, forSlot: 0)
appendAACAccessUnit:forSlot:sampleRate:channels:objectType:config:
- (void)appendAACAccessUnit:(NSData *)accessUnit forSlot:(NSInteger)slotIndex sampleRate:(Float64)sampleRate channels:(UInt32)channels objectType:(UInt32)objectType config:(NSData * _Nullable)config;
KindInstance method
Returnvoid
DetailsAppends media into the component. Use presentation timestamps and matching stream configuration so downstream encoders, mixers, or recorders stay synchronized.
ParametersappendAACAccessUnit (NSData *, accessUnit); forSlot (NSInteger, slotIndex); sampleRate (Float64, sampleRate); channels (UInt32, channels); objectType (UInt32, objectType); config (NSData * _Nullable, config)
Swift usageinstance.appendAACAccessUnit(appendAACAccessUnit: data, forSlot: 0, sampleRate: 0.0, channels: channels, objectType: objectType, config: data)
setAudioGain:forSlot:
- (void)setAudioGain:(Float32)gain forSlot:(NSInteger)slotIndex;
KindInstance method
Returnvoid
DetailsUpdates configuration on an existing object. Some changes apply immediately; transport or stream changes may reconnect or reload internal resources.
ParameterssetAudioGain (Float32, gain); forSlot (NSInteger, slotIndex)
Swift usageinstance.setAudioGain(setAudioGain: 0.0, forSlot: 0)
audioGainForSlot:
- (Float32)audioGainForSlot:(NSInteger)slotIndex;
KindInstance method
ReturnFloat32
DetailsPerforms the audioGainForSlot operation on this MiXiD component.
ParametersaudioGainForSlot (NSInteger, slotIndex)
Swift usagelet result = instance.audioGainForSlot(audioGainForSlot: 0)
setMaximumQueuedAudioSeconds:forSlot:
- (void)setMaximumQueuedAudioSeconds:(Float64)seconds forSlot:(NSInteger)slotIndex;
KindInstance method
Returnvoid
DetailsUpdates configuration on an existing object. Some changes apply immediately; transport or stream changes may reconnect or reload internal resources.
ParameterssetMaximumQueuedAudioSeconds (Float64, seconds); forSlot (NSInteger, slotIndex)
Swift usageinstance.setMaximumQueuedAudioSeconds(setMaximumQueuedAudioSeconds: 0.0, forSlot: 0)
setOutputAudioGain:
- (void)setOutputAudioGain:(Float32)gain;
KindInstance method
Returnvoid
DetailsUpdates configuration on an existing object. Some changes apply immediately; transport or stream changes may reconnect or reload internal resources.
ParameterssetOutputAudioGain (Float32, gain)
Swift usageinstance.setOutputAudioGain(setOutputAudioGain: 0.0)

MXDCompositeRenderer.h

Video compositor for mixer output.

MXDCompositeRendererDelegate Protocol

compositeRenderer:didRenderVideoFrame:presentationTime:
- (void)compositeRenderer:(MXDCompositeRenderer *)renderer didRenderVideoFrame:(CVImageBufferRef)imageBuffer presentationTime:(CMTime)presentationTime;
KindDelegate / protocol callback
Returnvoid
DetailsCallback invoked by MiXiD for compositeRenderer didRenderVideoFrame presentationTime. Implement this method to observe lifecycle, media output, status, or error events.
ParameterscompositeRenderer (MXDCompositeRenderer *, renderer); didRenderVideoFrame (CVImageBufferRef, imageBuffer); presentationTime (CMTime, presentationTime)
Swift usageinstance.compositeRenderer(compositeRenderer: renderer, didRenderVideoFrame: imageBuffer, presentationTime: 0.0)
compositeRenderer:willRenderCompositeImage:outputRect:presentationTime:
- (CIImage *)compositeRenderer:(MXDCompositeRenderer *)renderer willRenderCompositeImage:(CIImage *)compositeImage outputRect:(CGRect)outputRect presentationTime:(CMTime)presentationTime;
KindDelegate / protocol callback
ReturnCIImage *
DetailsCallback invoked by MiXiD for compositeRenderer willRenderCompositeImage outputRect presentationTime. Implement this method to observe lifecycle, media output, status, or error events.
ParameterscompositeRenderer (MXDCompositeRenderer *, renderer); willRenderCompositeImage (CIImage *, compositeImage); outputRect (CGRect, outputRect); presentationTime (CMTime, presentationTime)
Swift usagelet result = instance.compositeRenderer(compositeRenderer: renderer, willRenderCompositeImage: compositeImage, outputRect: outputRect, presentationTime: 0.0)

MXDCompositeRenderer

NameDeclarationDetails
delegate@property (nonatomic, weak, nullable) id<MXDCompositeRendererDelegate> delegate;Receives lifecycle, media output, status, or error callbacks.
renderVideoBuffers:count:outputWidth:outputHeight:presentationTime:
- (void)renderVideoBuffers:(CVPixelBufferRef _Nullable const * _Nonnull)videoBuffers count:(NSInteger)count outputWidth:(NSInteger)outputWidth outputHeight:(NSInteger)outputHeight presentationTime:(CMTime)presentationTime;
KindInstance method
Returnvoid
DetailsPerforms the renderVideoBuffers count outputWidth outputHeight presentationTime operation on this MiXiD component.
ParametersrenderVideoBuffers (CVPixelBufferRef _Nullable const * _Nonnull, videoBuffers); count (NSInteger, count); outputWidth (NSInteger, outputWidth); outputHeight (NSInteger, outputHeight); presentationTime (CMTime, presentationTime)
Swift usageinstance.renderVideoBuffers(renderVideoBuffers: imageBuffer, count: 0, outputWidth: 0, outputHeight: 0, presentationTime: 0.0)

MXDCompositeVideoRenderer.h

CALayer-backed video preview renderer.

MXDCompositeVideoRenderer

NameDeclarationDetails
startupPrerollSeconds@property (nonatomic, assign) NSTimeInterval startupPrerollSeconds;Public configuration or state exposed by this API.
initWithLayer:
- (instancetype)initWithLayer:(CALayer *)layer;
KindInstance method
Returninstancetype
DetailsInitializes the receiver for initWithLayer. Use this to provide required URLs, ports, names, peer connections, or configuration objects.
ParametersinitWithLayer (CALayer *, layer)
Swift usagelet value = MXDCompositeVideoRenderer(initWithLayer: layer)
enqueueImageBuffer:presentationTime:
- (void)enqueueImageBuffer:(CVImageBufferRef)imageBuffer presentationTime:(CMTime)presentationTime;
KindInstance method
Returnvoid
DetailsQueues encoded audio data for playback. Call in timestamp order for stable audio scheduling.
ParametersenqueueImageBuffer (CVImageBufferRef, imageBuffer); presentationTime (CMTime, presentationTime)
Swift usageinstance.enqueueImageBuffer(enqueueImageBuffer: imageBuffer, presentationTime: 0.0)
flush
- (void)flush;
KindInstance method
Returnvoid
DetailsClears queued decoder/player state so future media starts from a clean point.
ParametersNo parameters.
Swift usageinstance.flush()

Back to API Reference index