Skip to content
Snippets Groups Projects
  1. Nov 06, 2014
  2. Oct 24, 2014
  3. Oct 14, 2014
  4. Sep 24, 2014
  5. Sep 23, 2014
  6. Sep 22, 2014
  7. Sep 19, 2014
  8. Sep 17, 2014
  9. Sep 16, 2014
  10. Sep 12, 2014
  11. Sep 11, 2014
  12. Sep 04, 2014
  13. Aug 28, 2014
    • Thibault Saunier's avatar
      multiqueue: Not post BUFFERING message if one of the singlequeue doesn't need it · 03d93e7c
      Thibault Saunier authored and Sebastian Dröge's avatar Sebastian Dröge committed
      Imagine the following 'pipeline'
      
                      --------------
                  p1/| 'fullqueue'  |--- 'laggy' downstream
        ---------  / |              |
      -| demuxer |   | multiqueue   |
        ---------  \ |              |
                  p2\| 'emptyqueue' |--- 'fast' downstream
                      --------------
      
      In the case downstream of one single queue (fullqueue) has (a lot of) latency
      (for example for reverse playback with video), we can end up having the other
      SingleQueue (emptyqueue) emptied, before that fullqueue gets
      unblocked. In the meantime, the demuxer tries to push on fullqueue, and
      is blocking there.
      
      In that case the current code will post a BUFFERING message on the bus when
      emptyqueue gets emptied, that leads to the application setting the pipeline state to
      PAUSED. So now we end up in a situation where 'laggy downstream' is
      prerolled and will not unblock anymore because the pipeline is set to
      PAUSED, the fullequeue does not have a chance to be emptied and
      the emptyqueue can not get filled anymore so no more BUFERRING message
      will be posted and the pipeline is stucked in PAUSED for the eternity.
      
      Making sure that we do not try to "buffer" if one of the single queue
      does not need buffering, prevents this situtation from happening though it lets the
      oportunity for buffering in all other cases.
      
      That implements a new logic where we need all singlequeue to need
      buffering for the multiqueue to actually state buffering is needed,
      taking the maximum buffering of the single queue as the reference point.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=734412
      03d93e7c
    • Arnaud Vrac's avatar
      buffer: do not touch memory tag flag when copying buffer flags · efa5a41d
      Arnaud Vrac authored and Sebastian Dröge's avatar Sebastian Dröge committed
      The tag memory flag will be set later if the memory is also copied. This
      patch avoids buffers being freed needlessly in bufferpools.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=735574
      efa5a41d
  14. Aug 27, 2014
Loading