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, 24 May 2008 22:03:33 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/05/24 22:03:32

Modified files:
        .              : ChangeLog 
        libbase        : FLVParser.cpp FLVParser.h 
        server/asobj   : NetStreamFfmpeg.cpp NetStreamFfmpeg.h 

Log message:
        * libbase/FLVParser.{cpp,h}: re-add nextMediaFrame as it's still
          used by current NetStreamFfmpeg.
        * server/asobj/NetStreamFfmpeg.{cpp,h}: re-add m_start_onbuffer, still
          used by current NetStreamFfmpeg.
          Fixes bug #23346.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6700&r2=1.6701
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/FLVParser.cpp?cvsroot=gnash&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/FLVParser.h?cvsroot=gnash&r1=1.30&r2=1.31
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.cpp?cvsroot=gnash&r1=1.133&r2=1.134
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.h?cvsroot=gnash&r1=1.68&r2=1.69

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6700
retrieving revision 1.6701
diff -u -b -r1.6700 -r1.6701
--- ChangeLog   24 May 2008 21:42:35 -0000      1.6700
+++ ChangeLog   24 May 2008 22:03:32 -0000      1.6701
@@ -1,3 +1,11 @@
+2008-05-24 Sandro Santilli <address@hidden>
+
+       * libbase/FLVParser.{cpp,h}: re-add nextMediaFrame as it's still
+         used by current NetStreamFfmpeg.
+       * server/asobj/NetStreamFfmpeg.{cpp,h}: re-add m_start_onbuffer, still
+         used by current NetStreamFfmpeg.
+         Fixes bug #23346.
+
 2008-05-24 Bastiaan Jacques <address@hidden>
 
        * server/matrix.cpp: Use std::max instead of fmax to fix build on BSD

Index: libbase/FLVParser.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/FLVParser.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- libbase/FLVParser.cpp       23 May 2008 16:48:11 -0000      1.39
+++ libbase/FLVParser.cpp       24 May 2008 22:03:32 -0000      1.40
@@ -696,6 +696,69 @@
        return _lt.get_size();
 }
 
+FLVFrame* FLVParser::nextMediaFrame()
+{
+       boost::uint32_t video_size = _videoFrames.size();
+       boost::uint32_t audio_size = _audioFrames.size();
+
+       if (audio_size <= _nextAudioFrame && video_size <= _nextVideoFrame)
+       {
+
+               // Parse a media frame if any left or if needed
+               while(_videoFrames.size() <= _nextVideoFrame && 
_audioFrames.size() <= _nextAudioFrame && !_parsingComplete) {
+                       if (!parseNextTag()) break;
+               }
+       }
+
+       // Find the next frame in the file
+       bool audioReady = _audioFrames.size() > _nextAudioFrame;
+       bool videoReady = _videoFrames.size() > _nextVideoFrame;
+       bool useAudio = false;
+
+       if (audioReady && videoReady) {
+               useAudio = _audioFrames[_nextAudioFrame]->dataPosition < 
_videoFrames[_nextVideoFrame]->dataPosition;
+       } else if (!audioReady && videoReady) {
+               useAudio = false;
+       } else if (audioReady && !videoReady) {
+               useAudio = true;
+       } else {
+               // If no frames are next we have reached EOF
+               return NULL;
+       }
+
+       // Find the next frame in the file a return it
+
+       if (useAudio) {
+
+               FLVAudioFrameInfo* frameInfo = _audioFrames[_nextAudioFrame];
+
+               std::auto_ptr<FLVFrame> frame = makeAudioFrame(_lt, *frameInfo);
+               if ( ! frame.get() )
+               {
+                       log_error("Could not make audio frame %d", 
_nextAudioFrame);
+                       return 0;
+               }
+
+               _nextAudioFrame++;
+               return frame.release(); // TODO: return by auto_ptr
+
+       } else {
+
+               FLVVideoFrameInfo* frameInfo = _videoFrames[_nextVideoFrame];
+               std::auto_ptr<FLVFrame> frame = makeVideoFrame(_lt, *frameInfo);
+               if ( ! frame.get() )
+               {
+                       log_error("Could not make video frame %d", 
_nextVideoFrame);
+                       return 0;
+               }
+
+               _nextVideoFrame++;
+               return frame.release(); // TODO: return by auto_ptr
+       }
+
+
+}
+
 } // end of gnash namespace
 
 #undef PADDING_BYTES

Index: libbase/FLVParser.h
===================================================================
RCS file: /sources/gnash/gnash/libbase/FLVParser.h,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- libbase/FLVParser.h 23 May 2008 16:48:11 -0000      1.30
+++ libbase/FLVParser.h 24 May 2008 22:03:32 -0000      1.31
@@ -210,6 +210,12 @@
        /// Kills the parser...
        ~FLVParser();
 
+       /// Return next media frame
+       //
+       /// Locks the _mutex
+       ///
+       FLVFrame* nextMediaFrame();
+
        /// \brief
        /// Return the next audio frame info in the parsed buffer.
        //

Index: server/asobj/NetStreamFfmpeg.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.cpp,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -b -r1.133 -r1.134
--- server/asobj/NetStreamFfmpeg.cpp    22 May 2008 11:30:17 -0000      1.133
+++ server/asobj/NetStreamFfmpeg.cpp    24 May 2008 22:03:32 -0000      1.134
@@ -85,6 +85,7 @@
        m_current_timestamp(0),
        m_unqueued_data(NULL),
        m_time_of_pause(0),
+       m_start_onbuffer(false),
 
        _decoderBuffer(0),
        _soundHandler(get_sound_handler())

Index: server/asobj/NetStreamFfmpeg.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.h,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -b -r1.68 -r1.69
--- server/asobj/NetStreamFfmpeg.h      23 May 2008 05:58:09 -0000      1.68
+++ server/asobj/NetStreamFfmpeg.h      24 May 2008 22:03:32 -0000      1.69
@@ -314,6 +314,8 @@
        // Time of when pause started, in seconds since VM started
        volatile boost::uint64_t m_time_of_pause;
 
+       bool m_start_onbuffer;
+
        // Decoder buffer
        boost::uint8_t* _decoderBuffer;
 




reply via email to

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