Main Page   Modules   Data Structures   File List   Data Fields   Globals  

Audio encoding

Audio related definitions and functions (writing). More...

Functions

int quicktime_set_audio (quicktime_t *file, int channels, long sample_rate, int bits, char *compressor)
 Set up tracks in a new file after opening and before writing. More...

int quicktime_encode_audio (quicktime_t *file, int16_t **input_i, float **input_f, long samples)
 Encode a number of audio samples for the first track. More...

int lqt_set_audio (quicktime_t *file, int channels, long sample_rate, int bits, lqt_codec_info_t *codec_info)
 Set up audio tracks for encoding. More...

int lqt_add_audio_track (quicktime_t *file, int channels, long sample_rate, int bits, lqt_codec_info_t *codec_info)
 Add an audio tracks for encoding. More...

void lqt_set_audio_language (quicktime_t *file, int track, const char *language)
 Set the audio language. More...

int lqt_encode_audio_track (quicktime_t *file, int16_t **output_i, float **output_f, long samples, int track)
 Encode a number of audio samples for the first track. More...

int lqt_encode_audio_raw (quicktime_t *file, void *input, long samples, int track)
 Encode audio in the native sampleformat of the codec. More...


Detailed Description

Audio related definitions and functions (writing).

The audio API changed a lot during the last years (causing lot of confusion), so here is the preferred way: Use the Codec registry functions to get all supported audio encoders. Once you found a codec (i.e. a lqt_codec_info_t ), call lqt_add_audio_track to add the track to the file. You can repeat this procedure to add as many tracks as you like with different formats and/or codecs.

Next you might want to set some compression parameters. This is done by calling lqt_set_audio_parameter. Supported parameters and valid ranges are in the lqt_codec_info_t.

For each track, encode noninterleaved samples (either in 16bit integer or floating point [-1.0..1.0] format) with lqt_encode_audio_track . In this case, libquicktime will convert your samples to the format used by the codec. This won't give the full precision when using 24/32 bit formats. If you want to pass the samples as raw as possible (bypassing all internal sample format conversions), use lqt_get_sample_format to get the sampleformat natively used by the codec and lqt_encode_audio_raw to encode it.


Function Documentation

int quicktime_set_audio ( quicktime_t * file,
int channels,
long sample_rate,
int bits,
char * compressor )
 

Set up tracks in a new file after opening and before writing.

Parameters:
file   A quicktime handle
channels   Number of channels
sample_rate   Samplerate
bits   Bits per sample
compressor   Compressor to use

Returns the number of quicktime tracks allocated. Audio is stored two channels per quicktime track.

This function is depracated and should not be used in newly written code. It won't let you add individual tracks with different codecs, samplerates etc. Use lqt_add_audio_track instread.

int quicktime_encode_audio ( quicktime_t * file,
int16_t ** input_i,
float ** input_f,
long samples )
 

Encode a number of audio samples for the first track.

Parameters:
file   A quicktime handle
input_i   16 bit integer output buffer (or NULL)
input_f   floating point output buffer (or NULL)
samples   Number of samples to decode

Never use this function: It won't let you encode more than one audio track. To encode audio for multiple tracks, use lqt_encode_audio_track . If you want to pass the full resolution even for 24/32 bit audio, use lqt_encode_audio_raw .

int lqt_set_audio ( quicktime_t * file,
int channels,
long sample_rate,
int bits,
lqt_codec_info_t * codec_info )
 

Set up audio tracks for encoding.

Parameters:
file   A quicktime handle
channels   Number of channels
sample_rate   Samplerate
bits   Bits per sample (always 16)
codec_info   Codec to use (see Codec registry )

This sets one audio track for encoding. Note that the bits argument should always be 16 since it's implicit to the codec in all cases. To add more than one audio track, use lqt_add_audio_track .

int lqt_add_audio_track ( quicktime_t * file,
int channels,
long sample_rate,
int bits,
lqt_codec_info_t * codec_info )
 

Add an audio tracks for encoding.

Parameters:
file   A quicktime handle
channels   Number of channels
sample_rate   Samplerate
bits   Bits per sample (always 16)
codec_info   Codec to use (see Codec registry )

This sets adds a new audio track for encoding. Note that the bits argument should always be 16 since it's implicit to the codec in all cases. Call this function to subsequently to add as many tracks as you like.

void lqt_set_audio_language ( quicktime_t * file,
int track,
const char * language )
 

Set the audio language.

Parameters:
file   A quicktime handle
track   Track index (starting with 0)
language   ISO-639 Language code

The language code is a 3-character code, English is "eng", Japanese is "jpn".

int lqt_encode_audio_track ( quicktime_t * file,
int16_t ** output_i,
float ** output_f,
long samples,
int track )
 

Encode a number of audio samples for the first track.

Parameters:
file   A quicktime handle
output_i   16 bit integer output buffer (or NULL)
output_f   floating point output buffer (or NULL)
samples   Number of samples to decode
track   index (starting with 0)

Same as quicktime_encode_audio but with an additional track argument for encoding files with more than one audio track. If you want to pass the full resolution even for 24/32 bit audio, use lqt_encode_audio_raw .

int lqt_encode_audio_raw ( quicktime_t * file,
void * input,
long samples,
int track )
 

Encode audio in the native sampleformat of the codec.

Parameters:
file   A quicktime handle
input   An array of interleaved samples
samples   Number of samples to encode
track   Track index (starting with 0)
Returns:
The number of encoded samples or 0 if an error occurred.

This function bypasses all internal sampleformat conversion and allows full resolution input for up to 32 bit integer and 32 bit float. To check, which dataformat the samples will have, use lqt_get_sample_format .


Generated at Mon Nov 10 00:28:16 2008 for libquicktime by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001