[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src audiofileio/decode/AbstractAudioRe...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src audiofileio/decode/AbstractAudioRe... |
Date: |
Mon, 10 Sep 2007 21:22:45 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/09/10 21:22:45
Modified files:
src/audiofileio/decode: AbstractAudioReader.cpp
AbstractAudioReader.h
FlacAudioReader.cpp MadAudioReader.cpp
PeakDataReader.cpp
ResampleAudioReader.cpp
SFAudioReader.cpp VorbisAudioReader.cpp
WPAudioReader.cpp
src/core : ReadSource.cpp
Log message:
* Change AbstractAudioReader::get_length() to return a TimeRef and
added a get_nframes() function to make a clear distinction to samplerate
independent length and position in frames.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/AbstractAudioReader.cpp?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/AbstractAudioReader.h?cvsroot=traverso&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/FlacAudioReader.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/MadAudioReader.cpp?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/PeakDataReader.cpp?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/ResampleAudioReader.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/SFAudioReader.cpp?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/VorbisAudioReader.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/audiofileio/decode/WPAudioReader.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.cpp?cvsroot=traverso&r1=1.54&r2=1.55
Patches:
Index: audiofileio/decode/AbstractAudioReader.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/audiofileio/decode/AbstractAudioReader.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- audiofileio/decode/AbstractAudioReader.cpp 28 Aug 2007 19:51:51 -0000
1.5
+++ audiofileio/decode/AbstractAudioReader.cpp 10 Sep 2007 21:22:44 -0000
1.6
@@ -38,7 +38,8 @@
AbstractAudioReader::AbstractAudioReader(const QString& filename)
{
m_fileName = filename;
- m_readPos = m_channels = m_length = 0;
+ m_readPos = m_channels = m_nframes = 0;
+ m_length = 0;
}
@@ -67,12 +68,6 @@
}
-nframes_t AbstractAudioReader::get_length()
-{
- return m_length;
-}
-
-
int AbstractAudioReader::get_file_rate()
{
return m_rate;
@@ -81,7 +76,7 @@
bool AbstractAudioReader::eof()
{
- return (m_readPos >= m_length);
+ return (m_readPos >= m_nframes);
}
@@ -106,7 +101,7 @@
nframes_t AbstractAudioReader::read(DecodeBuffer* buffer, nframes_t count)
{
- if (count && m_readPos < m_length) {
+ if (count && m_readPos < m_nframes) {
// Make sure the read buffer is big enough for this read
buffer->check_buffers_capacity(count, m_channels);
Index: audiofileio/decode/AbstractAudioReader.h
===================================================================
RCS file:
/sources/traverso/traverso/src/audiofileio/decode/AbstractAudioReader.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- audiofileio/decode/AbstractAudioReader.h 10 Sep 2007 19:22:51 -0000
1.10
+++ audiofileio/decode/AbstractAudioReader.h 10 Sep 2007 21:22:44 -0000
1.11
@@ -125,7 +125,8 @@
virtual ~AbstractAudioReader();
int get_num_channels();
- nframes_t get_length();
+ const TimeRef& get_length() const {return m_length;}
+ nframes_t get_nframes() const {return m_nframes;}
int get_file_rate();
bool eof();
nframes_t pos();
@@ -139,7 +140,7 @@
bool seek(nframes_t start);
nframes_t read(DecodeBuffer* buffer, nframes_t frameCount);
- bool is_valid() {return (m_channels > 0 && m_length > 0);}
+ bool is_valid() {return (m_channels > 0 && m_nframes > 0);}
virtual QString decoder_type() const = 0;
virtual void clear_buffers() {}
@@ -153,7 +154,8 @@
nframes_t m_readPos;
int m_channels;
- nframes_t m_length;
+ TimeRef m_length;
+ nframes_t m_nframes;
int m_rate;
};
Index: audiofileio/decode/FlacAudioReader.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/audiofileio/decode/FlacAudioReader.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- audiofileio/decode/FlacAudioReader.cpp 17 Aug 2007 00:13:26 -0000
1.6
+++ audiofileio/decode/FlacAudioReader.cpp 10 Sep 2007 21:22:44 -0000
1.7
@@ -390,8 +390,9 @@
if (m_flac->is_valid()) {
m_channels = m_flac->m_channels;
- m_length = m_flac->m_samples;
+ m_nframes = m_flac->m_samples;
m_rate = m_flac->m_rate;
+ m_length = TimeRef(m_nframes, m_rate);
}
}
Index: audiofileio/decode/MadAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/MadAudioReader.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- audiofileio/decode/MadAudioReader.cpp 17 Aug 2007 00:13:26 -0000
1.5
+++ audiofileio/decode/MadAudioReader.cpp 10 Sep 2007 21:22:44 -0000
1.6
@@ -518,7 +518,7 @@
m_channels = 2;
}
- m_length = countFrames();
+ m_nframes = countFrames();
if (m_length <= 0) {
d->handle->cleanup();
@@ -529,6 +529,8 @@
}
m_rate = d->firstHeader.samplerate;
+ m_length = TimeRef(m_nframes, m_rate);
+
d->overflowBuffers = 0;
@@ -654,7 +656,7 @@
{
Q_ASSERT(d);
- if (start >= m_length) {
+ if (start >= m_nframes) {
return false;
}
@@ -866,10 +868,10 @@
// Pad end with zeros if necessary
// FIXME: This shouldn't be necessary! :P
- // is m_length reporting incorrectly?
+ // is m_nframes reporting incorrectly?
// are we not outputting the last mp3-frame for some reason?
/*int remainingFramesRequested = frameCount - framesWritten;
- int remainingFramesInFile = m_length - (m_readPos + framesWritten);
+ int remainingFramesInFile = m_nframes - (m_readPos + framesWritten);
if (remainingFramesRequested > 0 && remainingFramesInFile > 0) {
int padLength = (remainingFramesRequested >
remainingFramesInFile) ? remainingFramesInFile : remainingFramesRequested;
for (int c = 0; c < m_channels; c++) {
@@ -880,9 +882,9 @@
}
// Truncate so we don't return too many frames
- if (framesWritten + m_readPos > m_length) {
+ if (framesWritten + m_readPos > m_nframes) {
printf("truncating by %d!\n", m_length - (framesWritten +
m_readPos));
- framesWritten = m_length - m_readPos;
+ framesWritten = m_nframes - m_readPos;
}*/
//printf("request: %d (returned: %d), now at: %lu (total: %lu)\n",
frameCount, framesWritten, m_readPos + framesWritten, m_length);
@@ -903,9 +905,9 @@
create_buffers();
}
- if (writeBuffers && (m_readPos + d->outputPos + nframes) > m_length) {
- nframes = m_length - (m_readPos + offset);
- //printf("!!!nframes: %lu, length: %lu, current: %lu\n",
nframes, m_length, d->outputPos + m_readPos);
+ if (writeBuffers && (m_readPos + d->outputPos + nframes) > m_nframes) {
+ nframes = m_nframes - (m_readPos + offset);
+ //printf("!!!nframes: %lu, length: %lu, current: %lu\n",
nframes, m_nframes, d->outputPos + m_readPos);
}
// now create the output
Index: audiofileio/decode/PeakDataReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/PeakDataReader.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- audiofileio/decode/PeakDataReader.cpp 10 Sep 2007 18:41:51 -0000
1.2
+++ audiofileio/decode/PeakDataReader.cpp 10 Sep 2007 21:22:44 -0000
1.3
@@ -42,9 +42,8 @@
fseek (m_file, 0, SEEK_END);
m_channels = 1;
- m_length = ftell (m_file);
+ m_nframes = ftell (m_file);
m_rate = 44100;
-
}
@@ -68,7 +67,7 @@
Q_ASSERT(m_file);
- if (start >= m_length) {
+ if (start >= m_nframes) {
return false;
}
Index: audiofileio/decode/ResampleAudioReader.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/audiofileio/decode/ResampleAudioReader.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- audiofileio/decode/ResampleAudioReader.cpp 28 Aug 2007 19:51:51 -0000
1.8
+++ audiofileio/decode/ResampleAudioReader.cpp 10 Sep 2007 21:22:44 -0000
1.9
@@ -42,7 +42,9 @@
m_channels = m_reader->get_num_channels();
m_rate = m_reader->get_file_rate();
+ m_nframes = m_reader->get_nframes();
m_length = m_reader->get_length();
+
m_outputRate = m_rate;
m_overflowBuffers = 0;
@@ -145,7 +147,7 @@
return;
}
m_outputRate = rate;
- m_length = file_to_song_frame(m_reader->get_length());
+ m_nframes = file_to_song_frame(m_reader->get_nframes());
}
@@ -216,8 +218,8 @@
}
nframes_t framesToConvert = frameCount;
- if (frameCount > m_length - m_readPos) {
- framesToConvert = m_length - m_readPos;
+ if (frameCount > m_nframes - m_readPos) {
+ framesToConvert = m_nframes - m_readPos;
}
for (int chan = 0; chan < m_channels; chan++) {
@@ -248,8 +250,8 @@
}
// Pad end of file with 0s if necessary
- if (framesRead == 0 && m_readPos < get_length()) {
- int padLength = get_length() - m_readPos;
+ if (framesRead == 0 && m_readPos < get_nframes()) {
+ int padLength = get_nframes() - m_readPos;
printf("Resampler: padding: %d\n", padLength);
for (int chan = 0; chan < m_channels; chan++) {
memset(buffer->destination[chan] + framesRead, 0,
padLength * sizeof(audio_sample_t));
@@ -258,12 +260,12 @@
}
// Truncate so we don't return too many samples
- if (m_readPos + framesRead > get_length()) {
- printf("Resampler: truncating: %d\n", framesRead -
(get_length() - m_readPos));
- framesRead = get_length() - m_readPos;
+ if (m_readPos + framesRead > get_nframes()) {
+ printf("Resampler: truncating: %d\n", framesRead -
(get_nframes() - m_readPos));
+ framesRead = get_nframes() - m_readPos;
}
- //printf("framesRead: %lu of %lu (overflow: %lu) (at: %lu of %lu)\n",
framesRead, frameCount, m_overflowUsed, m_readPos + framesRead, get_length());
+ //printf("framesRead: %lu of %lu (overflow: %lu) (at: %lu of %lu)\n",
framesRead, frameCount, m_overflowUsed, m_readPos + framesRead, get_nframes());
return framesRead;
}
Index: audiofileio/decode/SFAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/SFAudioReader.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- audiofileio/decode/SFAudioReader.cpp 28 Aug 2007 19:51:51 -0000
1.5
+++ audiofileio/decode/SFAudioReader.cpp 10 Sep 2007 21:22:44 -0000
1.6
@@ -43,9 +43,9 @@
}
m_channels = m_sfinfo.channels;
- m_length = m_sfinfo.frames;
+ m_nframes = m_sfinfo.frames;
m_rate = m_sfinfo.samplerate;
-
+ m_length = TimeRef(m_nframes, m_rate);
}
@@ -87,7 +87,7 @@
Q_ASSERT(m_sf);
- if (start >= m_length) {
+ if (start >= m_nframes) {
return false;
}
Index: audiofileio/decode/VorbisAudioReader.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/audiofileio/decode/VorbisAudioReader.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- audiofileio/decode/VorbisAudioReader.cpp 16 Aug 2007 14:26:50 -0000
1.4
+++ audiofileio/decode/VorbisAudioReader.cpp 10 Sep 2007 21:22:44 -0000
1.5
@@ -54,8 +54,9 @@
m_vi = ov_info(&m_vf,-1);
m_channels = m_vi->channels;
- m_length = ov_pcm_total(&m_vf, -1);
+ m_nframes = ov_pcm_total(&m_vf, -1);
m_rate = m_vi->rate;
+ m_length = TimeRef(m_nframes, m_rate);
}
@@ -96,7 +97,7 @@
{
Q_ASSERT(m_file);
- if (start >= m_length) {
+ if (start >= m_nframes) {
return false;
}
Index: audiofileio/decode/WPAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/audiofileio/decode/WPAudioReader.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- audiofileio/decode/WPAudioReader.cpp 28 Aug 2007 19:51:51 -0000
1.9
+++ audiofileio/decode/WPAudioReader.cpp 10 Sep 2007 21:22:44 -0000
1.10
@@ -45,8 +45,9 @@
m_bitsPerSample = WavpackGetBitsPerSample(m_wp);
m_bytesPerSample = WavpackGetBytesPerSample(m_wp);
m_channels = WavpackGetReducedChannels(m_wp);
- m_length = WavpackGetNumSamples(m_wp);
+ m_nframes = WavpackGetNumSamples(m_wp);
m_rate = WavpackGetSampleRate(m_wp);
+ m_length = TimeRef(m_nframes, m_rate);
}
@@ -83,7 +84,7 @@
Q_ASSERT(m_wp);
- if (start >= m_length) {
+ if (start >= m_nframes) {
return false;
}
Index: core/ReadSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.cpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- core/ReadSource.cpp 10 Sep 2007 18:42:48 -0000 1.54
+++ core/ReadSource.cpp 10 Sep 2007 21:22:45 -0000 1.55
@@ -257,7 +257,7 @@
}
m_rate = m_audioReader->get_file_rate();
- m_length = TimeRef(m_audioReader->get_length(), m_rate);
+ m_length = m_audioReader->get_length();
m_bufferstatus = new BufferStatus;