OpenShot Library | libopenshot-audio 0.2.0
|
Public Member Functions | |
MemoryMappedWavReader (const File &wavFile, const WavAudioFormatReader &reader) | |
bool | readSamples (int **destSamples, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int numSamples) override |
Subclasses must implement this method to perform the low-level read operation. | |
void | getSample (int64 sample, float *result) const noexcept override |
Returns the samples for all channels at a given sample position. | |
void | readMaxLevels (int64 startSampleInFile, int64 numSamples, Range< float > *results, int numChannelsToRead) override |
Finds the highest and lowest sample levels from a section of the audio stream. | |
![]() | |
const File & | getFile () const noexcept |
Returns the file that is being mapped. | |
bool | mapEntireFile () |
Attempts to map the entire file into memory. | |
virtual bool | mapSectionOfFile (Range< int64 > samplesToMap) |
Attempts to map a section of the file into memory. | |
Range< int64 > | getMappedSection () const noexcept |
Returns the sample range that's currently memory-mapped and available for reading. | |
void | touchSample (int64 sample) const noexcept |
Touches the memory for the given sample, to force it to be loaded into active memory. | |
size_t | getNumBytesUsed () const |
Returns the number of bytes currently being mapped. | |
![]() | |
virtual | ~AudioFormatReader () |
Destructor. | |
const String & | getFormatName () const noexcept |
Returns a description of what type of format this is. | |
bool | read (float *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead) |
Reads samples from the stream. | |
bool | read (int *const *destChannels, int numDestChannels, int64 startSampleInSource, int numSamplesToRead, bool fillLeftoverChannelsWithCopies) |
Reads samples from the stream. | |
void | read (AudioBuffer< float > *buffer, int startSampleInDestBuffer, int numSamples, int64 readerStartSample, bool useReaderLeftChan, bool useReaderRightChan) |
Fills a section of an AudioBuffer from this reader. | |
virtual void | readMaxLevels (int64 startSample, int64 numSamples, float &lowestLeft, float &highestLeft, float &lowestRight, float &highestRight) |
Finds the highest and lowest sample levels from a section of the audio stream. | |
int64 | searchForLevel (int64 startSample, int64 numSamplesToSearch, double magnitudeRangeMinimum, double magnitudeRangeMaximum, int minimumConsecutiveSamples) |
Scans the source looking for a sample whose magnitude is in a specified range. | |
virtual AudioChannelSet | getChannelLayout () |
Get the channel layout of the audio stream. | |
Additional Inherited Members | |
![]() | |
double | sampleRate = 0 |
The sample-rate of the stream. | |
unsigned int | bitsPerSample = 0 |
The number of bits per sample, e.g. | |
int64 | lengthInSamples = 0 |
The total number of samples in the audio stream. | |
unsigned int | numChannels = 0 |
The total number of channels in the audio stream. | |
bool | usesFloatingPointData = false |
Indicates whether the data is floating-point or fixed. | |
StringPairArray | metadataValues |
A set of metadata values that the reader has pulled out of the stream. | |
InputStream * | input |
The input stream, for use by subclasses. | |
![]() | |
MemoryMappedAudioFormatReader (const File &file, const AudioFormatReader &details, int64 dataChunkStart, int64 dataChunkLength, int bytesPerFrame) | |
Creates an MemoryMappedAudioFormatReader object. | |
int64 | sampleToFilePos (int64 sample) const noexcept |
Converts a sample index to a byte position in the file. | |
int64 | filePosToSample (int64 filePos) const noexcept |
Converts a byte position in the file to a sample index. | |
const void * | sampleToPointer (int64 sample) const noexcept |
Converts a sample index to a pointer to the mapped file memory. | |
template<typename SampleType , typename Endianness > | |
Range< float > | scanMinAndMaxInterleaved (int channel, int64 startSampleInFile, int64 numSamples) const noexcept |
Used by AudioFormatReader subclasses to scan for min/max ranges in interleaved data. | |
![]() | |
AudioFormatReader (InputStream *sourceStream, const String &formatName) | |
Creates an AudioFormatReader object. | |
![]() | |
static void | clearSamplesBeyondAvailableLength (int **destChannels, int numDestChannels, int startOffsetInDestBuffer, int64 startSampleInFile, int &numSamples, int64 fileLengthInSamples) |
Used by AudioFormatReader subclasses to clear any parts of the data blocks that lie beyond the end of their available length. | |
![]() | |
File | file |
Range< int64 > | mappedSection |
std::unique_ptr< MemoryMappedFile > | map |
int64 | dataChunkStart |
int64 | dataLength |
int | bytesPerFrame |
Definition at line 1549 of file juce_WavAudioFormat.cpp.
|
inline |
Definition at line 1552 of file juce_WavAudioFormat.cpp.
|
inlineoverridevirtual |
Subclasses must implement this method to perform the low-level read operation.
Callers should use read() instead of calling this directly.
destChannels | the array of destination buffers to fill. Some of these pointers may be null |
numDestChannels | the number of items in the destChannels array. This value is guaranteed not to be greater than the number of channels that this reader object contains |
startOffsetInDestBuffer | the number of samples from the start of the dest data at which to begin writing |
startSampleInFile | the number of samples into the source data at which to begin reading. This value is guaranteed to be >= 0. |
numSamples | the number of samples to read |
Implements juce::AudioFormatReader.
Definition at line 1558 of file juce_WavAudioFormat.cpp.
References juce::AudioFormatReader::bitsPerSample, juce::AudioFormatReader::clearSamplesBeyondAvailableLength(), juce::Range< ValueType >::contains(), juce::AudioFormatReader::lengthInSamples, juce::AudioFormatReader::numChannels, juce::MemoryMappedAudioFormatReader::sampleToPointer(), and juce::AudioFormatReader::usesFloatingPointData.
|
inlineoverridevirtualnoexcept |
Returns the samples for all channels at a given sample position.
The result array must be large enough to hold a value for each channel that this reader contains.
Implements juce::MemoryMappedAudioFormatReader.
Definition at line 1576 of file juce_WavAudioFormat.cpp.
References juce::AudioFormatReader::bitsPerSample, juce::Range< ValueType >::contains(), juce::AudioFormatReader::numChannels, juce::MemoryMappedAudioFormatReader::sampleToPointer(), and juce::AudioFormatReader::usesFloatingPointData.
|
inlineoverridevirtual |
Finds the highest and lowest sample levels from a section of the audio stream.
This will read a block of samples from the stream, and measure the highest and lowest sample levels from the channels in that section, returning these as normalised floating-point levels.
startSample | the offset into the audio stream to start reading from. It's ok for this to be beyond the start or end of the stream. |
numSamples | how many samples to read |
results | this array will be filled with Range values for each channel. The array must contain numChannels elements. |
numChannelsToRead | the number of channels of data to scan. This must be more than zero, but not more than the total number of channels that the reader contains |
Reimplemented from juce::AudioFormatReader.
Definition at line 1603 of file juce_WavAudioFormat.cpp.
References juce::AudioFormatReader::bitsPerSample, juce::Range< ValueType >::contains(), juce::AudioFormatReader::lengthInSamples, and juce::AudioFormatReader::usesFloatingPointData.