libguac
0.9.9
|
Provides functions and structures used for providing simple streaming audio. More...
Go to the source code of this file.
Data Structures | |
struct | guac_audio_encoder |
Arbitrary audio codec encoder. More... | |
struct | guac_audio_stream |
Basic audio stream. More... | |
Functions | |
guac_audio_stream * | guac_audio_stream_alloc (guac_client *client, guac_audio_encoder *encoder, int rate, int channels, int bps) |
Allocates a new audio stream which encodes audio data using the given encoder. More... | |
void | guac_audio_stream_reset (guac_audio_stream *audio, guac_audio_encoder *encoder, int rate, int channels, int bps) |
Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample. More... | |
void | guac_audio_stream_free (guac_audio_stream *stream) |
Closes and frees the given audio stream. More... | |
void | guac_audio_stream_write_pcm (guac_audio_stream *stream, const unsigned char *data, int length) |
Writes PCM data to the given audio stream. More... | |
void | guac_audio_stream_flush (guac_audio_stream *stream) |
Flushes the underlying audio buffer, if any, ensuring that all audio previously written via guac_audio_stream_write_pcm() has been encoded and sent to the client. More... | |
Provides functions and structures used for providing simple streaming audio.
guac_audio_stream* guac_audio_stream_alloc | ( | guac_client * | client, |
guac_audio_encoder * | encoder, | ||
int | rate, | ||
int | channels, | ||
int | bps | ||
) |
Allocates a new audio stream which encodes audio data using the given encoder.
If NULL is specified for the encoder, an appropriate encoder will be selected based on the encoders built into libguac and the level of client support. The PCM format specified here (via rate, channels, and bps) must be the format used for all PCM data provided to the audio stream. The format may only be changed using guac_audio_stream_reset().
client | The guac_client for which this audio stream is being allocated. |
encoder | The guac_audio_encoder to use when encoding audio, or NULL if libguac should select an appropriate built-in encoder on its own. |
rate | The number of samples per second of PCM data sent to this stream. |
channels | The number of audio channels per sample of PCM data. Legal values are 1 or 2. |
bps | The number of bits per sample per channel for PCM data. Legal values are 8 or 16. |
void guac_audio_stream_flush | ( | guac_audio_stream * | stream | ) |
Flushes the underlying audio buffer, if any, ensuring that all audio previously written via guac_audio_stream_write_pcm() has been encoded and sent to the client.
stream | The guac_audio_stream whose audio buffers should be flushed. |
void guac_audio_stream_free | ( | guac_audio_stream * | stream | ) |
Closes and frees the given audio stream.
stream | The guac_audio_stream to free. |
void guac_audio_stream_reset | ( | guac_audio_stream * | audio, |
guac_audio_encoder * | encoder, | ||
int | rate, | ||
int | channels, | ||
int | bps | ||
) |
Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample.
If NULL is specified for the encoder, the encoder is left unchanged. If the encoder, rate, channels, and bits per sample are all identical to the current settings, this function has no effect.
audio | The guac_audio_stream to reset. |
encoder | The guac_audio_encoder to use when encoding audio, or NULL to leave this unchanged. |
rate | The number of samples per second of PCM data sent to this stream. |
channels | The number of audio channels per sample of PCM data. Legal values are 1 or 2. |
bps | The number of bits per sample per channel for PCM data. Legal values are 8 or 16. |
void guac_audio_stream_write_pcm | ( | guac_audio_stream * | stream, |
const unsigned char * | data, | ||
int | length | ||
) |
Writes PCM data to the given audio stream.
This PCM data will be automatically encoded by the audio encoder associated with this stream. The PCM data must be 2-channel, 44100 Hz, with signed 16-bit samples.
stream | The guac_audio_stream to write PCM data through. |
data | The PCM data to write. |
length | The number of bytes of PCM data provided. |