gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/asobj/README.NetStream


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/README.NetStream
Date: Wed, 30 May 2007 17:04:29 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/05/30 17:04:29

Modified files:
        .              : ChangeLog 
Added files:
        server/asobj   : README.NetStream 

Log message:
        server/asobj/README.NetStream

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3414&r2=1.3415
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/README.NetStream?cvsroot=gnash&rev=1.1

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.3414
retrieving revision 1.3415
diff -u -b -r1.3414 -r1.3415
--- ChangeLog   30 May 2007 16:35:25 -0000      1.3414
+++ ChangeLog   30 May 2007 17:04:29 -0000      1.3415
@@ -1,5 +1,9 @@
 2007-05-30 Sandro Santilli <address@hidden>
 
+       * server/asobj/README.NetStream: add design notes for NetStream.
+
+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

Index: server/asobj/README.NetStream
===================================================================
RCS file: server/asobj/README.NetStream
diff -N server/asobj/README.NetStream
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ server/asobj/README.NetStream       30 May 2007 17:04:29 -0000      1.1
@@ -0,0 +1,80 @@
+Design info for NetStream based media playing
+
+===============================================================================
+ Data flow diagram for Gnash implementation of NetStream playback using FFMPEG
+===============================================================================
+
+Notation: process, [dataStore], <externalEvent>
+
+       [input] --> (2) parser --> [parsedBuffer]
+                                        |
+           +----------------------------+
+           |
+           V
+      (2) decoder <-+-> [videoQueue] ---> (1) videoFrameUpdater --> 
[renderableFrame] 
+           ^        |                              ^                     |
+           |        |                              |                     |
+           +------- | -----------------------------+                     |
+                    |                              |                     V
+                    |          (1) <seek>  ---> [PlayHead]        (1) renderer 
--> [videoOut]
+                    |                              ^       
+                    |                              |       
+                    +-> [audioQueue] ---> (3) soundPlayer -> [audioOut]
+
+ Processes
+===========
+
+
+                parser : FLVParser           
+               decoder : av_streamer        
+     videoFrameUpdater : refreshVideoFrame  
+              renderer : render_handler    
+           soundPlayer : sound_streamer   
+                  seek : NetStream::seek
+
+
+
+ Datastores and protection
+===========================
+
+           [input] : Accessible trough LoadThread, providing thread-safe 
interfaces
+    [parsedBuffer] : Accessible trough FLVParser, providing thread-safe 
interfaces
+      [videoQueue] : Accessible trough multithread_queue, providing 
thread-safe interfaces
+      [audioQueue] : Accessible trough multithread_queue, providing 
thread-safe interfaces
+ [renderableFrame] : Direct access, disciplined by image_mutex
+        [audioOut] : Audio output channel
+        [videoOut] : Video output channel
+        [PlayHead] : m_current_timestamp, m_go and m_pause. protection UNCLEAR 
!! refactoring planned 
+
+
+ Threads
+=========
+
+  thread1 (main)              : videoFrameUpdater, renderer, seek
+  thread2 (load/parse/decode) : parser, decoder
+  thread3 (playsound)         : soundPlayer
+
+  NOTE: thread2 actually includes a loading thread hidden in this diagram for 
simplicity.
+        it is likely that we can safely drop that additional thread as a whole.
+
+
+===============================================================================
+ Data flow diagram for Gnash implementation of NetStream playback using GST
+===============================================================================
+
+
+                         +-->  (2) [ParsedVideoBuffer]---+
+                         |                               |
+(2) [input] --> parser --+                               +---> (2) GST 
pipeline --> [renderableFrame] --> (1) renderer -> [videoOut]
+                         |                               |               |     
                                 
+                         +-->  (2) [ParsedAudioBuffer]---+               |
+                                                                         +---> 
(2) soundPlayer --> [audioOut]
+
+
+ Processes
+===========
+
+
+ thread 2 : FLVParser, decoder, audio output
+ thread 1 : fetch videoframe
+




reply via email to

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