1. 04 Feb, 2021 10 commits
    • Avoid skipping the first decoder output buffers after speed change · da52de66
      #minor-release
      
      PiperOrigin-RevId: 355652144
      kimvde committed
    • More clearly define the semantics of error recovery · 5107fea5
      - When throwing a recoverable error from a renderer, it's important to understand
        exactly how the player will attempt recovery. Clarify the documentation to
        make this explicit.
      - Rename some methods/constants to make it clear that error recovery is specific
        to renderer errors. The current recovery mechanism only makes sense for
        renderer errors. Making the naming renderer specific avoids reader doubt that
        the implementation doesn't appear to be generic enough for other types of
        errors.
      
      PiperOrigin-RevId: 355650945
      olly committed
    • Finalize release notes for 2.13.0 · d08cacd9
      PiperOrigin-RevId: 355621265
      olly committed
    • Add Bundleable interface · d72d2547
      It's for classes to clearly denote they support bundling and it gives
      us a good place to document the best practice to implement fromBundle.
      
      PiperOrigin-RevId: 355609942
      gyumin committed
    • Fall back to AVC/HEVC for Dolby Vision levels 10-13 · 35d34af2
      Before, the level was set to null in this case.
      MediaCodecUtil.getCodecProfileAndLevel() was therefore returning null
      and the fallback to AVC/HEVC was not enabled in MediaCodecVideoRenderer.
      
      Issue:#8530
      #minor-release
      PiperOrigin-RevId: 355574499
      kimvde committed
    • Upgrade some dependency versions · e345e0a5
      PiperOrigin-RevId: 355508621
      olly committed
    • Suppress SwitchIntDef warning where it makes sense · 2a22b347
      In both cases it's deliberate that all excluded constants should use
      the default branch. Furthermore, there are quite a lot of excluded
      constants missing, so it's probably better to suppress the warning
      than to include them all.
      
      #minor-release
      
      PiperOrigin-RevId: 355426749
      olly committed
    • Fix gradle conflict resolution for Cronet tests · e98f5f34
      This resolves the following constraint resolution issue when running our release script:
      
      > Cannot find a version of 'org.chromium.net:cronet-api' that satisfies the version constraints:
          Dependency path 'com.google.android.exoplayer:extension-cronet:unspecified' --> 'com.google.android.gms:play-services-cronet:17.0.0' --> 'org.chromium.net:cronet-api:72.3626.96'
          Constraint path 'com.google.android.exoplayer:extension-cronet:unspecified' --> 'org.chromium.net:cronet-api:{strictly 72.3626.96}' because of the following reason: debugRuntimeClasspath uses version 72.3626.96
          Dependency path 'com.google.android.exoplayer:extension-cronet:unspecified' --> 'org.chromium.net:cronet-embedded:76.3809.111' --> 'org.chromium.net:cronet-common:76.3809.111' --> 'org.chromium.net:cronet-api:76.3809.111'
      
      #minor-release
      
      PiperOrigin-RevId: 355414968
      olly committed
  2. 03 Feb, 2021 7 commits
  3. 02 Feb, 2021 2 commits
    • Fix ProGuard configuration for 2.13 · b1920f3a
      Note: We only support pro-guard on a best effort basis,
      and developers should use R8 whenever possible.
      
      #minor-release
      
      PiperOrigin-RevId: 355129695
      olly committed
    • Modernize bandwidth profile simulator. · 05fddff8
      Main improvement is to switch away from ExoPlayerTestRunner and to
      split out the waiting component so that the same class can be used
      from Robolectric tests in the future.
      
      The only functional difference is that that BufferLengthLogAction
      is removed completely because the data isn't used downstream and the
      method of collecting this data is a bit arbitrary.
      
      PiperOrigin-RevId: 355117850
      tonihei committed
  4. 01 Feb, 2021 16 commits
  5. 26 Jan, 2021 5 commits
    • Add color decoding tests to SsaDecoderTest, remove SubStation Alpha colors" from… · 28a3921a
      Add color decoding tests to SsaDecoderTest, remove SubStation Alpha colors" from media.exolist.json.
      Arnold Szabo committed
    • Remove randomness from adaptive bitrate tests. · 9b3014dd
      - The order of sample stream (and thus the order in which loads are
        triggered) currently depends on a Set and thus on the hash codes
        of the objects that change with every run. Changing to a List solves
        this problem.
      - The FakeAdaptiveDataSet directly created a static Random (with random
        seed) to compute the variation of chunk sizes. Changing this to an
        injected Random object that can always be initialized with the same
        seed also removed this randomness from the tests.
      
      PiperOrigin-RevId: 353878661
      tonihei committed
    • Make FakeClock fully deterministic. · 2e52c0b8
      This is achieved by only triggering one message at a time. After
      triggering a message we send another to ourselves to know when the
      following message can be triggered.
      
      Other required changes:
       - The messages need to be sorted correctly (by time and creation order)
       - To prevent deadlocks when one thread is waiting for another,
         we need to add new method to Clock to indicate that the current
         thread is about to wait. This then allows us to trigger messages
         from other threads in FakeClock.
       - AnalyticsCollectorTest needed some adjustments:
         - onTimelineChanged now deterministically arrives after the initial
           timline is already known, so some of the period information changes
           from window only to full period info.
         - The playlistOperations test suffers from a bug that the first frame
           is rendered too early and that's why we now get additional events.
      
      PiperOrigin-RevId: 353877832
      tonihei committed
    • Fix FakeClock remove messages behaviour. · a318e56d
      We currently only remove messages that have already been sent
      to the actual Handler, not the pending ones that are only kept
      in the FakeClock. Fix this by also removing matching messages
      from the FakeClock list.
      
      PiperOrigin-RevId: 353877049
      tonihei committed