libgpac
Documentation of the core library of GPAC
Loading...
Searching...
No Matches
jack.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <strings.h>
#include <jack/types.h>
#include <jack/jack.h>
#include <jack/ringbuffer.h>
#include <gpac/modules/audio_out.h>

Data Structures

struct  JackContext
 

Macros

#define MAX_JACK_CLIENT_NAME_SZ   128
 
#define JACK_PORT_NAME_MAX_SZ   128
 

Functions

static void Jack_cleanup (JackContext *ctx)
 
static int process_callback (jack_nframes_t nframes, void *arg)
 
static int onBufferSizeChanged (jack_nframes_t nframes, void *arg)
 
static GF_Err Jack_Setup (GF_AudioOutput *dr, void *os_handle, u32 num_buffers, u32 total_duration)
 
static void Jack_Shutdown (GF_AudioOutput *dr)
 
static GF_Err Jack_Configure (GF_AudioOutput *dr, u32 *SampleRate, u32 *NbChannels, u32 *audioFormat, u64 channel_cfg)
 
static void Jack_SetVolume (GF_AudioOutput *dr, u32 Volume)
 
static void Jack_SetPan (GF_AudioOutput *dr, u32 Pan)
 
static void Jack_SetPriority (GF_AudioOutput *dr, u32 Priority)
 
static u32 Jack_GetAudioDelay (GF_AudioOutput *dr)
 
static GF_Err Jack_QueryOutputSampleRate (GF_AudioOutput *dr, u32 *desired_sr, u32 *NbChannels, u32 *nbBitsPerSample)
 
void * NewJackOutput ()
 
void DeleteJackOutput (void *ifce)
 
GPAC_MODULE_EXPORT const u32QueryInterfaces ()
 
GPAC_MODULE_EXPORT GF_BaseInterfaceLoadInterface (u32 InterfaceType)
 
GPAC_MODULE_EXPORT void ShutdownInterface (GF_BaseInterface *ifce)
 

Data Structure Documentation

◆ JackContext

struct JackContext
Data Fields
char jackClientName[MAX_JACK_CLIENT_NAME_SZ]
jack_client_t * jack
jack_port_t ** jackPorts
jack_nframes_t currentBlockSize
u32 numChannels
char * buffer
u32 bufferSz
u32 bytesPerSample
Bool isActive
Bool autoConnect
jack_default_audio_sample_t ** channels
float volume

Macro Definition Documentation

◆ MAX_JACK_CLIENT_NAME_SZ

#define MAX_JACK_CLIENT_NAME_SZ   128

◆ JACK_PORT_NAME_MAX_SZ

#define JACK_PORT_NAME_MAX_SZ   128

Function Documentation

◆ Jack_cleanup()

static void Jack_cleanup ( JackContext ctx)
static

◆ process_callback()

static int process_callback ( jack_nframes_t  nframes,
void *  arg 
)
static

The callback called by the jack thread

◆ onBufferSizeChanged()

static int onBufferSizeChanged ( jack_nframes_t  nframes,
void *  arg 
)
static

Called when jackbuffer size change

◆ Jack_Setup()

static GF_Err Jack_Setup ( GF_AudioOutput dr,
void *  os_handle,
u32  num_buffers,
u32  total_duration 
)
static

◆ Jack_Shutdown()

static void Jack_Shutdown ( GF_AudioOutput dr)
static

◆ Jack_Configure()

static GF_Err Jack_Configure ( GF_AudioOutput dr,
u32 SampleRate,
u32 NbChannels,
u32 audioFormat,
u64  channel_cfg 
)
static

◆ Jack_SetVolume()

static void Jack_SetVolume ( GF_AudioOutput dr,
u32  Volume 
)
static

◆ Jack_SetPan()

static void Jack_SetPan ( GF_AudioOutput dr,
u32  Pan 
)
static

◆ Jack_SetPriority()

static void Jack_SetPriority ( GF_AudioOutput dr,
u32  Priority 
)
static

Jack manages the priority itself, we don't need to interfere here...

◆ Jack_GetAudioDelay()

static u32 Jack_GetAudioDelay ( GF_AudioOutput dr)
static

◆ Jack_QueryOutputSampleRate()

static GF_Err Jack_QueryOutputSampleRate ( GF_AudioOutput dr,
u32 desired_sr,
u32 NbChannels,
u32 nbBitsPerSample 
)
static

◆ NewJackOutput()

void * NewJackOutput ( )

◆ DeleteJackOutput()

void DeleteJackOutput ( void *  ifce)

◆ QueryInterfaces()

GPAC_MODULE_EXPORT const u32 * QueryInterfaces ( )

◆ LoadInterface()

GPAC_MODULE_EXPORT GF_BaseInterface * LoadInterface ( u32  InterfaceType)

◆ ShutdownInterface()

GPAC_MODULE_EXPORT void ShutdownInterface ( GF_BaseInterface ifce)