1. 16 Jun, 2022 2 commits
  2. 15 Jun, 2022 13 commits
  3. 14 Jun, 2022 4 commits
  4. 13 Jun, 2022 5 commits
  5. 10 Jun, 2022 1 commit
  6. 09 Jun, 2022 15 commits
    • Check targetSdkVersion for frame dropping workaround. · a105d033
      Based on
      https://developer.android.com/reference/android/media/MediaCodec#using-an-output-surface,
      frame dropping behaviour depends on the target SDK version.
      After this change transformer will only use
      MediaFormat#KEY_ALLOW_FRAME_DROP if both the target and system SDK
      version are at least 29 and default to its pre 29 behaviour where each
      decoder output frame must be processed before a new one is rendered
      to prevent frame dropping otherwise.
      
      Also remove deprecated Transformer.Builder constructor without a
      context and the context setter.
      
      PiperOrigin-RevId: 453971097
      hschlueter committed
    • Make GlUtil.GlException checked and remove flag to disable it. · cc1f32d0
      Transformer always enabled glAssertionsEnabled, so there should
      be no functional change.
      
      ExoPlayer previously disabled glAssertionsEnabled, so GlUtil logged
      GlExceptions instead of throwing them. The GlExceptions are now
      caught and logged by the callers so that there should also be no
      functional change overall.
      
      This change also replaces EGLSurfaceTexture#GlException with
      GlUtil#GlException.
      
      PiperOrigin-RevId: 453963741
      hschlueter committed
    • Check targetSdkVersion for frame dropping workaround. · 3f718b0d
      Based on
      https://developer.android.com/reference/android/media/MediaCodec#using-an-output-surface,
      frame dropping behaviour depends on the target SDK version.
      After this change transformer will only use
      MediaFormat#KEY_ALLOW_FRAME_DROP if both the target and system SDK
      version are at least 29 and default to its pre 29 behaviour where each
      decoder output frame must be processed before a new one is rendered
      to prevent frame dropping otherwise.
      
      Also remove deprecated Transformer.Builder constructor without a
      context and the context setter.
      
      PiperOrigin-RevId: 453971097
      hschlueter committed
    • Make GlUtil.GlException checked and remove flag to disable it. · dc668f2b
      Transformer always enabled glAssertionsEnabled, so there should
      be no functional change.
      
      ExoPlayer previously disabled glAssertionsEnabled, so GlUtil logged
      GlExceptions instead of throwing them. The GlExceptions are now
      caught and logged by the callers so that there should also be no
      functional change overall.
      
      This change also replaces EGLSurfaceTexture#GlException with
      GlUtil#GlException.
      
      PiperOrigin-RevId: 453963741
      hschlueter committed
    • DefaultTrackSelector: Constrain audio channel count · 9f3c595e
      The track selector will select multi-channel formats when those can be
      spatialized, otherwise the selector will prefer stereo/mono audio
      tracks. When the device supports audio spatialization (Android 12L+),
      the DefaultTrackSelector will monitor for changes in the platform
      Spatializer and trigger a new track selection upon a
      Spatializer change event.
      
      Devices with a `television` UI mode are excluded from audio channel
      count constraints.
      
      #minor-release
      
      PiperOrigin-RevId: 453957269
      christosts committed
    • DefaultTrackSelector: Constrain audio channel count · e2f0fd76
      The track selector will select multi-channel formats when those can be
      spatialized, otherwise the selector will prefer stereo/mono audio
      tracks. When the device supports audio spatialization (Android 12L+),
      the DefaultTrackSelector will monitor for changes in the platform
      Spatializer and trigger a new track selection upon a
      Spatializer change event.
      
      Devices with a `television` UI mode are excluded from audio channel
      count constraints.
      
      #minor-release
      
      PiperOrigin-RevId: 453957269
      christosts committed
    • Fix bug: playback is frozen with HLS chunkless preparation · 9221eeb2
      This change fixes a bug where the player is frozen with HLS chunkless
      preparation because the audio stream wrappers are not marked as master
      timestamp sources before preparation.
      
      #minor-release
      
      PiperOrigin-RevId: 453941815
      christosts committed
    • Ensure re-encode on performance tests · 12d775f0
      PiperOrigin-RevId: 453933854
      claincly committed
    • Add session URI to Intent used with the notification · 8b592fc7
      The service handles three different types of `Intents`. Custom command and media
      command Intents created by the library and media button event Intents from other
      sources.
      
      Media commands from the library as well as from external sources have the action
      set to `android.intent.action.MEDIA_BUTTON`. If the data URI is set and can be
      used to identify a session then it is a library Intent. If the Intent is coming
      from an external KeyEvent, the service implementation is asked which session to use
      by calling `onGetSession(controllerInfo)` with the controller info being an
      anonymous legacy controller info.
      
      Intents representing a custom command are always coming from the library and hence
      always have a data URI.
      
      Issue: androidx/media#82
      PiperOrigin-RevId: 453932972
      bachinger committed
    • Merge pull request #69 from ittiam-systems:rtp_amr_test · 58f7ac25
      PiperOrigin-RevId: 453905355
      Marc Baechinger committed
    • Add COMMAND_SET_MEDIA_ITEM to Player.Commands · 5333c67d
      Some Player implementations have no playlist capability but can still
      set a MediaItem for playback. Examples are a MediaController connected
      to a legacy MediaSession, ExoPlayer up to 2.12 or MediaPlayer.
      
      To indicate this capability, we need an allowed command in addition
      to COMMAND_CHANGE_MEDIA_ITEMS that just allows to set a single item
      that replaces everything that is currently played.
      
      #minor-release
      
      PiperOrigin-RevId: 453879626
      tonihei committed
    • Avoid using ConcurrentHashMap · d506c709
      Use Collections.synchronizedSet() instead of creating a set from a
      ConcurrentHashMap because ConcurrentHashMap has a bug in APIs 21/22
      that can result in lost updates.
      
      PiperOrigin-RevId: 453696565
      christosts committed
    • Transformer GL: Split Presentation and Crop. · c5b881e0
      This removes the prior restriction of needing to remember not to crop and set aspect ratio in the same Presentation.Builder, and makes each class a bit more targeted.
      
      This is partially made feasible by the past work to merge consecutive
      MatrixTransformations into a single MatrixTransformationFrameProcessor, which
      ensures that there's no loss in quality between successive MatrixTransformations.
      
      PiperOrigin-RevId: 453660582
      huangdarwin committed
    • Audio passthrough: handle unset audio format channel count · 86973382
      With HLS chunkless preparation, audio formats may have no value
      for channel count. In this case, the DefaultAudioSink will either query
      the platform for a supported channel count (API 29+) or assume a max
      channel count based on the encoding spec in order to decide whether the
      audio format can be played with audio passthrough.
      
      Issue: google/ExoPlayer#10204
      
      #minor-release
      
      PiperOrigin-RevId: 453644548
      christosts committed
    • Mention alpha for matrix transformation background color. · cdb80387
      PiperOrigin-RevId: 453633920
      hschlueter committed