gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/video_stream_instance.cp...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/video_stream_instance.cp...
Date: Wed, 30 May 2007 15:12:29 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/05/30 15:12:28

Modified files:
        .              : ChangeLog 
        server         : video_stream_instance.cpp 
        server/asobj   : NetStream.cpp NetStream.h NetStreamFfmpeg.h 

Log message:
                * server/video_stream_instance.cpp (display): update call to
                  get_video.
                * server/asobj/NetStream.{cpp,h}: change get_video to return by
                  auto_ptr to encode ownership transfer.
                * server/asobj/NetStreamFfmpeg.h: update refreshVieoFrame() dox.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3412&r2=1.3413
http://cvs.savannah.gnu.org/viewcvs/gnash/server/video_stream_instance.cpp?cvsroot=gnash&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStream.cpp?cvsroot=gnash&r1=1.58&r2=1.59
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStream.h?cvsroot=gnash&r1=1.42&r2=1.43
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamFfmpeg.h?cvsroot=gnash&r1=1.42&r2=1.43

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3412
retrieving revision 1.3413
diff -u -b -r1.3412 -r1.3413
--- ChangeLog   30 May 2007 13:39:25 -0000      1.3412
+++ ChangeLog   30 May 2007 15:12:28 -0000      1.3413
@@ -1,5 +1,13 @@
 2007-05-30 Sandro Santilli <address@hidden>
 
+       * server/video_stream_instance.cpp (display): update call to
+         get_video.
+       * server/asobj/NetStream.{cpp,h}: change get_video to return by
+         auto_ptr to encode ownership transfer.
+       * server/asobj/NetStreamFfmpeg.h: update refreshVieoFrame() dox.
+
+2007-05-30 Sandro Santilli <address@hidden>
+
        * server/asobj/NetStream.cpp: fix NetStream.bufferTime getter to
          return value in seconds, not milliseconds.
 

Index: server/video_stream_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/video_stream_instance.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- server/video_stream_instance.cpp    28 May 2007 16:05:57 -0000      1.25
+++ server/video_stream_instance.cpp    30 May 2007 15:12:28 -0000      1.26
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 // 
 
-// $Id: video_stream_instance.cpp,v 1.25 2007/05/28 16:05:57 strk Exp $
+// $Id: video_stream_instance.cpp,v 1.26 2007/05/30 15:12:28 strk Exp $
 
 #include "sprite_instance.h"
 #include "video_stream_instance.h"
@@ -88,11 +88,10 @@
        {
                boost::intrusive_ptr<NetStream> nso = _ns;
 
-               image::image_base* i = nso->get_video();
-               if (i)
+               std::auto_ptr<image::image_base> i ( nso->get_video() );
+               if (i.get())
                {
-                       gnash::render::drawVideoFrame(i, &m, &bounds);
-                       delete i;
+                       gnash::render::drawVideoFrame(i.get(), &m, &bounds);
                }
 
        // If this is a video from a VideoFrame tag, retrieve a video frame 
from there.

Index: server/asobj/NetStream.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStream.cpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -b -r1.58 -r1.59
--- server/asobj/NetStream.cpp  30 May 2007 13:39:25 -0000      1.58
+++ server/asobj/NetStream.cpp  30 May 2007 15:12:28 -0000      1.59
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: NetStream.cpp,v 1.58 2007/05/30 13:39:25 strk Exp $ */
+/* $Id: NetStream.cpp,v 1.59 2007/05/30 15:12:28 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -535,19 +535,21 @@
        }
 }
 
-image::image_base* NetStream::get_video()
+std::auto_ptr<image::image_base>
+NetStream::get_video()
 {
        boost::mutex::scoped_lock lock(image_mutex);
 
-       if (!m_imageframe) return NULL;
+       // TODO: inspect if we could return m_imageframe directly...
+
+       std::auto_ptr<image::image_base> ret_image;
+
+       if (!m_imageframe) return ret_image;
 
-       image::image_base* ret_image;
        if (m_videoFrameFormat == render::YUV) {
-               ret_image = new image::yuv(m_imageframe->m_width, 
m_imageframe->m_height);
+               ret_image.reset(new image::yuv(m_imageframe->m_width, 
m_imageframe->m_height));
        } else if (m_videoFrameFormat == render::RGB) {
-               ret_image = new image::rgb(m_imageframe->m_width, 
m_imageframe->m_height);
-       } else {
-               return NULL;
+               ret_image.reset(new image::rgb(m_imageframe->m_width, 
m_imageframe->m_height));
        }
 
        ret_image->update(m_imageframe->m_data);

Index: server/asobj/NetStream.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStream.h,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- server/asobj/NetStream.h    30 May 2007 09:19:01 -0000      1.42
+++ server/asobj/NetStream.h    30 May 2007 15:12:28 -0000      1.43
@@ -19,7 +19,7 @@
 //
 //
 
-/*  $Id: NetStream.h,v 1.42 2007/05/30 09:19:01 strk Exp $ */
+/*  $Id: NetStream.h,v 1.43 2007/05/30 15:12:28 strk Exp $ */
 
 #ifndef __NETSTREAM_H__
 #define __NETSTREAM_H__
@@ -260,8 +260,9 @@
 
        /// Returns the video frame closest to current cursor. See time().
        //
-       /// @return a image containing the video frame, NULL if none were ready
-       image::image_base* get_video();
+       /// @return a image containing the video frame, a NULL auto_ptr if none 
were ready
+       ///
+       std::auto_ptr<image::image_base> get_video();
 
 private:
 

Index: server/asobj/NetStreamFfmpeg.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamFfmpeg.h,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -b -r1.42 -r1.43
--- server/asobj/NetStreamFfmpeg.h      30 May 2007 14:55:23 -0000      1.42
+++ server/asobj/NetStreamFfmpeg.h      30 May 2007 15:12:28 -0000      1.43
@@ -15,7 +15,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: NetStreamFfmpeg.h,v 1.42 2007/05/30 14:55:23 tgc Exp $ */
+/* $Id: NetStreamFfmpeg.h,v 1.43 2007/05/30 15:12:28 strk Exp $ */
 
 #ifndef __NETSTREAMFFMPEG_H__
 #define __NETSTREAMFFMPEG_H__
@@ -310,10 +310,14 @@
        //
        void unpauseDecoding();
 
-       // Check is we need to update the video frame
-       //
-       // does NOT lock decoding_mutex, uses by ::advance() which locks
+       /// Update the image/videoframe to be returned by next get_video() call.
        //
+       /// Does NOT lock decoding_mutex, uses by ::advance() which locks.
+       /// Note that get_video will be called by 
video_stream_instance::display, which
+       /// is usually called right after video_stream_instance::advance, so  
the result
+       /// is that  refreshVideoFrame() is called right before get_video(). 
This is important
+       /// to ensure timing is correct..
+       ///
        void refreshVideoFrame();
 
        // Used to decode and push the next available (non-FLV) frame to the 
audio or video queue




reply via email to

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