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) |
Allocates a new audio stream which encodes audio data using the given encoder. | |
void | guac_audio_stream_free (guac_audio_stream *stream) |
Frees the given audio stream. | |
void | guac_audio_stream_begin (guac_audio_stream *stream, int rate, int channels, int bps) |
Begins a new audio packet within the given audio stream. | |
void | guac_audio_stream_end (guac_audio_stream *stream) |
Ends the current audio packet, writing the finished packet as an audio instruction. | |
void | guac_audio_stream_write_pcm (guac_audio_stream *stream, const unsigned char *data, int length) |
Writes PCM data to the given audio stream. | |
void | guac_audio_stream_flush (guac_audio_stream *stream) |
Flushes the given audio stream. | |
void | guac_audio_stream_write_encoded (guac_audio_stream *audio, const unsigned char *data, int length) |
Appends arbitrarily-encoded data to the encoded_data buffer within the given audio stream. |
Provides functions and structures used for providing simple streaming audio.
guac_audio_stream* guac_audio_stream_alloc | ( | guac_client * | client, |
guac_audio_encoder * | encoder | ||
) |
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.
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. |
void guac_audio_stream_begin | ( | guac_audio_stream * | stream, |
int | rate, | ||
int | channels, | ||
int | bps | ||
) |
Begins a new audio packet within the given audio stream.
This packet will be built up with repeated writes of PCM data, finally being sent when complete via guac_audio_stream_end().
stream | The guac_audio_stream which should start a new audio packet. |
rate | The audio rate of the packet, in Hz. |
channels | The number of audio channels. |
bps | The number of bits per audio sample. |
void guac_audio_stream_end | ( | guac_audio_stream * | stream | ) |
Ends the current audio packet, writing the finished packet as an audio instruction.
stream | The guac_audio_stream whose current audio packet should be completed and sent. |
void guac_audio_stream_flush | ( | guac_audio_stream * | stream | ) |
Flushes the given audio stream.
stream | The guac_audio_stream to flush. |
void guac_audio_stream_free | ( | guac_audio_stream * | stream | ) |
Frees the given audio stream.
stream | The guac_audio_stream to free. |
void guac_audio_stream_write_encoded | ( | guac_audio_stream * | audio, |
const unsigned char * | data, | ||
int | length | ||
) |
Appends arbitrarily-encoded data to the encoded_data buffer within the given audio stream.
This data must be encoded in the output format of the encoder used by the stream. This function is mainly for use by encoder implementations.
audio | The guac_audio_stream to write data through. |
data | Arbitrary encoded data to write through the audio stream. |
length | The number of bytes of data provided. |
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. This function must only be called after an audio packet has been started with guac_audio_stream_begin().
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. |