author Aaron Wishnick <>
Wed, 18 Jun 2008 04:51:10 +0000
changeset 2655 b8e736c8a5a8
parent 2283 546f7c1eb755
child 4311 1238da4a7112
permissions -rw-r--r--
Added beginnings of resampling code.
     1 .TH "SDL_AudioCVT" "3" "Tue 11 Sep 2001, 22:58" "SDL" "SDL API Reference" 
     2 .SH "NAME"
     3 SDL_AudioCVT \- Audio Conversion Structure
     5 .PP
     6 .nf
     7 \f(CWtypedef struct{
     8   int needed;
     9   Uint16 src_format;
    10   Uint16 dest_format;
    11   double rate_incr;
    12   Uint8 *buf;
    13   int len;
    14   int len_cvt;
    15   int len_mult;
    16   double len_ratio;
    17   void (*filters[10])(struct SDL_AudioCVT *cvt, Uint16 format);
    18   int filter_index;
    19 } SDL_AudioCVT;\fR
    20 .fi
    21 .PP
    23 .TP 20
    24 \fBneeded\fR
    25 Set to one if the conversion is possible
    26 .TP 20
    27 \fBsrc_format\fR
    28 Audio format of the source
    29 .TP 20
    30 \fBdest_format\fR
    31 Audio format of the destination
    32 .TP 20
    33 \fBrate_incr\fR
    34 Rate conversion increment
    35 .TP 20
    36 \fBbuf\fR
    37 Audio buffer
    38 .TP 20
    39 \fBlen\fR
    40 Length of the original audio buffer in bytes
    41 .TP 20
    42 \fBlen_cvt\fR
    43 Length of converted audio buffer in bytes (calculated)
    44 .TP 20
    45 \fBlen_mult\fR
    46 \fBbuf\fR must be \fBlen\fR*\fBlen_mult\fR bytes in size(calculated)
    47 .TP 20
    48 \fBlen_ratio\fR
    49 Final audio size is \fBlen\fR*\fBlen_ratio\fR
    50 .TP 20
    51 \fBfilters[10](\&.\&.)\fR
    52 Pointers to functions needed for this conversion
    53 .TP 20
    54 \fBfilter_index\fR
    55 Current conversion function
    57 .PP
    58 The \fBSDL_AudioCVT\fR is used to convert audio data between different formats\&. A \fBSDL_AudioCVT\fR structure is created with the \fI\fBSDL_BuildAudioCVT\fP\fR function, while the actual conversion is done by the \fI\fBSDL_ConvertAudio\fP\fR function\&.
    59 .PP
    60 Many of the fields in the \fBSDL_AudioCVT\fR structure should be considered private and their function will not be discussed here\&.
    61 .IP "\fBUint8 *\fP\fBbuf\fR" 10This points to the audio data that will be used in the conversion\&. It is both the source and the destination, which means the converted audio data overwrites the original data\&. It also means that the converted data may be larger than the original data (if you were converting from 8-bit to 16-bit, for instance), so you must ensure \fBbuf\fR is large enough\&. See below\&.
    62 .IP "\fBint\fP \fBlen\fR" 10This is the length of the original audio data in bytes\&.
    63 .IP "\fBint\fP \fBlen_mult\fR" 10As explained above, the audio buffer needs to be big enough to store the converted data, which may be bigger than the original audio data\&. The length of \fBbuf\fR should be \fBlen\fR*\fBlen_mult\fR\&.
    64 .IP "\fBdouble\fP \fBlen_ratio\fR" 10When you have finished converting your audio data, you need to know how much of your audio buffer is valid\&. \fBlen\fR*\fBlen_ratio\fR is the size of the converted audio data in bytes\&. This is very similar to \fBlen_mult\fR, however when the convert audio data is shorter than the original \fBlen_mult\fR would be 1\&. \fBlen_ratio\fR, on the other hand, would be a fractional number between 0 and 1\&.
    65 .SH "SEE ALSO"
    66 .PP
    67 \fI\fBSDL_BuildAudioCVT\fP\fR, \fI\fBSDL_ConvertAudio\fP\fR, \fI\fBSDL_AudioSpec\fR\fR
    68 ...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 22:58