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: Thu, 03 May 2007 15:41:06 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/05/03 15:41:06

Modified files:
        .              : ChangeLog 
        server         : video_stream_instance.cpp 
                         video_stream_instance.h 
        server/parser  : video_stream_def.cpp video_stream_def.h 

Log message:
                * server/video_stream_instance.{cpp,h},
                  server/parser/video_stream_def.{cpp,h}:
                  Encode ownership of embedded videodecoder by using 
std::auto_ptr,
                  and document it.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3082&r2=1.3083
http://cvs.savannah.gnu.org/viewcvs/gnash/server/video_stream_instance.cpp?cvsroot=gnash&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/gnash/server/video_stream_instance.h?cvsroot=gnash&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/video_stream_def.cpp?cvsroot=gnash&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/video_stream_def.h?cvsroot=gnash&r1=1.4&r2=1.5

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3082
retrieving revision 1.3083
diff -u -b -r1.3082 -r1.3083
--- ChangeLog   3 May 2007 14:50:51 -0000       1.3082
+++ ChangeLog   3 May 2007 15:41:05 -0000       1.3083
@@ -1,5 +1,9 @@
 2007-05-03 Sandro Santilli <address@hidden>
 
+       * server/video_stream_instance.{cpp,h},
+         server/parser/video_stream_def.{cpp,h}:
+         Encode ownership of embedded videodecoder by using std::auto_ptr,
+         and document it.
        * server/asobj/NetConnection.cpp (getBytesTotal): return total bytes,
          not "loaded" bytes... - fixes YouTube buffering bar.
 

Index: server/video_stream_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/video_stream_instance.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- server/video_stream_instance.cpp    18 Apr 2007 11:00:29 -0000      1.20
+++ server/video_stream_instance.cpp    3 May 2007 15:41:06 -0000       1.21
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 // 
 
-// $Id: video_stream_instance.cpp,v 1.20 2007/04/18 11:00:29 jgilmore Exp $
+// $Id: video_stream_instance.cpp,v 1.21 2007/05/03 15:41:06 strk Exp $
 
 #include "sprite_instance.h"
 #include "video_stream_instance.h"
@@ -60,24 +60,21 @@
                return as_value();
        }
 
-       video_stream_instance::video_stream_instance(
-               video_stream_definition* def, character* parent, int id)
+video_stream_instance::video_stream_instance(video_stream_definition* def,
+               character* parent, int id)
        :
        character(parent, id),
        m_def(def),
        m_video_source(NULL),
-       _ns(NULL)
-//     m_source(NULL)
+       _ns(NULL),
+       m_decoder(m_def->get_decoder()) // should abort if m_def is null
 {
-       assert(m_def);
        // FIXME: use new layout
        init_member("attachVideo", new builtin_function(attach_video));
-       m_decoder = m_def->get_decoder();
 }
 
 video_stream_instance::~video_stream_instance()
 {
-       delete m_decoder;
 }
 
 void
@@ -102,7 +99,7 @@
                }
 
        // If this is a video from a VideoFrame tag, retrieve a video frame 
from there.
-       } else if (m_decoder) {
+       } else if (m_decoder.get()) {
                uint8_t* data = 0;
                int size = 0;
                int current_frame = 
get_parent()->to_movie()->get_current_frame();

Index: server/video_stream_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/video_stream_instance.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- server/video_stream_instance.h      12 Apr 2007 09:14:36 -0000      1.10
+++ server/video_stream_instance.h      3 May 2007 15:41:06 -0000       1.11
@@ -15,7 +15,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 // 
-// $Id: video_stream_instance.h,v 1.10 2007/04/12 09:14:36 strk Exp $
+// $Id: video_stream_instance.h,v 1.11 2007/05/03 15:41:06 strk Exp $
 
 #ifndef GNASH_VIDEO_STREAM_INSTANCE_H
 #define GNASH_VIDEO_STREAM_INSTANCE_H
@@ -67,7 +67,8 @@
        // Who owns this ? Should it be an intrusive ptr ?
        boost::intrusive_ptr<NetStream> _ns;
 
-       embedVideoDecoder* m_decoder;
+       /// Decoder for embedded video
+       std::auto_ptr<embedVideoDecoder> m_decoder;
 };
 
 }      // end namespace gnash

Index: server/parser/video_stream_def.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/video_stream_def.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- server/parser/video_stream_def.cpp  9 Feb 2007 16:40:42 -0000       1.5
+++ server/parser/video_stream_def.cpp  3 May 2007 15:41:06 -0000       1.6
@@ -15,7 +15,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 // 
-// $Id: video_stream_def.cpp,v 1.5 2007/02/09 16:40:42 tgc Exp $
+// $Id: video_stream_def.cpp,v 1.6 2007/05/03 15:41:06 strk Exp $
 
 #include "video_stream_def.h"
 #include "video_stream_instance.h"
@@ -88,19 +88,21 @@
        return ch;
 }
 
-embedVideoDecoder*
-video_stream_definition::get_decoder(){
+std::auto_ptr<embedVideoDecoder>
+video_stream_definition::get_decoder()
+{
+
+       std::auto_ptr<embedVideoDecoder> decoder;
 
-       if (m_num_frames == 0) return NULL;
+       if (m_num_frames == 0) return decoder;
 
-       embedVideoDecoder* decoder;
 
 #ifdef USE_FFMPEG
-       decoder = new embedVideoDecoderFfmpeg();
+       decoder.reset( new embedVideoDecoderFfmpeg() );
 #elif defined(SOUND_GST)
-       decoder = new embedVideoDecoderGst();
+       decoder.reset( new embedVideoDecoderGst() );
 #else
-       decoder = new embedVideoDecoder();
+       decoder.reset( new embedVideoDecoder() );
 #endif
 
        decoder->createDecoder(

Index: server/parser/video_stream_def.h
===================================================================
RCS file: /sources/gnash/gnash/server/parser/video_stream_def.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/parser/video_stream_def.h    9 Feb 2007 16:40:42 -0000       1.4
+++ server/parser/video_stream_def.h    3 May 2007 15:41:06 -0000       1.5
@@ -15,7 +15,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 // 
-// $Id: video_stream_def.h,v 1.4 2007/02/09 16:40:42 tgc Exp $
+// $Id: video_stream_def.h,v 1.5 2007/05/03 15:41:06 strk Exp $
 
 #ifndef GNASH_VIDEO_STREAM_DEF_H
 #define GNASH_VIDEO_STREAM_DEF_H
@@ -45,14 +45,30 @@
 
        character* create_character_instance(character* parent, int id);
        void    read(stream* in, SWF::tag_type tag, movie_definition* m);
+
+       // TODO: return a rect 0,0,m_width,m_height
        const rect&     get_bound() const       {
                return m_unused_rect;
        }
 
-       embedVideoDecoder* get_decoder();
+       /// Return a newly created embedded-video decoder
+       //
+       /// The type of decoder returned currently depends
+       /// on compile-time defines (FFMPG/GST/none)
+       ///
+       /// The returned decoder will be initialized with
+       /// data kept as member of this class
+       /// (width/height/codec_id/videoFrameFormat)
+       /// Note that videoFrameFormat is fetched from the
+       /// current renderer.
+       ///
+       /// This function *never* returns a NULL pointer.
+       ///
+       std::auto_ptr<embedVideoDecoder> get_decoder();
 
        void get_frame_data(int frameNum, uint8_t** data, int* size);
 
+       // TODO: make private
        uint16_t m_width;
        uint16_t m_height;
 




reply via email to

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