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




reply via email to

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