[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp libbase/F...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp libbase/F... |
Date: |
Sat, 05 May 2007 15:52:51 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/05/05 15:52:51
Modified files:
. : ChangeLog
libbase : FLVParser.cpp FLVParser.h
Log message:
* libbase/FLVParser.h (FLVVideoFrame): add isKeyFrame() method;
use typedefs for video and audio frame containers.
* libbase/FLVParser.cpp: use isKeyFrame(), easier to read.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3106&r2=1.3107
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/FLVParser.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/FLVParser.h?cvsroot=gnash&r1=1.3&r2=1.4
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3106
retrieving revision 1.3107
diff -u -b -r1.3106 -r1.3107
--- ChangeLog 5 May 2007 15:44:22 -0000 1.3106
+++ ChangeLog 5 May 2007 15:52:50 -0000 1.3107
@@ -1,5 +1,11 @@
2007-05-04 Sandro Santilli <address@hidden>
+ * libbase/FLVParser.h (FLVVideoFrame): add isKeyFrame() method;
+ use typedefs for video and audio frame containers.
+ * libbase/FLVParser.cpp: use isKeyFrame(), easier to read.
+
+2007-05-04 Sandro Santilli <address@hidden>
+
* libbase/FLVParser.cpp (seekAudio, seekVideo): fixed seeking and
hopefully made a bit more readable. The computed values are
now printed for further debugging. They seem correct to me, but
Index: libbase/FLVParser.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/FLVParser.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- libbase/FLVParser.cpp 5 May 2007 15:44:22 -0000 1.6
+++ libbase/FLVParser.cpp 5 May 2007 15:52:50 -0000 1.7
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-// $Id: FLVParser.cpp,v 1.6 2007/05/05 15:44:22 strk Exp $
+// $Id: FLVParser.cpp,v 1.7 2007/05/05 15:52:50 strk Exp $
#include "FLVParser.h"
#include "amf.h"
@@ -277,14 +277,16 @@
// the last key videoframe is returned
FLVVideoFrame* lastFrame = _videoFrames.back();
uint32_t numFrames = _videoFrames.size();
- if (lastFrame->timestamp < time) {
- uint32_t lastFrameNum = numFrames -1;
- while (lastFrame->frameType != KEY_FRAME) {
+ if (lastFrame->timestamp < time)
+ {
+ size_t lastFrameNum = numFrames -1;
+ while (! lastFrame->isKeyFrame() )
+ {
lastFrameNum--;
lastFrame = _videoFrames[lastFrameNum];
}
- _lastVideoFrame = lastFrameNum-1;
+ _lastVideoFrame = lastFrameNum-1; // Why -1 ?
return lastFrame->timestamp;
}
@@ -326,20 +328,22 @@
// Find closest backward keyframe
size_t rewindKeyframe = bestFrame;
- while (rewindKeyframe && _videoFrames[rewindKeyframe]->frameType !=
KEY_FRAME) {
+ while ( rewindKeyframe && ! _videoFrames[rewindKeyframe]->isKeyFrame() )
+ {
rewindKeyframe--;
}
// Find closest forward keyframe
- uint32_t forwardKeyframe = bestFrame;
- uint32_t size = _videoFrames.size();
- while (size > forwardKeyframe+1 &&
_videoFrames[forwardKeyframe]->frameType != KEY_FRAME) {
+ size_t forwardKeyframe = bestFrame;
+ size_t size = _videoFrames.size();
+ while (size > forwardKeyframe+1 && !
_videoFrames[forwardKeyframe]->isKeyFrame() )
+ {
forwardKeyframe++;
}
// We can't ensure we were able to find a key frame *after* the best
position
// in that case we just use any previous keyframe instead..
- if ( _videoFrames[forwardKeyframe]->frameType != KEY_FRAME )
+ if ( ! _videoFrames[forwardKeyframe]->isKeyFrame() )
{
bestFrame = rewindKeyframe;
}
@@ -355,7 +359,7 @@
gnash::log_debug("Seek (video): " SIZET_FMT "/" SIZET_FMT " (%u/%u)",
bestFrame, numFrames, _videoFrames[bestFrame]->timestamp, time);
_lastVideoFrame = bestFrame;
- assert(_videoFrames[_lastVideoFrame]->frameType == KEY_FRAME);
+ assert( _videoFrames[_lastVideoFrame]->isKeyFrame() );
return _videoFrames[_lastVideoFrame]->timestamp;
}
Index: libbase/FLVParser.h
===================================================================
RCS file: /sources/gnash/gnash/libbase/FLVParser.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- libbase/FLVParser.h 18 Apr 2007 14:07:33 -0000 1.3
+++ libbase/FLVParser.h 5 May 2007 15:52:50 -0000 1.4
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-// $Id: FLVParser.h,v 1.3 2007/04/18 14:07:33 jgilmore Exp $
+// $Id: FLVParser.h,v 1.4 2007/05/05 15:52:50 strk Exp $
// Information about the FLV format can be found at http://osflash.org/flv
@@ -129,6 +129,12 @@
uint64_t dataPosition;
uint32_t timestamp;
+ /// Return true if this video frame is a key frame
+ bool isKeyFrame() const
+ {
+ return frameType == KEY_FRAME;
+ }
+
};
class FLVAudioFrame
@@ -217,11 +223,15 @@
/// The interface to the file
LoadThread* _lt;
+ typedef std::vector<FLVVideoFrame*> VideoFrames;
+
/// list of videoframes, does no contain the frame data.
- std::vector<FLVVideoFrame*> _videoFrames;
+ VideoFrames _videoFrames;
+
+ typedef std::vector<FLVAudioFrame*> AudioFrames;
/// list of audioframes, does no contain the frame data.
- std::vector<FLVAudioFrame*> _audioFrames;
+ AudioFrames _audioFrames;
/// The position where the parsing should continue from.
uint64_t _lastParsedPosition;
- [Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp libbase/F...,
Sandro Santilli <=
[Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp libbase/F..., Sandro Santilli, 2007/05/30
[Gnash-commit] gnash ChangeLog libbase/FLVParser.cpp libbase/F..., Sandro Santilli, 2007/05/30