1. 23 Sep, 2021 4 commits
    • Add clearkey-based DRM playback emulator tests · c927bc83
      These give some documentation-as-code for a clearkey integration with
      ExoPlayer.
      
      #exofixit
      
      PiperOrigin-RevId: 398017708
      ibaker committed
    • Mark MediaItem.Subtitle.mimeType as @Nullable · e0a9540c
      The MIME type is currently required to select a SubtitleDecoder
      implementation in the TextRenderer. Future changes might remove this
      requirement, so we pre-emptively mark the field as @Nullable.
      
      The change in SingleSampleMediaSource ensures the track still maps to
      the TextRenderer, otherwise it shows up as unmapped. Passing null MIME
      type to MediaItem.Subtitle constructor now results in this from
      EventLogger:
      
      TextRenderer [
        Group:0, adaptive_supported=N/A [
          [ ] Track:0, id=null, mimeType=text/x-unknown, language=en, supported=NO_UNSUPPORTED_TYPE
        ]
      ]
      
      PiperOrigin-RevId: 398010809
      ibaker committed
    • Rename `MediaItem.DrmConfiguration.requestHeaders` to add `license` · dd39513a
      Both license and provisioning requests could be considered 'DRM
      requests', and these headers are only sent on license requests, so
      rename them to reflect that.
      
      The old field remains deprecated for backwards compatibility.
      
      PiperOrigin-RevId: 397980021
      ibaker committed
    • Simplify usage of MediaItem.Builder in DashMediaSource · 9932c12d
      This change only calls setters if we need to override the existing value
      (or more specifically, set a value that's absent).
      
      PiperOrigin-RevId: 397979904
      ibaker committed
  2. 22 Sep, 2021 2 commits
  3. 21 Sep, 2021 7 commits
  4. 20 Sep, 2021 9 commits
  5. 17 Sep, 2021 12 commits
    • Make README structure match the desired androidx structure · 0f0e11aa
      PiperOrigin-RevId: 397319051
      kimvde committed
    • Support RFC4566 SDP attribute. · fd6a6ec8
      Issue: #9430
      
      The current supported SDP (RFC2327) spec only allows for alpha-numeric
      characters in the attribute-field. RFC4566 (section 9, token type) allowed
      extra characters, and this CL adds the support.
      
      PiperOrigin-RevId: 397301173
      claincly committed
    • Improve AdtsExtractor#sniff when trying different sync word offsets · 5f3953d3
      The previous implementation did the following (after skipping any ID3
      headers at the start of the stream):
      1. Skip forward byte-by-byte looking for a sync word (0xFFF)
      2. Assume this indicates the start of an ADTS frame and read the size
        a) If frameSize <= 6 immediately return false
      3. Skip forward by frameSize and expect to find another ADTS sync word
         (with no further scanning).
         b) If we find one, great! Loop from step 2.
         a) If we don't find one then assume the **last** sync word we found
            wasn't actually one, so loop from step 1 starting one extra byte
            into the stream. This means we're looking for a sync word we would
            have skipped over in step 3.
      
      The asymmetry here comes from the different handling of frameSize <= 6
      (immediately return false) and frameSize being 'wrong because it doesn't
      lead to another sync word' (scan the file again from the beginning for
      alternative sync words).
      
      With this change both these cases are handled symmetrically (always scan
      for alternative sync words). Step 2a) becomes the same as 3b): Loop back
      to the beginning of the stream with an incremented offset and scan for
      another sync word.
      
      #minor-release
      
      PiperOrigin-RevId: 397285756
      ibaker committed
    • Fix documention for specifying a custom exolist.json · 8d01d66a
      Issue: #9437
      #minor-release
      PiperOrigin-RevId: 397273931
      olly committed
    • Don't call `MediaItem.Builder#setKeySetId` without setting the DRM UUID · 04943db7
      This is known to silently drop the value. This setter is now deprecated
      in favour of `MediaItem.Builder#setDrmConfiguration(MediaItem.DrmConfiguration)`,
      which requires a UUID in order to construct the `DrmConfiguration`
      instance.
      
      Issue: #9378 tracks correctly propagating the DRM info out of
      `DownloadRequest#toMediaItem`.
      PiperOrigin-RevId: 397291013
      ibaker committed
    • Use the new MediaItem.Builder#setDrmConfiguration method · 13827186
      PiperOrigin-RevId: 397290953
      ibaker committed
    • Improve AdtsExtractor#sniff when trying different sync word offsets · 73aece63
      The previous implementation did the following (after skipping any ID3
      headers at the start of the stream):
      1. Skip forward byte-by-byte looking for a sync word (0xFFF)
      2. Assume this indicates the start of an ADTS frame and read the size
        a) If frameSize <= 6 immediately return false
      3. Skip forward by frameSize and expect to find another ADTS sync word
         (with no further scanning).
         b) If we find one, great! Loop from step 2.
         a) If we don't find one then assume the **last** sync word we found
            wasn't actually one, so loop from step 1 starting one extra byte
            into the stream. This means we're looking for a sync word we would
            have skipped over in step 3.
      
      The asymmetry here comes from the different handling of frameSize <= 6
      (immediately return false) and frameSize being 'wrong because it doesn't
      lead to another sync word' (scan the file again from the beginning for
      alternative sync words).
      
      With this change both these cases are handled symmetrically (always scan
      for alternative sync words). Step 2a) becomes the same as 3b): Loop back
      to the beginning of the stream with an incremented offset and scan for
      another sync word.
      
      #minor-release
      
      PiperOrigin-RevId: 397285756
      ibaker committed
    • Remove obsolete imports · 6f728a43
      PiperOrigin-RevId: 397280475
      bachinger committed
    • Fix documention for specifying a custom exolist.json · 985e73de
      Issue: #9437
      #minor-release
      PiperOrigin-RevId: 397273931
      olly committed
    • Move EventListener registration down from Player · 74c6ef9b
      The deprecated `Player.addListener(EventListener)`
      is moved out of Player into its subclasses
      (CastPlayer and ExoPlayer).
      
      This is unlikely to break users because:
       - the method has been deprecated in the last major version
       - the method is still present in the major implementations
      
      If an users is affected, they can either:
       - use ExoPlayer instead of Player
       - (recommended) switch to Player.Listener.
      
      Additionally update the threading guarantees that did not
      reflect the current implementation.
      
      PiperOrigin-RevId: 397272144
      krocard committed
    • Add track type disabling to Track selection parameters · a75f902c
      This will allow to disable video/audio... through the player
      interface.
      
      PiperOrigin-RevId: 397183548
      krocard committed
    • DownloadService: Minor improvements · 4ff4263a
      * Avoid ActivityManager log spam by only calling startForeground once,
        and subsequently updating the notification via NotificationManager.
      * Tweak demo app service to make it a tiny bit easier to swap the Scheduler.
      
      PiperOrigin-RevId: 397179398
      olly committed
  6. 16 Sep, 2021 6 commits