1. 01 Jul, 2022 3 commits
    • Find only REGULAR_CODECS in EncoderUtil. · e3f1787c
      We used "ALL_COOECS" previously, and it is not necessary because "ALL_CODECS"
      additionally the codecs that support tunneling/secure decoding, which there
      is no use case in Transformer.
      
      PiperOrigin-RevId: 458470278
      (cherry picked from commit 8f89eba5)
      claincly committed
    • Round the frame rate in MediaFormat · f1d4a4ca
      Although MediaCodec claims supporting float frame rate, encoder init failed on
      API21 Nexus 5. Since it's just a performance hint to the codec, it's OK to
      generalize it to other API versions.
      
      PiperOrigin-RevId: 458434650
      (cherry picked from commit 821ab267)
      claincly committed
    • Fix MIDI command timestamp calculations and synthesization duration. · d03fb394
      - Improve variable naming to include time units for clarity
      - Fix existing timestamp calculations to respect time units as well as track tempo (default values for now)
      - Ensure the synthesizer produces PCM for the correct amount of time (including gaps between commands).
      
      PiperOrigin-RevId: 458428243
      (cherry picked from commit bce59b1a)
      hmzh committed
  2. 29 Jun, 2022 4 commits
  3. 28 Jun, 2022 1 commit
  4. 27 Jun, 2022 1 commit
    • Add timestamp to `Metadata` · 76310ad4
      `MetadataRenderer` is updated to output `Metadata` with its presentation time, in microseconds.
      
      PiperOrigin-RevId: 457444718
      (cherry picked from commit 6e9275c1)
      rohks committed
  5. 24 Jun, 2022 2 commits
  6. 23 Jun, 2022 4 commits
  7. 22 Jun, 2022 3 commits
  8. 20 Jun, 2022 2 commits
  9. 17 Jun, 2022 1 commit
  10. 16 Jun, 2022 1 commit
  11. 15 Jun, 2022 4 commits
    • Don't export broadcast receivers that don't require it · 54f72e73
      Issue: google/ExoPlayer#10287
      PiperOrigin-RevId: 455131138
      (cherry picked from commit 9267ba3f)
      olly committed
    • Replace FrameProcessorChain#isEnded with listener method. · da7ad371
      PiperOrigin-RevId: 455114693
      (cherry picked from commit 10050a1e)
      hschlueter committed
    • Use FrameProcessorChain#SurfaceProvider for encoder compat transform. · 5f142c4b
      This change adds a SurfaceProvider interface which is necessary to
      allow for texture processors whose output size becomes available
      asynchronously in follow-ups.
      VTSP's implementation of this interface wraps the encoder and provides
      its input surface together with the output frame width, height, and
      orientation as used for encoder configuration.
      The FrameProcessorChain converts the output frames to the provided
      orientation and resolution using a ScaleToFitTransformation and
      Presentation replacing EncoderCompatibilityTransformation.
      
      PiperOrigin-RevId: 455112598
      (cherry picked from commit d20f6849)
      hschlueter committed
    • Implement seeking to the start of a MIDI file · 5a3454c8
      - Fixed MidiExtractor state issues which caused seeking to behave unexpectedly. Ensures the extractor is now always in the file loading state after returning RESULT_END_OF_INPUT.
      - Fixed an infinite loop in MidiExtractor caused by the file data array having an initial size of 0. The extractor attempted to increase the capacity of the array by using this size of 0 in it's calculations.
      
      PiperOrigin-RevId: 455107511
      (cherry picked from commit e5260bee)
      hmzh committed
  12. 13 Jun, 2022 2 commits
  13. 10 Jun, 2022 2 commits
  14. 09 Jun, 2022 3 commits
  15. 08 Jun, 2022 3 commits
  16. 06 Jun, 2022 1 commit
    • Add interface for async texture processors. · 84b46c10
      Implementations of this interface will be able to drop or add frames,
      change timestamps, accept multiple input frames before producing
      output, and process frames on their own background thread.
      
      A default implementation of this interface will be added to SingleFrameGlTextureProcessor in a follow-up.
      
      PiperOrigin-RevId: 453159835
      (cherry picked from commit 023d19c8)
      hschlueter committed
  17. 31 May, 2022 2 commits
    • Add async error listener to transformer to avoid exception wrapping. · a04cc94a
      This internal listener avoids wrapping the TransformationExceptions
      in PlaybackExceptions that are handled via the Player.Listener and
      is also used for FrameProcessingExceptions which already avoided
      the PlaybackException layer previously.
      
      This listener will also be useful in follow-ups for encoder-related
      TransformationExceptions that are thrown in the SurfaceProvider that
      will be called on the GL thread.
      
      PiperOrigin-RevId: 452074575
      (cherry picked from commit 960422e3)
      hschlueter committed
    • Move program initialization to texture processor constructor. · 23b0610a
      Once the more advanced GlTextureProcessor interface exists,
      it will be possible to change the output size of a GlTextureProcessor
      between frames. To keep the re-configuration based on the frame sizes
      minimal, things indepedent of the frame size, such as the GlProgram,
      can be initialized in the constructor.
      
      PiperOrigin-RevId: 451997584
      (cherry picked from commit 54d44d38)
      hschlueter committed
  18. 30 May, 2022 1 commit