gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp
Date: Mon, 26 May 2008 20:24:21 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/05/26 20:24:21

Modified files:
        .              : ChangeLog 
        libbase        : FLVParser.cpp 

Log message:
                * libbase/FLVParser.cpp (seek): don't parse on seek, just don't
                  allow seeking past the currently parsed range.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6709&r2=1.6710
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/FLVParser.cpp?cvsroot=gnash&r1=1.40&r2=1.41

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6709
retrieving revision 1.6710
diff -u -b -r1.6709 -r1.6710
--- ChangeLog   26 May 2008 15:26:16 -0000      1.6709
+++ ChangeLog   26 May 2008 20:24:20 -0000      1.6710
@@ -1,3 +1,8 @@
+2008-05-26 Sandro Santilli <address@hidden>
+
+       * libbase/FLVParser.cpp (seek): don't parse on seek, just don't
+         allow seeking past the currently parsed range.
+
 2008-05-26 Benjamin Wolsey <address@hidden>
 
        * testsuite/misc-ming.all: fix testsuite.

Index: libbase/FLVParser.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/FLVParser.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -b -r1.40 -r1.41
--- libbase/FLVParser.cpp       24 May 2008 22:03:32 -0000      1.40
+++ libbase/FLVParser.cpp       26 May 2008 20:24:21 -0000      1.41
@@ -264,19 +264,8 @@
 boost::uint32_t FLVParser::seekAudio(boost::uint32_t time)
 {
 
-       // Make sure that there are parsed some frames
-       while(_audioFrames.size() < 1 && !_parsingComplete) {
-               parseNextTag();
-       }
-
        // If there is no audio data return NULL
-       if (_audioFrames.size() == 0) return 0;
-
-       // Make sure that there are parsed some enough frames
-       // to get the right frame.
-       while(_audioFrames.back()->timestamp < time && !_parsingComplete) {
-               parseNextTag();
-       }
+       if (_audioFrames.empty()) return 0;
 
        // If there are no audio greater than the given time
        // the last audioframe is returned
@@ -315,21 +304,10 @@
 }
 
 
-boost::uint32_t FLVParser::seekVideo(boost::uint32_t time)
+boost::uint32_t
+FLVParser::seekVideo(boost::uint32_t time)
 {
-       // Make sure that there are parsed some frames
-       while(_videoFrames.size() < 1 && !_parsingComplete) {
-               parseNextTag();
-       }
-
-       // If there is no video data return NULL
-       if (_videoFrames.size() == 0) return 0;
-
-       // Make sure that there are parsed some enough frames
-       // to get the right frame.
-       while(_videoFrames.back()->timestamp < time && !_parsingComplete) {
-               parseNextTag();
-       }
+       if ( _videoFrames.empty() ) return 0;
 
        // If there are no videoframe greater than the given time
        // the last key videoframe is returned
@@ -367,23 +345,6 @@
                while ( bestFrame < _videoFrames.size()-1 && 
_videoFrames[bestFrame+1]->timestamp < time ) ++bestFrame;
        }
 
-#if 0
-       boost::uint32_t diff = abs(_videoFrames[bestFrame]->timestamp - time);
-       while (true)
-       {
-               if (bestFrame+1 < numFrames && 
static_cast<boost::uint32_t>(abs(_videoFrames[bestFrame+1]->timestamp - time)) 
< diff) {
-                       diff = abs(_videoFrames[bestFrame+1]->timestamp - time);
-                       bestFrame = bestFrame + 1;
-               } else if (bestFrame > 0 && 
static_cast<boost::uint32_t>(abs(_videoFrames[bestFrame-1]->timestamp - time)) 
< diff) {
-                       diff = abs(_videoFrames[bestFrame-1]->timestamp - time);
-                       bestFrame = bestFrame - 1;
-               } else {
-                       break;
-               }
-       }
-#endif
-
-
        // Find closest backward keyframe  
        size_t rewindKeyframe = bestFrame;
        while ( rewindKeyframe && ! _videoFrames[rewindKeyframe]->isKeyFrame() )
@@ -482,8 +443,8 @@
                if (_audio) _nextAudioFrame = 0;
        }
 
-       if (_video)     time = seekVideo(time);
        if (_audio)     time = seekAudio(time);
+       if (_video)     time = seekVideo(time);
        return time;
 }
 




reply via email to

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