[Top][All Lists]
[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;
}