1. 13 Jan, 2021 5 commits
    • Fix audio session ID generation · a95b2ebb
      - SimpleExoPlayer now always generates a session ID at
        construction time. This ID is used indefinitely, including
        for tunneling, unless a call to setAudioSessionId is made
        to change it.
      - DefaultTrackSelector support for enabling tunneling has
        been changed to a boolean, since tunneling now uses the
        same session ID as non-tunneled mode.
      - Since the session ID is now always set at the top level,
        internal propagation of generated session IDs is no longer
        necessary, and so is removed.
      
      PiperOrigin-RevId: 351349687
      olly committed
    • Remove AdaptiveMediaSourceEventListener · 85641a38
      AdaptiveMediaSourceEventListener was deprecated in r2.6.1.
      
      PiperOrigin-RevId: 351344147
      christosts committed
    • Remove ExoPlaybackException.TYPE_TIMEOUT. · a0460c3b
      The ExoPlaybackException types are locations from where the exception
      is coming from and not the type of exception itself, which should be
      denoted by different exception classes.
      
      To avoid a mixture of error types and class checks, the timeout
      exceptions should use their own class and be of type RENDERER as this
      is where the timeout actually happens.
      
      PiperOrigin-RevId: 351337699
      tonihei committed
    • Forward live playback speed changes to track selections and renderers. · d640ceda
      This allows the respective components to adapt to the speed changes
      if desired.
      
      To avoid frequent updates to the media codec operating rate, we also
      forward the target speed to the renderers so that this value can be set
      based on the target speed and not the current speed.
      
      PiperOrigin-RevId: 351336401
      tonihei committed
    • Remove ExoPlaybackException.TYPE_OUT_OF_MEMORY · c63f3d92
      Catching OOM errors is bad practise unless there is a specific known
      cause that tried to allocate a large amount of memory. Without this
      known cause with a large allocation, the source of the error is
      likely somewhere else in the app and every random small further
      allocation may lead to additional OOM errors (for example b/145134199).
      
      We have three known causes in ExoPlayer:
       1. Source allocations based on unexpected values in streams. This is
          caught on the loader thread and reported as an
          UnexpectedLoaderException.
       2. Output buffer allocations by non-MediaCodec decoders. These are
          caught in SimpleDecoder on the decoder thread and reported as
          UnexpectedDecodeException.
       3. Input buffer allocations by non-MediaCodc decoders in their
          constructors. These are currently caught on a higher-level and
          reported as ExoPlaybackException.TYPE_OUT_OF_MEMORY.
      
      For consistency and to prevent catching OOM errors without known cause
      we can remove the generic TYPE_OUT_OF_MEMORY and catch the specific
      exception where it occurs to report it as an
      ExoPlaybackException.TYPE_RENDERER. This also has the added advantage
      that the format metadata is added to the exception.
      
      PiperOrigin-RevId: 351326688
      tonihei committed
  2. 12 Jan, 2021 3 commits
  3. 11 Jan, 2021 11 commits
  4. 08 Jan, 2021 18 commits
  5. 07 Jan, 2021 3 commits