Audio encoding
[Audio]

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.
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.
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.
int lqt_add_audio_track (quicktime_t *file, int channels, long sample_rate, int bits, lqt_codec_info_t *codec_info)
 Add an audio track for encoding.
int lqt_set_audio_codec (quicktime_t *file, int track, lqt_codec_info_t *info)
 Set a codec for an audio track.
void lqt_set_audio_language (quicktime_t *file, int track, const char *language)
 Set the audio language.
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.
int lqt_encode_audio_raw (quicktime_t *file, void *input, long samples, int track)
 Encode audio in the native sampleformat of the codec.
void lqt_set_audio_pts_offset (quicktime_t *file, int track, int64_t offset)
 Set an audio pts offset.

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 track 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) or NULL

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.

If you passed NULL for the codec_info, you should call lqt_set_audio_codec once you know which codec to use.

int lqt_set_audio_codec ( quicktime_t file,
int  track,
lqt_codec_info_t info 
)

Set a codec for an audio track.

Parameters:
file A quicktime handle
track Track index (starting with 0)
info The codec to be used for encoding
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 .

void lqt_set_audio_pts_offset ( quicktime_t file,
int  track,
int64_t  offset 
)

Set an audio pts offset.

Parameters:
file A quicktime handle
track Track index (starting with 0)
offset PTS of the first audio sample (in samples)
Generated on Thu Mar 8 22:27:04 2012 for libquicktime by  doxygen 1.6.3