1. 10 Jan, 2022 1 commit
  2. 09 Jan, 2022 5 commits
  3. 19 Nov, 2021 1 commit
  4. 18 Nov, 2021 12 commits
  5. 16 Nov, 2021 3 commits
  6. 15 Nov, 2021 6 commits
  7. 11 Nov, 2021 12 commits
    • Merge #9678: Fix typo in Hello world documentation. · a29d7cf6
      PiperOrigin-RevId: 409129177
      tonihei committed
    • Write sample size to dumpfile in transformer tests. · cfe61dbb
      If the number of samples changes, the sizes will help us to verify whether they are just split differently or extra data was added.
      
      PiperOrigin-RevId: 407346280
      hschlueter committed
    • Fully support per-track-type selection overrides. · 8bae89f1
      Currently, TrackSelectionOverrides are documented as being applied
      per track type, meaning that one override for a type disables all
      other selections for the same track type. However, the actual
      implementation only applies it per track group, relying on the
      track selector to never select another renderer of the same type.
      
      This change fixes DefaultTrackSelector to fully adhere to the
      TrackSelectionsOverride definition. This solves problems when
      overriding tracks for extension renderers (see Issue: google/ExoPlayer#9675)
      and also simplifies a workaround added to StyledPlayerView.
      
      #minor-release
      
      PiperOrigin-RevId: 409121711
      tonihei committed
    • Async buffer queueing: do not throw from flush/shutdown · aa2a4e30
      The asynchronous MediaCodec adapter queues input buffers in a
      background thread. If a codec queueuing operation throws an exception,
      the buffer enqueuer will store it as a pending exception and re-throw it
      the next time the adapter will attempt to queue another input buffer.
      
      The buffer enqueuer's flush() and shutdown() may throw an exception if
      the pending error is set. This is subject to a race-condition in which
      the pending error can be set while the adapter is flushing/shutting down
      the enqueuer, e.g., if an input buffer is still being queued and the
      codec throws an exception. As a result, the adapter cannot flush or
      shutdown gracefully.
      
      This change makes the buffer enqueuer to ignore any pending error
      when flushing/shuttinf down so that the adapter can flush/release
      gracefully even if a queueing error was detected.
      
      PiperOrigin-RevId: 409113054
      christosts committed
    • Add experimental method to turn-off async flush · ac413a14
      When operating the MediaCodec in asynchronous mode, after a
      MediaCodec.flush(), we start MediaCodec in the callback thread,
      which might trigger errors in some platforms. This change adds an
      experimental flag to move the call to MediaCodec.start() back to the
      playback thread.
      
      PiperOrigin-RevId: 407801013
      christosts committed
    • Add DefaultMediaCodecFactory.getCodecAdapter() method · 84c24fb6
      Add protected method DefaultRenderersFactory.getCodecAdapter(), so that
      subclasses of DefaultRenderersFactory that override
      buildVideoRenderers() or buildAudioRenderers() can access the
      DefaultRenderersFactory codec adapter factory and pass it to
      MediaCodecRenderer instances they may create.
      
      PiperOrigin-RevId: 407345431
      christosts committed
    • Make TrackSelectionOverride.getTrackType public · e408a474
      This method is helpful when iterating the list of track overrides
      to figure out which type the override applies to.
      
      Issue: google/ExoPlayer#9665
      PiperOrigin-RevId: 409108977
      tonihei committed
    • Add repeat/shuffle mode documentation to the playlist page. · 91f6e409
      We only had some documentation for a custom shuffle mode, but none
      for generic repeat or shuffle modes.
      
      #minor-release
      
      Issue: google/ExoPlayer#9611
      PiperOrigin-RevId: 409089623
      tonihei committed
    • Update track selection documentation. · 898da147
      The Javadoc of DefaultTrackSelector can be shortened as it's not the
      right place to document detailed options of the Player track selection
      parameters.
      
      The documentation page about track selection is updated to the new
      APIs and extended with most relevant options and information needed
      to work with ExoPlayer's track selection API.
      
      #minor-release
      
      PiperOrigin-RevId: 409088989
      tonihei committed
    • Fix header name in WebServerDispatcher used for testing · 4c61476f
      HTTP header names are case-insensitive, but all the others in this file
      are 'correctly' cased, so we might as well be consistent.
      
      PiperOrigin-RevId: 408840566
      ibaker committed
    • Add contract tests for DataSource#getResponseHeaders · 5891b76b
      PiperOrigin-RevId: 408840409
      ibaker committed
    • Make DefaultHttpDataSourceContractTest an instrumentation test · df0e89c1
      Robolectric uses the JRE HttpURLConnection [1], while real Android
      devices and emulators use OkHttp to implement HttpURLConnection. This
      can lead to important differences in behaviour, so it's better to use
      instrumentation tests when specific HTTP behaviour is important.
      
      [1] https://github.com/robolectric/robolectric/issues/6769#issuecomment-943556156
      
      PiperOrigin-RevId: 408840295
      ibaker committed