1. 31 May, 2022 2 commits
  2. 30 May, 2022 32 commits
  3. 26 May, 2022 6 commits
    • Fix some inconsistencies in the `MediaItem` API · 591eaef7
      * Rename (via deprecation)
        `MediaItem.DrmConfiguration.Builder#forceSessionsForAudioAndVideoTracks`
        to `setForceSessionsForAudioAndVideoTracks`. This is more consistent
        with existing 'force' method names both in this class and in
        `TrackSelectionParameters.Builder`.
      * Add missing `@Nullable` annotation to the parameter for
        `MediaItem.SubtitleConfiguration.Builder#setMimeType`. This annotation
        is already present on the `MediaItem.SubtitleConfiguration#mimeType`
        field that this setter corresponds to.
      
      PiperOrigin-RevId: 450941336
      ibaker committed
    • Skip SSIM calculation on Nexus 5 API 21. · de1dceed
      There is a problem with the ImageReader formats used by the
      SSIM helper that only occurs for Nexus 5 API 21, so as a workaround
      we can skip the SSIM calculation on Nexus 5 API 21.
      
      This skips just the SSIM calculation (by setting the value to
      1.0 instead and logging). The tests still run when SSIM is skipped
      so that we can detect other failures.
      
      PiperOrigin-RevId: 450903183
      hschlueter committed
    • Replace 640x360 H264 test video with 320x240 H264 video. · 678b6c04
      Decoding and encoding 320x240 H264 video should be supported
      on all devices from Android 5.0 based on CDD requirements.
      https://source.android.com/compatibility/5.0/android-5.0-cdd#5_2_video_encoding
      
      640x360 encoding doesn't seem to be supported on Nexus 5.
      
      PiperOrigin-RevId: 450901715
      hschlueter committed
    • Make `Rating.RATING_UNSET` package-private · c6ed7c4b
      This value is only needed by subclasses of `Rating`, all of which are
      in this package (the `Rating` constructor is already package-private to
      ensure this).
      
      PiperOrigin-RevId: 450886872
      ibaker committed
    • Remove `InvalidResponseCodeException#headerFields` from the stable API · cb042974
      Representing HTTP headers in a `java.util.Map` is error-prone, because
      the names (keys) need to be case-insensitive (per
      [RFC 2616 section 4.2](https://datatracker.ietf.org/doc/html/rfc2616#section-4.2))
      but this is fundamentally technically incompatible with the `Map`
      interface (e.g. with headers `{"key": ["val_1", "val_2"]}` then
      `get("key")` and `get("KeY")` both return the same list, but `size()`
      returns `1`). It also breaks as soon as you copy the `Map` into a
      non-case-insensitive (i.e. normal) `Map` implementation, e.g. Guava's
      `ImmutableMap`. It's risky that a line as 'innocent' as
      `ImmutableMap.copyOf(headers)` could break things so badly.
      
      For now it's enough to keep this field unstable (it's currently the only
      reference to HTTP headers in the stable API). We can consider
      stabilising an improved HTTP header representation in future.
      
      PiperOrigin-RevId: 450708598
      ibaker committed
    • Skip transform4K60 test if 4K decoding is not supported. · d840aa4d
      4K decoding is not supported (not required to be supported) on all
      devices, e.g., Nexus 5 does not support it.
      
      PiperOrigin-RevId: 450682519
      hschlueter committed