1. 18 Apr, 2019 16 commits
  2. 16 Apr, 2019 17 commits
  3. 13 Apr, 2019 7 commits
    • Cleanly detach DownloadThreads on release · 2e3eac25
      - Make a best effort to avoid posting MSG_DOWNLOAD_THREAD_STOPPED
        if the internal thread has already quit. Doing so is harmless,
        but causes an error in Logcat. We used to generate this warning
        quite a bit in ExoPlayerImplInternal as well, and we got quite
        a few issues filed about it, so best to avoid it if possible.
      - Null out the back reference DownloadThread holds to its manager
        on release. This avoids a potential issue where a download thread
        can prevent GC of its manager if it doesn't cancel quickly.
        There's similar logic (with a similar comment) in Loader.LoadTask.
      
      PiperOrigin-RevId: 243365143
      olly committed
    • Add HlsMetadataEntries to HlsMasterPlaylist's variants and renditions · 97acc681
      PiperOrigin-RevId: 243304549
      aquilescanta committed
    • Finalize DownloadManager interface · b2c29da6
      - Rename getAllDownloads to getCurrentDownloads to make it clear
        that it doesn't include completed and failed downloads
      - Change getDownloadCount to isWaitingForRequirements, which is
        what it's used for. Added TODO to make it returns the right thing
      
      PiperOrigin-RevId: 243257856
      olly committed
    • Add check for retryDelayMs==C.TIME_UNSET in DASH and SS manifest onLoadError. · c1e25f77
      If the returned retry delay is unset, we should use a DONT_RETRY_FATAL action
      instead and dispatch the event with the "canceled" flag.
      
      PiperOrigin-RevId: 243251554
      tonihei committed
    • Move download state transitions into DownloadManager · a588717b
      Non-trivial download state transitions are currently split across
      DownloadManager and Download. These transitions are part of the
      same state machine, so it's clearer if they're all in the same place
      (i.e. DownloadManager, since this is the component that transitions
      downloads between states).
      
      PiperOrigin-RevId: 243249915
      olly committed
    • Reduce use of DownloadInternal in DownloadManager · f623a9de
      The only state DownloadInternal holds is duplicate of state contained
      in Download, but can confusingly be temporarily out of sync. This is
      error prone because it's easy to use the wrong variable (e.g.
      download.state vs state). DownloadInternals methods are called into
      and call out into DownloadManager, which makes some code paths that
      are quite hard to follow.
      
      It's possible to simplify DownloadManager quite a lot by removing the
      duplicated state in DownloadInternal, at which point DownloadInternal's
      methods flatten into DownloadManager, which can just hold an internal
      list of Downloads directly.
      
      This is a first step, which makes it clear that DownloadThready only
      needs its immutable DownloadAction + an isRemove flag.
      
      PiperOrigin-RevId: 243245288
      olly committed
    • Add DecryptionResource to FormatHolder · bd841b18
      PiperOrigin-RevId: 243243975
      aquilescanta committed