traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src/core FlacAudioReader.cpp MadAudioR...


From: Ben Levitt
Subject: [Traverso-commit] traverso/src/core FlacAudioReader.cpp MadAudioR...
Date: Sat, 21 Jul 2007 01:00:23 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Ben Levitt <benjie>     07/07/21 01:00:23

Modified files:
        src/core       : FlacAudioReader.cpp MadAudioReader.cpp 

Log message:
        - reduce processig when seeking an mp3 (process 3 extra mp3 frames, 
instead of 29 extra)
        - comment out some hopefully unnecessary mp3 decoding checking code.  
if it still works fine 
        for everyone, I'll pull it out.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/FlacAudioReader.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/MadAudioReader.cpp?cvsroot=traverso&r1=1.10&r2=1.11

Patches:
Index: FlacAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/FlacAudioReader.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- FlacAudioReader.cpp 20 Jul 2007 23:04:21 -0000      1.8
+++ FlacAudioReader.cpp 21 Jul 2007 01:00:23 -0000      1.9
@@ -477,20 +477,20 @@
        }
        
        // Pad end of file with 0s if necessary.  (Shouldn't be necessary...)
-       int remainingFramesRequested = frameCount - framesCoppied;
+       /*int remainingFramesRequested = frameCount - framesCoppied;
        int remainingFramesInFile = get_length() - (m_readPos + framesCoppied);
        if (framesCoppied == 0 && remainingFramesInFile > 0) {
                int padLength = (remainingFramesRequested > 
remainingFramesInFile) ? remainingFramesInFile : remainingFramesRequested;
-               //PERROR("padLength: %d", padLength);
+               PERROR("padLength: %d", padLength);
                for (int c = 0; c < get_num_channels(); c++) {
                        memset(buffer[c] + framesCoppied, 0, padLength * 
sizeof(audio_sample_t));
                }
                framesCoppied += padLength;
        }
        if (framesCoppied > frameCount) {
-               //PERROR("Truncating");
+               PERROR("Truncating");
                framesCoppied = frameCount;
-       }
+       }*/
        
        //printf("copied %d of %d.  nextFrame: %lu of %lu\n", samplesCoppied, 
sampleCount, m_readPos, get_length());
        

Index: MadAudioReader.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/MadAudioReader.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- MadAudioReader.cpp  20 Jul 2007 23:45:31 -0000      1.10
+++ MadAudioReader.cpp  21 Jul 2007 01:00:23 -0000      1.11
@@ -650,9 +650,13 @@
        unsigned int frame = static_cast<unsigned int>(posSecs / mp3FrameSecs);
        nframes_t frameOffset = (nframes_t)(start - (frame * mp3FrameSecs * 
get_rate() + 0.5));
        
-       // Rob said: 29 frames is the theoretically max frame reservoir limit 
(whatever that means...)
-       // it seems that mad needs at most 29 frames to get ready
-       unsigned int frameReservoirProtect = (frame > 29 ? 29 : frame);
+       // K3b source: Rob said: 29 frames is the theoretically max frame 
reservoir limit
+       // (whatever that means...) it seems that mad needs at most 29 frames 
to get ready
+       //
+       // Ben says: It looks like Rob (the author of MAD) implies here:
+       //    http://www.mars.org/mailman/public/mad-dev/2001-August/000321.html
+       // that 3 frames (1 + 2 extra) is enough... seems to work fine...
+       unsigned int frameReservoirProtect = (frame > 3 ? 3 : frame);
        
        frame -= frameReservoirProtect;
        
@@ -835,7 +839,7 @@
        // FIXME: This shouldn't be necessary!  :P
        // is get_length() reporting incorrectly?
        // are we not outputting the last mp3-frame for some reason?
-       int remainingFramesRequested = frameCount - framesWritten;
+       /*int remainingFramesRequested = frameCount - framesWritten;
        int remainingFramesInFile = get_length() - (m_readPos + framesWritten);
        if (remainingFramesRequested > 0 && remainingFramesInFile > 0) {
                int padLength = (remainingFramesRequested > 
remainingFramesInFile) ? remainingFramesInFile : remainingFramesRequested;
@@ -850,7 +854,7 @@
        if (framesWritten > remainingFramesInFile) {
                printf("truncating by %d!\n", framesWritten - 
remainingFramesInFile);
                framesWritten = remainingFramesInFile;
-       }
+       }*/
        
        //printf("at: %lu (total: %lu), request: %d (returned: %d)\n", 
m_readPos + framesWritten, m_frames, frameCount, framesWritten);
        




reply via email to

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