1. 05 Apr, 2023 10 commits
    • HDR: Fix exportUnexpectedColorInfo. · 167677ec
      PiperOrigin-RevId: 521427239
      huangdarwin committed
    • Improve check for invalid connection request · 694d690b
      The check currently relies on the default value of 0 returned if the
      Bundle doesn't define a pid. But in some cases, like Robolectric unit tests,
      0 is a possible pid. The check can be improved by directly asserting that
      the value is defined.
      
      PiperOrigin-RevId: 521414649
      tonihei committed
    • Add test for clipped media items concatenation · 0bfe4386
      This was broken and has been fixed in <unknown commit>.
      
      PiperOrigin-RevId: 521380415
      kimvde committed
    • Add live ad breaks for DASH multi-period streams · 95e0763e
      This includes:
      
      - Add an ad for each LOADED event of the SDK by taking the duration
        of the ad from the media structure to exactly match the start position
        of ads and then use `addLiveAdBreak()` that is used for HLS live already.
      - When the refreshed content timeline arrives, possibly correct
        the duration of an ad that has been inserted while the period duration was
        still unknown (last period of the live timeline).
      - When an ad period is removed the ad group needs to be put into a condition
        that allows continuing playback.
      
      PiperOrigin-RevId: 520919236
      bachinger committed
    • Fix and simplify timestamps handling · 3a5c4277
      Handling of the stream offset and start position was unnecessarily
      complex and even incorrect. It was going to be an issue for
      concatenation of video and image input.
      
      The stream offset is the offset added before decoding/encoding to
      make sure it doesn’t fail in case of negative timestamps (which do
      rarely occur).
      The start position is equal to the stream offset, plus the clipping
      start time if the media is clipped.
      
      Before this change:
      - Samples were offset by the start position before decoding, and this
      offset was removed before muxing.
      - The startPosition of the first MediaItem in a sequence was used for
      all the MediaItems in this sequence (which is incorrect).
      - The stream offset was removed before applying the GL effects and
      added back before encoding so that it was not visible to the OpenGL
      processing.
      
      After this change:
      - The start position is subtracted in the AssetLoader, so that the
      downstream components don’t have to deal with the stream offsets and
      start positions.
      - Decoded samples with negative timestamps are not passed to the
      SamplePipelines. The MediaMuxer doesn’t handle negative timestamps
      well. If a stream is 10 secondes long and starts at timestamp -2
      seconds, the output will only contain the samples corresponding to the
      first 8 (10 - 2) seconds. It won’t contain the last 2 seconds of the
      stream. It seems acceptable to remove the first 2 seconds instead.
      
      PiperOrigin-RevId: 520916464
      kimvde committed
    • Remove adjustable ftyp functionality from Mp4Muxer · bf2d311b
      PiperOrigin-RevId: 520886975
      sheenachhabra committed
    • Fix emulator tests flakiness · 9cdf60d7
      Releasing the player once a sequence has ended seems to make our
      emulator tests flaky. Comment out until we find the cause. The player
      will still be released from TransformerInternal, when the export ends.
      
      PiperOrigin-RevId: 520886181
      kimvde committed
    • Add warning logs if `DefaultDrmSessionManager` is used on wrong thread · 7ca96684
      Issue: google/ExoPlayer#11008
      PiperOrigin-RevId: 520864579
      ibaker committed
    • ...Suppress `MissingSuperCall` warnings on onBackPressed()... · 5af28a98
      PiperOrigin-RevId: 520709134
      Googler committed
    • Remove mediaTimeOffsetMs from EventDispatcher · d7010da6
      The `DashMediaSource` wrongly added an offset to the media times set
      to the `MediaLoadData`. With this the `startTimeMS` and `endTimeMs`
      don't represent the positions in the period but in the stream.
      
      `DashMediaSource` was the only call site that was setting the offset
      to a non-zero value. So if we are using 0 for the `DashMediaSource`
      as well, the offset is redundant and we can remove it everywhere.
      
      PiperOrigin-RevId: 520682026
      bachinger committed
  2. 30 Mar, 2023 30 commits