1. 01 Aug, 2019 6 commits
  2. 29 Jul, 2019 1 commit
  3. 28 Jul, 2019 5 commits
  4. 27 Jul, 2019 2 commits
    • Bump version to 2.10.4 · d76bf4bf
      PiperOrigin-RevId: 260164426
      olly committed
    • Fix handling of channel count changes with speed adjustment · 95d29884
      When using speed adjustment it was possible for playback to get stuck at a
      period transition when the channel count changed: SonicAudioProcessor would be
      drained at the point of the period transition in preparation for creating a new
      AudioTrack with the new channel count, but during draining the incorrect (new)
      channel count was used to calculate the output buffer size for pending data from
      Sonic. This meant that, for example, if the channel count changed from stereo to
      mono we could have an output buffer size that stored an non-integer number of
      audio frames, and in turn this would cause writing to the AudioTrack to get
      stuck as the AudioTrack would prevent writing a partial audio frame.
      
      Use Sonic's current channel count when draining output to fix the issue.
      
      PiperOrigin-RevId: 260156541
      andrewlewis committed
  5. 26 Jul, 2019 18 commits
  6. 14 Jul, 2019 2 commits
  7. 09 Jul, 2019 6 commits
    • fix typo in release notes · f314be58
      PiperOrigin-RevId: 257185017
      bachinger committed
    • Fix syntax error in publish.gradle · 1273f18e
      PiperOrigin-RevId: 257184313
      aquilescanta committed
    • Bump version to 2.10.3 · fdef76c8
      PiperOrigin-RevId: 257161518
      olly committed
    • Fix race condition in DownloadHelper · be9fea89
      Sending MESSAGE_PREPARE_SOURCE should happen last in the constructor.
      It was previously happening before initialization finished (and in
      particular before pendingMediaPeriods was instantiated).
      
      Issue: #6146
      PiperOrigin-RevId: 257158275
      olly committed
    • Apply playback parameters in a consistent way. · dbabb7c9
      Currently, we sometimes apply new playback parameters directly and sometimes
      through the list of playbackParameterCheckpoints. Only when using the checkpoints,
      we also reset the offset and corresponding position for speedup position
      calculation. However, these offsets need to be changed in all cases to prevent
      calculation errors during speedup calculation[1].
      
      This change channels all playback parameters changes through the checkpoints to
      ensure the offsets get updated accordingly. This fixes an issue introduced in
      https://github.com/google/ExoPlayer/commit/31911ca54a13b0003d6cf902b95c2ed445afa930.
      
      [1] - The speed up is calculated using the ratio of input and output bytes in
      SonicAudioProcessor.scaleDurationForSpeedUp. Whenever we set new playback
      parameters to the audio processor these two counts are reset. If we don't reset
      the offsets too, the scaled timestamp can be a large value compared to the input
      and output bytes causing massive inaccuracies (like the +20 seconds in the
      linked issue).
      
      Issue:#6117
      PiperOrigin-RevId: 256533780
      tonihei committed
    • Play out remaining data on reconfiguration · 1d766c46
      Before this change we'd release the audio track and create a new one as soon
      as audio processors had drained when reconfiguring.
      
      Fix this behavior by stop()ing the AudioTrack to play out all written data.
      
      Issue: #2446
      PiperOrigin-RevId: 244812402
      andrewlewis committed