1. 17 Jan, 2023 15 commits
  2. 10 Jan, 2023 13 commits
  3. 04 Jan, 2023 12 commits
    • Throw a ParserException instead of a NullPointerException if the sample table… · d8ea770e
      Throw a ParserException instead of a NullPointerException if the sample table (stbl) is missing a required sample description (stsd).
      
      As per the javadoc for AtomParsers.parseTrack, ParserException should be "thrown if the trak atom can't be parsed."
      
      PiperOrigin-RevId: 499522748
      Googler committed
    • Optimise bundling for `Timeline.Window` and `Timeline.Period` · 790e27d9
      Improves the time taken to construct playerInfo from its bundle from ~400 ms to ~300 ms.
      
      Also made `Timeline.Window.toBundle(boolean excludeMediaItem)` public as it was required to assert a condition in tests.
      
      PiperOrigin-RevId: 499512353
      rohks committed
    • Rename the SamplePipelines · cfc61655
      The old names are not really correct anymore because:
      - The Audio/VideoTranscodingSamplePipelines do not decode anymore.
      - The pipelines now mux the encoded data.
      
      PiperOrigin-RevId: 499498446
      kimvde committed
    • Improve encoder resolution capability checking. · 37f8a0bb
      Whilst testing fallback functionality, I found that we were
      aggressively reducing the resolution if it was not supported. A quick
      test found that we could reduce by a much smaller increments.
      Performance wise it appears these checks are incredibly quick.
      
      The code for checking supported sizes was duplicated, with one case
      having a bug because of this duplication (2/3 case). This CL abstracts
      this into a loop.
      
      PiperOrigin-RevId: 499497646
      samrobinson committed
    • Merge BaseSamplePipeline and SamplePipeline · 2eb25543
      PiperOrigin-RevId: 499469006
      kimvde committed
    • Check bundles in `MediaItem` to verify keys are skipped · 0512164f
      Added another check in each of these tests to make sure we don't add keys to bundle for fields with default values.
      
      Also fixed comments of similar changes in `AdPlaybackStateTest` and `MediaMetadataTest`.
      
      PiperOrigin-RevId: 499463581
      rohks committed
    • Move video decoding to AssetLoader · d4491427
      PiperOrigin-RevId: 499454273
      kimvde committed
    • Reduce flakiness of GL release test · ef016832
      Based on experimentation it seems that buffers can occasionally (roughly 1% of test runs) be dropped when rendering off-screen from EGL on the emulator. Specifically, in this test, sometimes after rendering three buffers with distinct timestamps only the first and third buffers' timestamps are handled in the `ImageReader`'s image available callback causing the assertion checking all frames rendered to fail. This behavior seems to be independent of the nanosecond presentation time attached to the buffers (as expected for off-screen rendering).
      
      Introducing a pause of 1 second between rendering each frame reduces the flake rate to around 1/2000. This increases the run time of some of the tests, so this change also removes the 5 second `FRAME_PROCESSING_WAIT_MS` (it seems to be unnecessary when rendering off-screen) and instead uses a latch to wait until the frame processor has handled 'end of stream'.
      
      PiperOrigin-RevId: 499440591
      andrewlewis committed
    • Demo app fixes · fed93723
      - Do not fail silently if selectedEffects is null.
      - Do not add an empty overlay effect to the Transformer to avoid
        transcoding video all the time.
      
      PiperOrigin-RevId: 499168759
      kimvde committed
    • Remove unnecessary exceptions in tests · 2cda6449
      PiperOrigin-RevId: 499160043
      kimvde committed
    • Misc small fixes · bd0d61d8
      - Improve AssetLoader Javadoc
      - Fix Javadoc of sample pipelines
      - Improve Javadoc of Transformer.startTransformation
      - Move thread hops for Transformer listener callbacks to
        TransformerInternal
      
      PiperOrigin-RevId: 499156604
      kimvde committed
    • Deprecated onTransformationError methods are not called. · 4541db35
      When a listener method is deprecated, the new method should (by
      default) called through to the deprecated one. This is because any
      class that implements the method that is now deprecated needs to still
      receive that callback.
      
      It appears when onTransformationError(MediaItem, Exception) was
      deprecated in favour of onTransformationError(MediaItem,
      TransformationException), this deprecation was the wrong way round, and
      the newer callback - onTransformationError(MediaItem,
      TransformationResult, TransformationException) continued this mistake.
      
      This CL now corrects this.
      
      PiperOrigin-RevId: 498221504
      samrobinson committed