1. 15 Apr, 2021 1 commit
  2. 14 Apr, 2021 3 commits
  3. 13 Apr, 2021 12 commits
    • Bump version to 2.13.3 · 0b3a3e6a
      PiperOrigin-RevId: 368235728
      bachinger committed
    • Upgrade JUnit to 4.13.2 · 10c3860b
      PiperOrigin-RevId: 368226576
      ibaker committed
    • Use a single message for setting video renderer outputs · 3032252f
      Previously, we had separate MSG_SET_SURFACE and
      MSG_SET_VIDEO_DECODER_OUTPUT_BUFFER_RENDERER messages for
      setting different types of supported output. Use of these
      constants to switch between outputs during use of a player
      was confusing because not all video renderers support both
      message types.
      
      To switch from VideoDecoderOutputBufferRenderer to a Surface,
      it was sufficient just to send MSG_SET_SURFACE, since all
      video renderers support this and clear any other output that
      might be set. Conversely, to switch in the opposite direction,
      just sending a MSG_SET_VIDEO_DECODER_OUTPUT_BUFFER_RENDERER was
      not sufficient, because not all video renderers handle this
      message to clear any previous output. Hence it was necessary to
      explicitly clear a previously set surface using a separate
      MSG_SET_SURFACE message. Passing two messages to switch the
      output may prevent renderers from implementing the output switch
      efficiently.
      
      This change passes all outputs using a single message type, and
      requires that all renderers treat unsupported outputs as though
      null were passed (i.e., they clear any existing output). There
      are some other miscellaneous improvements:
      
      1. Non-surface outputs are now passed to onRenderedFirstFrame.
         This fixes a bug in SimpleExoPlayer's onRenderedFirstFrame,
         where previously it could not correctly equality check the
         output corresponding to the event to its current output in
         the VideoDecoderOutputBufferRenderer case.
      2. Fix SimpleExoPlayer to report surface size changes for the
         VideoDecoderOutputBufferRenderer case. Even though the
         surface is rendered to indirectly in this case, we can still
         query (and listen to changes to) the surface's size.
      
      PiperOrigin-RevId: 368215850
      olly committed
    • Parse DASH forced_subtitle role · 84282d7c
      #minor-release
      
      Issue: #8781
      PiperOrigin-RevId: 368212289
      ibaker committed
    • Switch DashManifestParser to use Ascii.equalsIgnoreCase · 472b44f4
      String.equalsIgnoreCase depends on the device locale and is discouraged.
      
      #minor-release
      
      PiperOrigin-RevId: 368211677
      ibaker committed
    • Ensure minDurationToRetainAfterDiscard >= minDurationForQualityIncrease · 3bd59f8c
      If this condition isn't true, the player may enter a cycle of discarding
      and reloading the same format. As minDurationToRetainAfterDiscard is a
      parameter likely left at its default, and minDurationForQualityIncrease
      is likely adjusted more often, we correct the value in the problematic
      case and log a warning instead of asserting it outright to prevent
      unnecessary app breakages.
      
      Issue: #8807
      PiperOrigin-RevId: 368207417
      tonihei committed
    • Use MediaItem.DEFAULT_MEDIA_ID as default media ID · cc26a92e
      PiperOrigin-RevId: 368204261
      bachinger committed
    • Clarify documentation on C.SELECTION_FLAG_FORCED · 1d3f72c9
      Issue: #8755
      PiperOrigin-RevId: 368204094
      ibaker committed
    • Pause and resume GLSurfaceView instances in player views · ffc2a47d
      This is the right thing to do, as per the GLSurfaceView documentation.
      This adds (previously omitted) calls to VideoDecoderGLSurfaceView.
      
      PiperOrigin-RevId: 368202523
      olly committed
    • Core/UI decoupling: Remove setUseSensorRotation from views · 72c77875
      Other properties of SphericalGLSurfaceView (e.g., setDefaultStereoMode)
      are not plumbed through the PlayerView components, and it doesn't scale
      to plumb through all properties of all of the SurfaceView types.
      
      Applications can instead do:
      
      ```
      ((SphericalGLSurfaceView) playerView.getVideoSurfaceView())
          .setUseSensorRotation(useSensorRotation);
      ```
      
      PiperOrigin-RevId: 368196537
      olly committed
    • Remove obsolete cronet file references · 353912c8
      The cronet extension now uses gradle dependencies.
      
      PiperOrigin-RevId: 368195878
      andrewlewis committed
    • Remove unused resources from deprecated GVR module · a79fbb95
      PiperOrigin-RevId: 368014991
      olly committed
  4. 12 Apr, 2021 4 commits
  5. 09 Apr, 2021 12 commits
    • Fix errors when generating javadoc · 253c8ce2
      PiperOrigin-RevId: 367596648
      gyumin committed
    • Remove warning suppression. · 1dd96cd8
      This was added in https://github.com/google/ExoPlayer/commit/9609af3c23383f2fd5571662d271c3013875705d as part of a LSC.
      
      The RequiresNonNull annotation doesn't work anymore (it doesn't
      recognize the outer class member and instead tries to find
      the same variable on the inner class). So instead of suppressing
      the warning of the non-fulfilled precondition, we can just
      check the non-nullness directly and remove the precondition.
      
      PiperOrigin-RevId: 367593941
      tonihei committed
    • Upgrade IMA SDK dependency to 3.23.0 · 3ea694b1
      This brings in another fix for `NullPointerExceptions` within `WebView` callbacks in the IMA SDK, related to companion ads.
      
      Issue: #8447
      
      #minor-release
      
      PiperOrigin-RevId: 367591047
      andrewlewis committed
    • Convergence: Continue decoupling UI from Core · 199b9d16
      Move AdsLoader inner classes that are also required by
      the UI module into common.
      
      PiperOrigin-RevId: 367414679
      olly committed
    • Package VideoDecoderGLSurfaceView a little more nicely · 53166e9a
      The main change here is that VideoDecoderGLSurfaceView now implements
      VideoDecoderOutputBufferRenderer directly. This avoids SimpleExoPlayer
      having to cast to VideoDecoderGLSurfaceView, which will be necessary
      if VideoDecoderGLSurfaceView is moved to the UI module. Instead, the
      player can cast directly to VideoDecoderOutputBufferRenderer, which
      could be moved to the Common module.
      
      The renderer is also moved to be an inner class, since it's not used
      anywhere else and since doing this makes it a little easier to move
      things around.
      
      PiperOrigin-RevId: 367398147
      olly committed
    • Add missing default implementations to Player.Listener · d24cec51
      PiperOrigin-RevId: 367238434
      gyumin committed
    • Reduce the diff between different versions of GTS tests · 61a5ca48
      This means there are fewer changes required when exporting these tests
      as part of the GTS suite run by device manufacturers.
      
      PiperOrigin-RevId: 367230977
      ibaker committed
    • Convergence: Continue decoupling UI from Core · d853379b
      Move CaptionStyleCompat to the UI module, where it's used
      
      PiperOrigin-RevId: 367223891
      olly committed
    • Remove unnecessary @Nullable in exception message · 2434d4e6
      PiperOrigin-RevId: 367204382
      jaewan committed
    • Add Period.isPlaceholder to fix preparation issues for concatenation. · c455bad8
      We added a source that allows mixed placeholder and non-placeholder
      periods, but have no way to denote that in the Timeline because the
      placeholder flag only exists on Window level. This causes a bug if
      the first item in a concatenation has a window-period offset and the
      player can't detect whether it's still a placeholder or not.
      
      Adding this flag to Period allows the player to detect this reliably.
      In addition we need to make sure that re-resolving pending positions
      only happens for the first placeholder period where the window-offset
      can actually change. As all subsequent periods have to start at position
      0, so they don't need to be re-resolved (and shouldn't).
      
      PiperOrigin-RevId: 367171518
      tonihei committed
    • Fix 1 ErrorProneStyle finding: · ce4c655c
      * @Nullable is not a TYPE_USE annotation, so should appear before any modifiers and after Javadocs.
        (see go/java-style#s4.8.5-annotations)
      
      This CL looks good? Just LGTM and Approve it!
      This CL doesn’t look good? This is what you can do:
      * Suggest a fix on the CL (go/how-to-suggest-fix).
      * Revert this CL, by replying "REVERT: <provide reason>"
      * File a bug under go/error-prone-bug for category ErrorProneStyle if the change looks generally problematic.
      * Revert this CL and not get a CL that cleans up these paths in the future by
      replying "BLOCKLIST: <provide reason>". This is not reversible! We recommend to
      opt out the respective paths in your CL Robot configuration instead:
      go/clrobot-opt-out.
      
      This CL was generated by CL Robot - a tool that cleans up code findings
      (go/clrobot). The affected code paths have been enabled for CL Robot in //depot/google3/java/com/google/android/libraries/exoplayer/METADATA which is reachable following include_presubmits from //depot/google3/third_party/java_src/android_libs/exoplayer/METADATA.
      Anything wrong with the signup? File a bug at go/clrobot-bug.
      
      #codehealth
      
      PiperOrigin-RevId: 367053059
      olly committed
    • Call new onPositionDiscontinuity callback in CastPlayer · 4c33c511
      PiperOrigin-RevId: 367020270
      bachinger committed
  6. 06 Apr, 2021 8 commits