traverso-commit
[Top][All Lists]
Advanced

[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;
        




reply via email to

[Prev in Thread] Current Thread [Next in Thread]