view docs/man3/SDL_AudioCVT.3 @ 3883:cfe850b334e7 SDL-1.2

Also save/restore fpu register in vbl interrupt
author Patrice Mandin <patmandin@gmail.com>
date Sat, 21 Oct 2006 18:53:33 +0000
parents e5bc29de3f0a
children 546f7c1eb755
line wrap: on
line source

.TH "SDL_AudioCVT" "3" "Tue 11 Sep 2001, 22:58" "SDL" "SDL API Reference" 
.SH "NAME"
SDL_AudioCVT\- Audio Conversion Structure
.SH "STRUCTURE DEFINITION"
.PP
.nf
\f(CWtypedef struct{
  int needed;
  Uint16 src_format;
  Uint16 dest_format;
  double rate_incr;
  Uint8 *buf;
  int len;
  int len_cvt;
  int len_mult;
  double len_ratio;
  void (*filters[10])(struct SDL_AudioCVT *cvt, Uint16 format);
  int filter_index;
} SDL_AudioCVT;\fR
.fi
.PP
.SH "STRUCTURE DATA"
.TP 20
\fBneeded\fR
Set to one if the conversion is possible
.TP 20
\fBsrc_format\fR
Audio format of the source
.TP 20
\fBdest_format\fR
Audio format of the destination
.TP 20
\fBrate_incr\fR
Rate conversion increment
.TP 20
\fBbuf\fR
Audio buffer
.TP 20
\fBlen\fR
Length of the original audio buffer in bytes
.TP 20
\fBlen_cvt\fR
Length of converted audio buffer in bytes (calculated)
.TP 20
\fBlen_mult\fR
\fBbuf\fR must be \fBlen\fR*\fBlen_mult\fR bytes in size(calculated)
.TP 20
\fBlen_ratio\fR
Final audio size is \fBlen\fR*\fBlen_ratio\fR
.TP 20
\fBfilters[10](\&.\&.)\fR
Pointers to functions needed for this conversion
.TP 20
\fBfilter_index\fR
Current conversion function
.SH "DESCRIPTION"
.PP
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\&.
.PP
Many of the fields in the \fBSDL_AudioCVT\fR structure should be considered private and their function will not be discussed here\&.
.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\&.
.IP "\fBint\fP \fBlen\fR" 10This is the length of the original audio data in bytes\&.
.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\&.
.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\&.
.SH "SEE ALSO"
.PP
\fI\fBSDL_BuildAudioCVT\fP\fR, \fI\fBSDL_ConvertAudio\fP\fR, \fI\fBSDL_AudioSpec\fR\fR
...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 22:58