1. 13 Jul, 2020 12 commits
  2. 10 Jul, 2020 6 commits
    • Upgrade IMA SDK to 3.19.4 · a8f1cdcf
      This brings in a fix for the IMA SDK ignoring the media load timeout.
      
      Issue: #7170
      PiperOrigin-RevId: 320557386
      andrewlewis committed
    • Fix saiz and senc sample count checks for FMP4 · c29fc945
      Issue: #7592
      PiperOrigin-RevId: 320556981
      kimvde committed
    • Fix VPFO counter reporting · fd3e10ed
      DecoderCounters are reset in onEnabled, but the way the local
      counters in MediaCodecVideoRenderers were reset assumed the
      DecoderCounters were reset in onStarted.
      
      PiperOrigin-RevId: 320440991
      olly committed
    • Pass correct Format to AudioSink.configure · 351b54e9
      Building on the Format that was provided on the input side of the
      decoder creates a format that's a mixture of the formats on the
      input and output sides of the decoder. This change instead builds
      a PCM format from scratch.
      
      PiperOrigin-RevId: 320405656
      olly committed
    • Update skippedOutputBufferCount correctly in batching mode · 94547145
      The counter was increased by one for each batch
      instead of each frame.
      
      PiperOrigin-RevId: 320396903
      krocard committed
    • Pass correct formats to AudioSink · e8596428
      The renderers are currently constructing formats that consist of their
      input format with added PCM encoding. Such formats are not self-consistent,
      and this only works because DefaultAudioSink ignores the rest of the
      format if the format has a PCM encoding. It would not work if the sink
      implementation checked the MIME type, for example, which wouldn't be a
      strange or incorrect thing for it to do.
      
      The more correct approach is to construct a new format that properly
      represents the PCM that will be provided to the sink.
      
      This change also renames supportsOutput to supportsFormat, because
      AudioSink itself has both an input and an output side, and this method
      is actually evaluating support on the input side of the sink.
      
      PiperOrigin-RevId: 320396089
      olly committed
  3. 09 Jul, 2020 3 commits
  4. 08 Jul, 2020 18 commits
  5. 06 Jul, 2020 1 commit
    • Don't clear the exception in SimpleDecoder.flush() · 7474547e
      Clearing the exception puts the SimpleDecoder into a silent failure
      state - the decoder thread is dead (because decode() has returned
      false) but it's still possible to queue buffers to the decoder (they
      just never get decoded). This partially reverts
      https://github.com/google/ExoPlayer/commit/4107375c9d21136090d0071b04a498024eec6a4c
      
      Also always recreate the decoder when handling an error in TextRenderer
      
      This ensures we can try and decode a later subtitle sample after
      encountering a decode error. This behaviour is what nulling out the
      exception in SimpleDecoder.flush() was trying to achieve. We need to
      ensure we don't start passing data to the new decoder until we've
      hit the next key frame, so we throw away any non-keyframe samples
      inside TextRenderer#render().
      
      Issue: #7590
      PiperOrigin-RevId: 319785908
      ibaker committed