1. 22 Jun, 2022 1 commit
    • Support chaining async GlTextureProcessors in FrameProcessorChain. · 0007a473
      After this change, FrameProcessorChain chains any GlTextureProcessors
      instead of only SingleFrameGlTextureProcessors.
      
      The GlTextureProcessors are chained in a bidirectional manner using
      ChainingGlTextureProcessorListener to feed input and output related
      events forward and release events backwards.
      
      PiperOrigin-RevId: 456478414
      (cherry picked from commit 555ab97e)
      hschlueter committed
  2. 20 Jun, 2022 2 commits
  3. 17 Jun, 2022 1 commit
  4. 16 Jun, 2022 1 commit
    • Wrap processor chain executor service for better exception handling. · c16e5ac4
      The wrapper
      * catches exceptions for each task and notifies the
        listener (this will be used more in follow-ups when processFrame
        is split into lots of listeners and callbacks),
      * removes finished tasks from the queue and signals any exceptions
        that occurred to the listener each time a new task is executed.
      
      PiperOrigin-RevId: 455345184
      (cherry picked from commit ee847d92)
      hschlueter committed
  5. 15 Jun, 2022 4 commits
  6. 13 Jun, 2022 2 commits
  7. 10 Jun, 2022 2 commits
  8. 09 Jun, 2022 3 commits
  9. 08 Jun, 2022 3 commits
  10. 06 Jun, 2022 3 commits
  11. 31 May, 2022 2 commits
    • Add async error listener to transformer to avoid exception wrapping. · 27f23041
      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 35b5147e)
      hschlueter committed
    • Move program initialization to texture processor constructor. · 22ee071b
      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 87ab96d3)
      hschlueter committed
  12. 30 May, 2022 1 commit
  13. 08 Aug, 2022 1 commit
  14. 22 Jul, 2022 1 commit
  15. 21 Jul, 2022 2 commits
  16. 15 Jul, 2022 1 commit
  17. 13 Jul, 2022 2 commits
  18. 12 Jul, 2022 2 commits
    • Add migration script · 6180035e
      Note: This was already reviewed in <unknown commit>. This doesn't mean we cannot apply further changes though.
      PiperOrigin-RevId: 460542835
      (cherry picked from commit f9a39201)
      bachinger committed
    • Don't set the tag in CastTimeline · 05a1bbf6
      Leaving the media item that has been passed in unchanged, ensures that the
      media item in the timeline is equal to the media item that the user has
      passed into the player. The value of the tag is the uid of the window,
      meaning this is redundant information.
      
      #minor-release
      
      PiperOrigin-RevId: 460542246
      (cherry picked from commit b61a06ba)
      bachinger committed
  19. 13 Jul, 2022 1 commit
  20. 12 Jul, 2022 2 commits
  21. 11 Jul, 2022 2 commits
    • Use the public MediaItem in the timeline of CastPlayer · fe6baee7
      The media item needs to be assigned to `Window.mediaItem` in `CastTimeline.setWindow`. For this the `MediaItem` needs to be available in the timeline.
      
      When a `MediaItem` is passed to the `set/addMediaItems` method, we can't yet know the Cast `MediaQueueItem.itemId` that is generated on the device and arrives with an async update of the `RemoteMediaClient` state. Hence in the `CastTimelineTracker`, we need to store the `MediaItem` by Casts's `MediaItem.contentId`. When we then receive the updated queue, we look the media item up by the content ID to augment the `ItemData` that is available in the `CastTimeline`.
      
      Issue: androidx/media#25
      Issue: google/ExoPlayer#8212
      
      #minor-release
      
      PiperOrigin-RevId: 460325235
      (cherry picked from commit 30fbc3a2)
      bachinger committed
    • Listen to playWhenReady changes in LeanbackPlayerAdapter · 329aa586
      #minor-release
      
      Issue: google/ExoPlayer#10420
      PiperOrigin-RevId: 460223064
      (cherry picked from commit 4eb34e4c)
      christosts committed
  22. 07 Jul, 2022 1 commit