OUTDATED
--------


case 1) 

(--------------------------------------------------)
! bin                                              !
! (--------)         (--------)         (--------) !
! ! fakesrc!         !identity!         !fakesink! !
! !   1   src ----- sink  1  src ---- sink   1   ! !
! (--------)         (--------)         (--------) !
!                                                  !
! (--------)         (--------)         (--------) !
! !fakesrc !         !identity!         !fakesink! !
! !   2   src ----- sink  2  src ---- sink   2   ! !
! (--------)         (--------)         (--------) !
(--------------------------------------------------)

  just two scheduled chains in a single bin.

.scheduling.
  
  we have two chains here fs1-i1-fsk1 and fs2-i2-fsk2
  fakesrc1 will output 1 buffer, fakesrc2 3 buffers

.eos.

  fs1 will call gst_pad_set_eos (src, TRUE) on its srcpad
  in the _get function and returns a NULL buffer.

  gst_pad_set_eos will recurse down the pipeline and set
  all the pads in i1 and fsk1 to EOS too. none of these elements
  override the default behaviour so gst_pad_set_eos returns TRUE.

  fakesrc signals EOS.  since an element in chain1 has signales
  EOS, chain1 becomes EOS. All the elements in the chain are set
  to the READY state and the chain is not scheduled anymore because
  its EOS flag is on.

  the same procedure happens for chain2. At that point, the bin 
  has no chains to schedule and so it fires EOS.


case 2) 

(---------------------------------------------------)
! bin                                               !
! (--------)         (--------)         (---------) !
! ! disksrc!         ! mpg123 !         !audiosink! !
! !   1   src ----- sink  1  src ---- sink   1    ! !
! (--------)         (--------)         (---------) !
!                                                   !
! (--------)         (--------)         (---------) !
! !disksrc !         ! mpg123 !         !audiosink! !
! !   2   src ----- sink  2  src ---- sink   2    ! !
! (--------)         (--------)         (---------) !
(---------------------------------------------------)

  same as case 1, an mp3 mixer where the mixing is performed
  in hardware (in the audiosink).
  we want to show how the EOS state can be undone.

.scheduling.
  
  we have two chains here ds1-mpg1-ask1 and ds2-mpg2-ask2
  the song in chain1 is about to end, chain2 has just begun
  playing a song.

.eos.

  disksrc1 will set the src pad to EOS with gst_pad_set_eos (pad, TRUE)
  the call recurses up and down, disksrc1 signals EOS. the chain with
  disksrc1 becomes EOS and is excluded from the scheduling algorithm.
  disksrc1 is set to the READY state.

  the user then changes the location of disksrc1 to the new mp3 song.
  The user then sets the element state of disksrc to PLAYING. disksrc
  performs gst_pad_set_eos (pad, FALSE)

  the call recurses up and down and returns TRUE. chain1 is set to !EOS
  so that it will be scheduled again.

  disksrc1 is set to PLAYING and the new mp3 is playing again.

 

