1. 25 Jun, 2015 1 commit
  2. 29 May, 2015 1 commit
  3. 25 May, 2015 1 commit
  4. 22 May, 2015 1 commit
  5. 13 May, 2015 4 commits
    • Thiago Santos's avatar
      dashdemux: avoid busy-looping when waiting for new fragment · f4789d04
      Thiago Santos authored
      When all fragments have already been downloaded on a live stream
      dashdemux would busy loop as the default implementation of
      has_next_fragment would return TRUE. Implement it to correctly
      signal if adaptivedemux should wait for the manifest update before
      trying to get new fragments.
      f4789d04
    • Thiago Santos's avatar
      dashdemux: Improve live stream manifest update repositioning · 23ad922b
      Thiago Santos authored
      When updating the manifest the timestamps on it might have changed a little
      due to rounding and timescale conversions. If the change makes the timestamp
      of the current segment to go up it makes dashdemux reposition to the previous
      one causing one extra unnecessary download.
      
      So when repositioning add an extra 10 microseconds to cover for that rounding
      issues and increase the chance of falling in the same segment.
      
      Additionally, also improve the time used when the client is already after the
      last segment. Instead of using the last segment starting timestamp use the
      final timestamp to make it reposition to the next one and not to the one that
      has already been downloaded.
      23ad922b
    • Thiago Santos's avatar
      dashdemux: reuse seeking function to reduce repeated code · d617139e
      Thiago Santos authored
      Instead of writing a seek routine, just use the mpdparser function.
      
      Also remove function that is not needed anymore
      d617139e
    • Thiago Santos's avatar
      dashdemux: refactor segment iteration for better performance · 57a2105a
      Thiago Santos authored
      Segments are now stored with their repeat counts instead of spanding
      them to multiple segments. This caused advancing to the next segment
      using a single index to have to iterate over the whole list every time.
      
      This commit addresses this by storing both the segment index as well
      as the repeat index and makes advancing to next segment just an
      increment of the repeat or the segment index.
      57a2105a
  6. 23 Apr, 2015 1 commit
  7. 13 Apr, 2015 1 commit
  8. 10 Mar, 2015 1 commit
  9. 18 Feb, 2015 1 commit
  10. 17 Feb, 2015 1 commit
  11. 12 Feb, 2015 1 commit
  12. 26 Jan, 2015 1 commit
  13. 19 Jan, 2015 2 commits
    • Thiago Santos's avatar
      adaptivedemux: refactor chunk downloading flow · 229a15b3
      Thiago Santos authored
      Add more power to the chunk_received function (renamed to data_received)
      and also to the fragment_finish function.
      
      The data_received function must parse/decrypt the data if necessary and
      also push it using the new push_buffer function that is exposed now. The
      default implementation gets data from the stream adapter (all available)
      and pushes it.
      
      The fragment_finish function must also advance the fragment. The default
      implementation only advances the fragment.
      
      This allows the subsegment handling in dashdemux to continuously download
      the same file from the server instead of stopping at every subsegment
      boundary and starting a new request
      229a15b3
    • Sebastian Dröge's avatar
      dashdemux: Fix compiler warning with clang · cd393096
      Sebastian Dröge authored
      gstdashdemux.c:1330:13: error: implicit conversion from enumeration type 'enum _GstAdaptiveDemuxFlowReturn' to different enumeration type
            'GstFlowReturn' [-Werror,-Wenum-conversion]
            ret = GST_ADAPTIVE_DEMUX_FLOW_SUBSEGMENT_END;
                ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      cd393096
  14. 16 Jan, 2015 3 commits
    • Thiago Santos's avatar
      dashdemux: remove unused segment attribute · fb760a56
      Thiago Santos authored
      It was never used, only initialized
      fb760a56
    • Thiago Santos's avatar
      dashdemux: implement ISOBMFF profile handling · 3055bb33
      Thiago Santos authored
      The ISOBMFF profile allows definind subsegments in a segment. At those
      subsegment boundaries the client can switch from one representation to
      another as they have aligned indexes.
      
      To handle those the 'sidx' index is parsed from the stream and the
      entries point to pts/offset of the samples in the stream. Knowing that
      the entries are aligned in the different representation allows the client
      to switch mid fragment. In this profile a single fragment is used per
      representation and the subsegments are contained in this fragment.
      
      To notify the superclass about the subsegment boundary the chunk_received
      function returns a special flow return that indicates that. In this case,
      the super class will check if a more suitable bitrate is available and will
      change to the same subsegment in this new representation.
      
      It also requires special handling of the position in the stream as the
      fragment advancing is now done by incrementing the index of the subsegment.
      It will only advance to the next fragment once all subsegments have been
      downloaded.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=741248
      3055bb33
    • Thiago Santos's avatar
      dashdemux: parse the sidx index from isobmff streams · f5b98f24
      Thiago Santos authored
      Allows dashdemux to identify the subsegments in the stream and
      switch bitrates when needed
      f5b98f24
  15. 10 Dec, 2014 1 commit
  16. 02 Dec, 2014 3 commits
  17. 01 Dec, 2014 3 commits
  18. 07 Nov, 2014 4 commits
  19. 02 Nov, 2014 1 commit
  20. 29 Sep, 2014 1 commit
  21. 24 Sep, 2014 2 commits
  22. 18 Sep, 2014 2 commits
  23. 15 Sep, 2014 1 commit
  24. 11 Sep, 2014 1 commit
  25. 04 Sep, 2014 1 commit