1. 11 Oct, 2022 1 commit
  2. 10 Oct, 2022 2 commits
    • Treat NO_VALUE as zero when adding up total required bitrate · dc805232
      We currently use the literal -1 (=NO_VALUE) when adding up the
      total. Tracks without known bitrate can be ignored in the
      calculation, but we should use an explicit value of 0.
      
      #minor-release
      
      Issue: google/ExoPlayer#10664
      PiperOrigin-RevId: 480048126
      (cherry picked from commit af19e0ea)
      tonihei committed
    • Adjust track selection with Dolby Vision if display does not support · e8a5ac91
      If the sample type is Dolby Vision and the display does not support Dolby Vision, then the capabilities DecoderSupport flag is set to DECODER_SUPPORT_FALLBACK_MIMETYPE. This denotes that the renderer will use a decoder for a fallback mimetype if possible. This alters track selection as tracks with DecoderSupport DECODER_SUPPORT_PRIMARY are preferred.
      
      UnitTests included
      -DefaultTrackSelector test that checks track selection reordering with DECODER_SUPPORT_FALLBACK_MIMETYPE
      -MediaCodecVideoRenderer test that checks setting of DecoderSupport flag based on Display's Dolby Vision support
      
      Issue: google/ExoPlayer#8944
      PiperOrigin-RevId: 480040876
      (cherry picked from commit a366590a)
      michaelkatz committed
  3. 07 Oct, 2022 4 commits
  4. 06 Oct, 2022 2 commits
    • Add a FrameProcessor flag to drop the processed frame · 80818045
      This mode is supported by using `C.TIME_UNSET` (which is a negative value). The
      new logic decouples the value of `C.TIME_UNSET` and the frame dropping
      behaviour.
      
      PiperOrigin-RevId: 479368880
      (cherry picked from commit ccab9fba)
      claincly committed
    • Provide access to original media timestamps in AudioSink. · d2f7fb1d
      * Add `setOutputStreamOffsetUs(long)` method in `AudioSink`.
      * Add private methods `setOutputStreamOffsetUs(long)` method in `MediaCodecRenderer` and `DecoderAudioRenderer`.
      * Add protected method `onOutputStreamOffsetUs(long)` method in `MediaCodecRenderer`, in which:
        * `MediaCodecRenderer` itself will be no-op for this method.
        * `MediaCodecAudioRenderer` will propagate this value to its `audioSink`.
      * Add logics in `DecoderAudioRenderer` to calculate `outputStreamOffsetUs`.
      
      PiperOrigin-RevId: 479265429
      (cherry picked from commit 4c732410)
      tianyifeng committed
  5. 05 Oct, 2022 3 commits
    • Fix RequestMetadata JavaDoc link to point to the right MediaController. · e37f16a7
      The JavaDoc of RequestMetadata should point to the media3 controller,
      not the platform one.
      
      PiperOrigin-RevId: 479047924
      (cherry picked from commit 08895899)
      tonihei committed
    • Add FrameProcessor functionality to release a frame immediately · 92ceeda5
      Currently `FrameProcessor.releaseOutputFrame()` method supports
      
      Release at a specific system time
      Drops the frame
      This API is not that convenient to use when the caller wants to release a frame, now, regardless of the release time. A use case is to release (present) a frame when no frame is shown for a while, and it's thus better to just release the frame, now.
      
      Currently if MCVR wants a frame to be rendered now, MCVR calls release frame with a set offset like 10us: `releaseOutputFrame(System.nanoTime() + 10_000)`. The 10us offset is to prevent the frame processor dropping the frame, due to thread hopping delays.
      
      To make the API better usable, consider adding a mode for releasing the frame now, like (bold marks the new mode)
      
      - Use C.TIME_UNSET to drop
      - **Use -1 to release the frame immediately, or**
      - Use an actual release time.
      
      PiperOrigin-RevId: 479044215
      (cherry picked from commit ff8dd0b4)
      claincly committed
    • Add button to show/hide input player in TransformerActivity · 997cdf37
      PiperOrigin-RevId: 479003655
      (cherry picked from commit 20c1ae14)
      Googler committed
  6. 04 Oct, 2022 1 commit
    • HDR: Check isToneMappingApplied in HDR editing test. · a06b0ba5
      Assert that tone mapping is applied when an HDR edit cannot be HDR, but is successfully tone mapped. Meanwhile, assert that fallback, which is applied after codec configuration (which throws the "Tone-mapping requested but not supported by the decoder" error) is not applied when that error is called.
      
      PiperOrigin-RevId: 478762951
      (cherry picked from commit 36e41059)
      huangdarwin committed
  7. 03 Oct, 2022 1 commit
  8. 30 Sep, 2022 3 commits
  9. 29 Sep, 2022 1 commit
  10. 28 Sep, 2022 4 commits
  11. 27 Sep, 2022 1 commit
  12. 26 Sep, 2022 2 commits
  13. 23 Sep, 2022 3 commits
    • Add setPreferredAudioDevice method to ExoPlayer · 289d0394
      This allows to access the associated functionality of AudioTrack and
      fills a feature gap to MediaPlayer, which has a similar method.
      
      Issue: androidx/media#135
      PiperOrigin-RevId: 476398964
      (cherry picked from commit ccb820dd)
      tonihei committed
    • Add example CLUT to demo. · 8b807432
      PiperOrigin-RevId: 476390089
      (cherry picked from commit 29cf0931)
      leonwind committed
    • Store LUT bitmap as texture with processor creation. · 0a1f30ab
      * Before this CL, the texture was stored during the construction of the LUT processor. This failed since if one creates a list of GlEffects on the application thread, the texture will get stored in the application thread during the effect creation and not on the GL thread, which executes the FrameProcessors.
      * This is an issue since the executing thread then can't index from the texture stored on a different thread.
      
      PiperOrigin-RevId: 476388021
      (cherry picked from commit f745c6ee)
      leonwind committed
  14. 19 Oct, 2022 1 commit
  15. 23 Sep, 2022 5 commits
  16. 22 Sep, 2022 4 commits
  17. 21 Sep, 2022 2 commits