afGetPCMMapping(3dm) afGetPCMMapping(3dm)
afGetPCMMapping, afGetVirtualPCMMapping - get the track / virtual PCM
mapping values for a specified audio track from an AFfilehandle structure
#include <dmedia/audiofile.h>
void afGetPCMMapping(AFfilehandle file, int track,
double *slope, double *intercept,
double *minclip, double *maxclip)
void afGetVirtualPCMMapping(AFfilehandle file, int track,
double *slope, double *intercept,
double *minclip, double *maxclip)
file is an AFfilehandle structure, previously created by a call to
afOpenFile(3dm).
track is an integer which identifies an audio track in file.
Since all currently supported file formats contain exactly one
audio track per file, the constant AF_DEFAULT_TRACK should always
be used here for now.
slope is a pointer to a double precision floating point value which
specifies the amplitude scaling factor for the audio waveform
associated with track
intercept
is a pointer to a double precision floating point value which
specifies the audio waveform vertical midpoint (zero-crossing)
value associated with track
minclip is a pointer to a double precision floating point value
indicating the minimum or most negative audio data sample value
that will be returned. Any value less than this is set to
minclip
maxclip is a pointer to a double precision floating point value
indicating the maximum or most positive audio data sample value
to be returned. Any value greater than this is set to maxclip
afGetPCMMapping() returns the four values associated with the PCM (Pulse
Code Modulation) mapping in an audio track in the file represented by the
AFfilehandle argument, using the double pointer arguments.
afGetVirtualPCMMapping() does the same for the virtual format for the
given track, as set by any combination of calls to
afSetVirtualPCMMappingPage 1
afGetPCMMapping(3dm) afGetPCMMapping(3dm)
See afIntro(3dm) for a detailed description of the PCM mapping technique.
PCM mapping is only useful for modifying frames as they are read into or
written out from a buffer via afReadFrames(3dm) or afWriteFrames(3dm).
None of the currently supported file formats have the capability to store
this information, even though the actual mapping can and will be applied
to the frames stored in those files. Therefor, it is important to be
careful what values you specify. In general, all two's complement and
floating point sample formats are expected to be symmetrical about zero,
i.e., the intercept will be 0.0 and minclip and maxclip will be negative
and positive N, where N is some non-zero positive value.
afWriteFrames(3dm), afReadFrames(3dm), afInitPCMMapping(3dm),
afSetVirtualPCMMapping(3dm)
PPPPaaaaggggeeee 2222 [ Back ]
|