1. 12 Apr, 2023 8 commits
    • Rename ExoTrackSelection.blacklist to excludeTrack · 2c042844
      It is not possible to provide a safe deprecation path because
      BaseTrackSelection can't easily know which of the methods is
      implemented by subclasses.
      
      PiperOrigin-RevId: 523471578
      tonihei committed
    • Change format logged when AudioSink throws InitializationException · 81d9c6c1
      Change what format is logged from MediaCodecAudioRenderer when
      AudioSink throws InitializationException. We printed the
      AudioSink's format, which most of the times is audio/raw (PCM)
      and not the renderer's format. With this change both formats are
      logged.
      
      #minor-release
      
      Issue: google/ExoPlayer#11066
      PiperOrigin-RevId: 523456840
      christosts committed
    • Remove setters for streamOffset. · b9205746
      In addition to the changes in https://github.com/google/ExoPlayer/commit/b18fb368cca9843aeca2cc4d5a01aa4fa41b4bd7
      
      This change essentially reverts https://github.com/google/ExoPlayer/commit/30e5bc9837e2423cd2bb426c5797211e0f6ad76b (Merged Jul 2022).
      
      From this CL on, `VideoFrameProcessor` takes in non-offset, monotonically
      increasing timestamps. For example, with one 5s and one 10s video,
      
      - `VideoFrameProcessor`'s input should start from 0
      - On switching to the second video (10s), the timestamp of the first frame in
        the second video should be at 5s.
      
      In ExoPlayer however, `streamOffset` is managed differently and thus needs
      correction before sending the frames to `VideoFrameProcessor`:
      - The timestamp of the first video is offset by a large int, so the first frame
        of the first media item has timestamp (assuming) 10000000000000000
      - The last frame of the first media item has 10000005000000000
      - At this point the stream off set is updated to 10000005000000000
      - The pts of the first frame of the second video starts from 0 again.
      
      PiperOrigin-RevId: 523444236
      claincly committed
    • HDR: Add HDR pixel tests. · fd9beb68
      Implement HDR input support for texture output, and add HDR pixel tests.
      
      PiperOrigin-RevId: 523417701
      huangdarwin committed
    • Make PlayerView fold aware · b743ad9f
      PiperOrigin-RevId: 523413988
      Googler committed
    • Fix audio encode timestamp off by one · 0a9134ff
      Simplify the audio encoder input timestamp calculation. The new calculation
      avoids drifting by tracking the total number of bytes encoded rather than
      tracking the timestamp and remainder separately, and also makes the timestamps
      match the decoder output buffer timestamps.
      
      Also switch one of the export tests that was passing through AMR samples over
      to using WAVE audio. The problem with using AMR is that the compressed samples
      are not necessarily an integer number of audio frames and the shadow decoder
      would pass them from input to output, so the audio encoder was receiving
      non-integer numbers of audio frames.
      
      Tested by logging the timestamps at the decoder output and encoder input with
      forcing transcoding audio, and verifying that after this change the audio
      timestamps are no longer off by one.
      
      PiperOrigin-RevId: 523409869
      andrewlewis committed
    • Release sample pipelines before asset loaders · 78669f87
      The video asset loader renders decoder output to a surface texture, and if the
      video sample pipeline is in the process of updating the surface texture image
      at the moment when the asset loader video decoder is released this seems to
      cause `MediaCodec.release` to get stuck.
      
      Swap the release order so that we stop updating the texture before trying to
      release the codec.
      
      PiperOrigin-RevId: 523401619
      andrewlewis committed
    • Improve error logging · eac4b536
      Log at debug level immediately when MediaCodec throws. This logging will be
      output closer to the time when the error actually happened so should make it
      easier to identify the order of components failing.
      
      Downgrade logging of errors after export ends to warning level, as output may
      still be fine if there was a problem after exporting completed (though it's
      still worth logging a warning as the device may not be in a good state).
      
      PiperOrigin-RevId: 523370457
      andrewlewis committed
  2. 11 Apr, 2023 8 commits
  3. 05 Apr, 2023 20 commits
  4. 30 Mar, 2023 4 commits