Sunshine master
Self-hosted game stream host for Moonlight.
av_audio.h File Reference

Declarations for macOS audio capture with dual input paths. More...

import <AudioToolbox/AudioToolbox.h>
import <AVFoundation/AVFoundation.h>
import <CoreAudio/AudioHardwareTapping.h>
import <CoreAudio/CoreAudio.h>
#include "third-party/TPCircularBuffer/TPCircularBuffer.h"
Include dependency graph for av_audio.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  AudioConverterInputData
 Data structure for AudioConverter input callback. Contains audio data and metadata needed for format conversion during audio processing. More...
 
class  AVAudio
 Core Audio capture class for macOS audio input and system-wide audio tapping. Provides functionality for both microphone capture via AVFoundation and system-wide audio capture via Core Audio taps (requires macOS 14.0+). More...
 
struct  AVAudioIOProcData
 IOProc client data structure for Core Audio system taps. Contains configuration and conversion data for real-time audio processing. More...
 

Functions

OSStatus platf::audioConverterComplexInputProc (AudioConverterRef _Nullable inAudioConverter, UInt32 *_Nonnull ioNumberDataPackets, AudioBufferList *_Nonnull ioData, AudioStreamPacketDescription *_Nullable *_Nullable outDataPacketDescription, void *_Nonnull inUserData)
 
OSStatus platf::systemAudioIOProc (AudioObjectID inDevice, const AudioTimeStamp *_Nullable inNow, const AudioBufferList *_Nullable inInputData, const AudioTimeStamp *_Nullable inInputTime, AudioBufferList *_Nullable outOutputData, const AudioTimeStamp *_Nullable inOutputTime, void *_Nullable inClientData)
 

Detailed Description

Declarations for macOS audio capture with dual input paths.

This header defines the AVAudio class which provides distinct audio capture methods:

  1. Microphone capture - Uses AVFoundation framework to capture from specific microphone devices
  2. System-wide audio tap - Uses Core Audio taps to capture all system audio output (macOS 14.0+)

The system-wide audio tap allows capturing audio from all applications and system sounds, while microphone capture focuses on input from physical or virtual microphone devices.