1. 12 Jun, 2017 4 commits
  2. 29 May, 2017 2 commits
  3. 25 Apr, 2017 1 commit
    • Matthew Waters's avatar
      adaptivedemux: separate manifest update task from download tasks · 08861601
      Matthew Waters authored
      Rationale is to allow the manifest update task to continue running while
      seeks are occurring.  Otherwise, if the user reliably performs a seek
      before the manifest is updated, then as the manifest task is reset on
      seeks (and thus the time to wait between manifest updates), the manifest
      would never be updated.
      
      This fix makes the manifest update task free-running and continously
      update even during seeks.
      08861601
  4. 15 Apr, 2017 1 commit
  5. 14 Apr, 2017 1 commit
  6. 09 Apr, 2017 1 commit
  7. 07 Apr, 2017 1 commit
  8. 03 Apr, 2017 1 commit
  9. 22 Mar, 2017 1 commit
    • Jan Schmidt's avatar
      adaptivedemux: Don't send EOS on pads when there's a pending switch · a3b61c8a
      Jan Schmidt authored
      When there are new pads pending for a bitrate switch, don't allow
      EOS through from the old streams. It will be sent when the new pads are
      ready, just before the old streams are removed.
      
      This fixes racy bitrate switching with hlsdemux in urisourcebin
      where old pads EOS before new pads appear and the entire pipeline can
      EOS if those propagate fast enough
      a3b61c8a
  10. 14 Mar, 2017 1 commit
  11. 02 Mar, 2017 2 commits
  12. 08 Feb, 2017 2 commits
  13. 07 Feb, 2017 2 commits
  14. 31 Jan, 2017 1 commit
  15. 10 Jan, 2017 2 commits
  16. 12 Dec, 2016 1 commit
  17. 29 Nov, 2016 1 commit
    • Philippe Normand's avatar
      mssdemux: improved live playback support · 73721ad4
      Philippe Normand authored
      When a MSS server hosts a live stream the fragments listed in the
      manifest usually don't have accurate timestamps and duration, except
      for the first fragment, which additionally stores timing information
      for the few upcoming fragments. In this scenario it is useless to
      periodically fetch and update the manifest and the fragments list can
      be incrementally built by parsing the first/current fragment.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=755036
      73721ad4
  18. 15 Nov, 2016 1 commit
  19. 10 Nov, 2016 3 commits
  20. 27 Oct, 2016 1 commit
    • Nirbheek Chauhan's avatar
      Explicitly define float constants as float · f7908637
      Nirbheek Chauhan authored
      With MSVC, this gives the following warning:
      
      warning C4305: 'function': truncation from 'double' to 'gfloat'
      
      Apparently, MSVC does not figure out what type to use for constants
      based on the assignment. This warning is very spammy, so let's try to
      fix it.
      f7908637
  21. 11 Oct, 2016 1 commit
  22. 08 Oct, 2016 1 commit
    • Edward Hervey's avatar
      adaptivedemux: Calculate values before queue2 · 4aadf500
      Edward Hervey authored
      In order to calculate the *actual* bitrate for downloading a fragment
      we need to take into account the time since we requested the fragment.
      
      Without this, the bitrate calculations (previously reported by queue2)
      would be biased since they wouldn't take into account the request latency
      (that is the time between the moment we request a specific URI and the
      moment we receive the first byte of that request).
      
      Such examples were it would be biased would be high-bandwith but high-latency
      networks. If you download 5MB in 500ms, but it takes 200ms to get the first
      byte, queue2 would report 80Mbit/s (5Mb in 500ms) , but taking the request
      into account it is only 57Mbit/s (5Mb in 700ms).
      
      While this would not cause too much issues if the above fragment represented
      a much longer duration (5s of content), it would cause issues with short
      ones (say 1s, or when doing keyframe-only requests which are even shorter)
      where the code would expect to be able to download up to 80Mbit/s ... whereas
      if we take the request time into account it's much lower (and we would
      therefore end up doing late requests).
      
      Also calculate the request latency for debugging purposes and further
      usage (it could allow us to figure out the maximum request rate for
      example).
      
      https://bugzilla.gnome.org/show_bug.cgi?id=733959
      
      https://bugzilla.gnome.org/show_bug.cgi?id=772330
      4aadf500
  23. 12 Sep, 2016 1 commit
  24. 10 Sep, 2016 2 commits
  25. 26 Aug, 2016 1 commit
  26. 25 Aug, 2016 1 commit
    • Sebastian Dröge's avatar
      adaptivedemux: Enable bitrate selection for trick mode streaming again · 4f6ae1f4
      Sebastian Dröge authored
      And scale the bitrate with the absolute rate (if it's bigger than 1.0) to get
      to the real bitrate due to faster playback.
      
      This allowed in my tests to play a stream with 10x speed without buffering as
      the lowest bitrate is chosen, instead of staying/selecting the highest bitrate
      and then buffering all the time.
      
      It was previously disabled for not very well specified reasons, which seem to
      be not valid anymore nowadays.
      4f6ae1f4
  27. 22 Aug, 2016 2 commits
    • Jan Schmidt's avatar
      adaptivedemux: Fix broken updates loop on live streams · 389e35d0
      Jan Schmidt authored
      Prevent the manifest update loop from looping endlessly
      after a seek event, by clearing the variable that tells
      the task function not to immediately exit.
      389e35d0
    • Michael Olbrich's avatar
      adaptivedemux: fix stream exposure condition · 0a63569f
      Michael Olbrich authored
      The new streams should not be exposed until all streams are done with the
      current fragment. The old code is incorrect and actually only checked the
      current stream. Fix this by properly checking all streams.
      
      Also, ignore the current stream. The code is only reached when the current
      stream finished downloading and since
      07f49f15 ("adaptivedemux: On EOS, handle it
      before waking download loop") download_finished is set after
      gst_adaptive_demux_stream_advance_fragment_unlocked() is called.
      
      Without this HLS playback with multiple streams is broken, because the new
      streams are never exposed.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=770075
      0a63569f
  28. 11 Aug, 2016 1 commit