Added a simple mp3 mixer pipeline setup with an explanation of how EOS could be handl...
authorWim Taymans <wim.taymans@gmail.com>
Fri, 12 Jan 2001 22:44:41 +0000 (22:44 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Fri, 12 Jan 2001 22:44:41 +0000 (22:44 +0000)
Original commit message from CVS:
Added a simple mp3 mixer pipeline setup with an explanation of how EOS
could be handled with it.

docs/random/wtay/eos3

index ed4b5e9..40d92fd 100644 (file)
@@ -155,5 +155,72 @@ case 4)
   it fires EOS.
   
   
+case 5) 
+
+(-----------------------------------------------------------------------)
+! bin                                                                   !
+!                                                     (---------------) !
+!                                                     !audiosink      ! !
+! (--------)       (----------)         (--------)    !               ! !
+! !disksrc1!       ! effect   !         ! mixer  !    !               ! !
+! !       src -- sink        src ---- sink     src -- sink            ! !
+! (--------)       (----------)         !        !    !               ! !
+!                                       !        !    (---------------) !
+! (--------)       (----------)         !        !                      !
+! !disksrc2!       ! effect   !         !        !                      !
+! !       src -- sink        src ---- sink       !                      !
+! (--------)       (----------)         (--------)                      !
+(-----------------------------------------------------------------------)
+
+  This is a simple audio mixer (mp3audio mixer).
+  We assume disksrc1 is going to be in EOS while disksrc2 is still in !EOS
+
+
+.scheduling.
+
+  two chains are detected: disksrc1-effect-mixer-audiosink, 
+  disksrc2-effect-mixer-audiosink
+
+.eos.
+
+  disksrc1 has passed the last buffer in the _get function. with its next 
+  call to _get, it will return a NULL buffer and set the src pad to EOS.
+
+  the EOS call travels up till the mixer element because it has overridden
+  the handler. The first chain is disabled from the scheduler.
+
+  finally disksrc2 run into EOS, same procedure as with disksrc1, except
+  now the mixer also sets EOS to its src pad, chain2 becomes inactive too
+  and the bin fires EOS because there are no more chains to schedule.
   
+  somebody sets the location of disksrc1 to a new mp3 file, the srcpad 
+  is set to !EOS, chain1 is scheduled again, mixer is activated again too
+  and audio is playing again...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+