Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

r2.18.2 #10806

Merged
merged 360 commits into from Nov 23, 2022
Merged

r2.18.2 #10806

merged 360 commits into from Nov 23, 2022
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Aug 1, 2022

  1. Implement RGBA color matrices processor

    * Transform frame colors using a defined RGBA Matrix to apply filters.
    
    PiperOrigin-RevId: 464523581
    (cherry picked from commit 23f34f8)
    leonwind authored and microkatz committed Aug 1, 2022
    Copy the full SHA
    5668c8a View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2022

  1. Create effect module.

    PiperOrigin-RevId: 464767396
    (cherry picked from commit 26dcdcf)
    Googler authored and microkatz committed Aug 2, 2022
    Copy the full SHA
    0b0475e View commit details
    Browse the repository at this point in the history
  2. Update Leanback library from androidx-platform-dev with build#8803384

    TGP: https://fusion2.corp.google.com/presubmit/tap/459592967/OCL:459592967:BASE:464692555:1659412331108:1ed6eb4e/targets
    
    If you need additional help investigating this issue, please consider using g/androidx-discuss to reach the wider Jetpack library owner and client community. For general questions about prebuilt drops, refer to go/androidx/g3_faq
    
    PiperOrigin-RevId: 464852576
    (cherry picked from commit a3de13c)
    Googler authored and microkatz committed Aug 2, 2022
    Copy the full SHA
    368d282 View commit details
    Browse the repository at this point in the history

Commits on Aug 3, 2022

  1. Move effects functionality out of transformer to effects module.

    PiperOrigin-RevId: 465038852
    (cherry picked from commit 707b061)
    Googler authored and microkatz committed Aug 3, 2022
    Copy the full SHA
    89a2685 View commit details
    Browse the repository at this point in the history
  2. Clean up FrameProcessor TODOs.

    PiperOrigin-RevId: 465044342
    (cherry picked from commit 245326a)
    Googler authored and microkatz committed Aug 3, 2022
    Copy the full SHA
    ff35958 View commit details
    Browse the repository at this point in the history
  3. Clean up NOP constructor lines in RTP readers

    PiperOrigin-RevId: 465067191
    (cherry picked from commit 13e9ec9)
    claincly authored and microkatz committed Aug 3, 2022
    Copy the full SHA
    19f6b54 View commit details
    Browse the repository at this point in the history
  4. Fix saving previous debugSurfaceView in FinalMatrixTPWrapper.

    PiperOrigin-RevId: 465067306
    (cherry picked from commit bbb7b1c)
    Googler authored and microkatz committed Aug 3, 2022
    Copy the full SHA
    8d1b91a View commit details
    Browse the repository at this point in the history
  5. Avoid encoder default color info when tone-mapping

    The encoder color info [defaults](https://cs.android.com/android/platform/superproject/+/master:frameworks/av/media/libstagefright/foundation/ColorUtils.cpp;l=377;drc=891c19ccfa4953b5e5f7b87118e007b994d8074c) to a value that depends on the input resolution, but when tone-mapping is enabled we should always get BT.709 color space. Hard-code this constant for now to avoid behavior depending on the resolution. A future change should use the decoder output media format to populate the color info.
    
    PiperOrigin-RevId: 465070378
    (cherry picked from commit 40a28d5)
    andrewlewis authored and microkatz committed Aug 3, 2022
    Copy the full SHA
    dce7c45 View commit details
    Browse the repository at this point in the history
  6. Remove clamp function in contrast fragment shader.

    * OpenGL automatically clamps the output colors to the [0, 1] interval.
    
    PiperOrigin-RevId: 465071999
    (cherry picked from commit 30fab8c)
    leonwind authored and microkatz committed Aug 3, 2022
    Copy the full SHA
    d7177ee View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2022

  1. AudioOffload recovery.

    Avoids disabling Offload on a write error, and instead relies on this being disabled on the AudioTrack init. It will no longer recover by disabling offload.
    
    PiperOrigin-RevId: 465248917
    (cherry picked from commit 2fbe1bb)
    yschimke authored and microkatz committed Aug 4, 2022
    Copy the full SHA
    318d838 View commit details
    Browse the repository at this point in the history
  2. Expose AudioOffload track state.

    Adds a new event to AudioOffloadListener to get the offload state of the track, which indicates when software decoding is taking place.
    
    PiperOrigin-RevId: 465264362
    (cherry picked from commit fe2b846)
    yschimke authored and microkatz committed Aug 4, 2022
    Copy the full SHA
    6865cd4 View commit details
    Browse the repository at this point in the history
  3. Factor out RTP timestamp to sample time method

    PiperOrigin-RevId: 465337074
    (cherry picked from commit a1be6d6)
    claincly authored and microkatz committed Aug 4, 2022
    Copy the full SHA
    e9e7fb4 View commit details
    Browse the repository at this point in the history
  4. HDR: Add comment to clarify lack of support HDR10 for AVC

    PiperOrigin-RevId: 465360186
    (cherry picked from commit e63d594)
    dway123 authored and microkatz committed Aug 4, 2022
    Copy the full SHA
    acf4080 View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2022

  1. Add RgbAdjustment class to build RgbaMatrices

    * Add RgbaMatrix interface implementation.
    * Add Builder class for easy adjustments.
    * Adjust existing RgbaMatrixPixelTests to use new RgbAdjustment class.
    
    PiperOrigin-RevId: 465545429
    (cherry picked from commit 6502fce)
    leonwind authored and microkatz committed Aug 5, 2022
    Copy the full SHA
    e8a4cce View commit details
    Browse the repository at this point in the history
  2. Use multiple output frames in transformer MediaPipe demo pre API 23.

    PiperOrigin-RevId: 465545764
    (cherry picked from commit 6da0a35)
    Googler authored and microkatz committed Aug 5, 2022
    Copy the full SHA
    db2545b View commit details
    Browse the repository at this point in the history
  3. Fix frame processor reference

    PiperOrigin-RevId: 465562260
    (cherry picked from commit aafa31e)
    andrewlewis authored and microkatz committed Aug 5, 2022
    Copy the full SHA
    a0efd08 View commit details
    Browse the repository at this point in the history
  4. Make AudioTrackBufferSizeProvider public.

    Was getting "java.lang.IllegalAccessError: Illegal class access" in debug app.
    
    PiperOrigin-RevId: 465562541
    (cherry picked from commit c09b34a)
    yschimke authored and microkatz committed Aug 5, 2022
    Copy the full SHA
    7218cb9 View commit details
    Browse the repository at this point in the history
  5. Fix ConcurrentHashMap usage in demo MediaPipeProcessor.

    PiperOrigin-RevId: 465563540
    (cherry picked from commit 6e4fc47)
    Googler authored and microkatz committed Aug 5, 2022
    Copy the full SHA
    03b490b View commit details
    Browse the repository at this point in the history
  6. Clarify SSIM request method name

    `requestCalculateSsim` more clearly represents the intention of the caller.
    
    Also rephrase the javadoc to simplify it and make it more precise.
    
    PiperOrigin-RevId: 465575578
    (cherry picked from commit d90d7d3)
    andrewlewis authored and microkatz committed Aug 5, 2022
    Copy the full SHA
    1db2c74 View commit details
    Browse the repository at this point in the history
  7. Throw if tone-mapping is requested but not enabled

    In the case where this check fails, the downstream frame processor chain won't be able to handle the incoming (SDR) data anyway as we've already set it up for HDR.
    
    PiperOrigin-RevId: 465584814
    (cherry picked from commit 0e99d28)
    andrewlewis authored and microkatz committed Aug 5, 2022
    Copy the full SHA
    01a4188 View commit details
    Browse the repository at this point in the history
  8. Switch @param to @code tags in RgbAdjustment.

    PiperOrigin-RevId: 465591877
    (cherry picked from commit 650a9d2)
    leonwind authored and microkatz committed Aug 5, 2022
    Copy the full SHA
    1234470 View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2022

  1. Add support for multiple mid-track tempo changes

    PiperOrigin-RevId: 466018462
    (cherry picked from commit 4725cff)
    Hamzah-z authored and microkatz committed Aug 8, 2022
    Copy the full SHA
    98dd4f8 View commit details
    Browse the repository at this point in the history
  2. Remove unused log tag constant

    PiperOrigin-RevId: 466025324
    (cherry picked from commit 273cf08)
    andrewlewis authored and microkatz committed Aug 8, 2022
    Copy the full SHA
    dfc04d8 View commit details
    Browse the repository at this point in the history
  3. Add a custom MIME type for MIDI

    PiperOrigin-RevId: 466032455
    (cherry picked from commit 3aa99d5)
    Hamzah-z authored and microkatz committed Aug 8, 2022
    Copy the full SHA
    fb85488 View commit details
    Browse the repository at this point in the history
  4. HDR: Input ColorInfo to the FrameProcessor.

    This allows the GlEffectsFrameProcessor to later handle HLG and PQ
    differently, or limited and full color range differently.
    
    No functional change intended in this CL.
    
    PiperOrigin-RevId: 466070764
    (cherry picked from commit e444eaa)
    dway123 authored and microkatz committed Aug 8, 2022
    Copy the full SHA
    2503c0e View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2022

  1. Split GlTextureProcessor.Listener into input/output/error listener.

    This simplifies ChainingGlTextureProcessor as it now only connects a
    consuming and a producing GlTextureProcessor rather than a previous,
    current, and next GlTextureProcessor.
    
    Also use default no-op implementations of the listeners in
    SingleFrameGlTextureProcessor and MediaPipeProcessor to avoid
    null-checks.
    
    PiperOrigin-RevId: 466301642
    (cherry picked from commit a2166a4)
    Googler authored and microkatz committed Aug 9, 2022
    Copy the full SHA
    c33a8e3 View commit details
    Browse the repository at this point in the history
  2. HDR: Rename ColorInfo#isHdr to isTransferHdr.

    While HDR is most closely tied to the color transfer (ex.
    COLOR_TRANSFER_SDR is the only one explicitly mentioning dynamic
    range), technically color spaces may be associated with HDR as well,
    like BT.2020 commonly being used for HDR rather than BT.709 for SDR.
    
    Therefore, it's more specific to mention just that the transfer is HDR.
    
    PiperOrigin-RevId: 466316960
    (cherry picked from commit 7075f78)
    dway123 authored and microkatz committed Aug 9, 2022
    Copy the full SHA
    c0bef3d View commit details
    Browse the repository at this point in the history
  3. Remove times(1) from effect and transformer tests as it is the default.

    PiperOrigin-RevId: 466324322
    (cherry picked from commit 95a7dca)
    Googler authored and microkatz committed Aug 9, 2022
    Copy the full SHA
    f18e0f8 View commit details
    Browse the repository at this point in the history
  4. Add JSyn library build instructions for the MIDI module

    PiperOrigin-RevId: 466370644
    (cherry picked from commit 96a2b14)
    Hamzah-z authored and microkatz committed Aug 9, 2022
    Copy the full SHA
    e138a2f View commit details
    Browse the repository at this point in the history
  5. Demo: Add legacy external storage permission for intents.

    Without this permission, files in `/sdcard` or other directories cannot be read by the demo, as they're not in the transformer demo's scoped storage container.
    
    For more information, see https://developer.android.com/training/data-storage/use-cases
    
    Tested by uninstalling and re-installing the demo app, granting permission by
    starting a transformation, and launching an intent using a local file in `/sdcard`
    to start another transformation. Without this CL, this threw an error, and with
    this CL it succeeded.
    
    PiperOrigin-RevId: 466399023
    (cherry picked from commit 051dee6)
    dway123 authored and microkatz committed Aug 9, 2022
    Copy the full SHA
    b84945d View commit details
    Browse the repository at this point in the history
  6. HDR: Update experimental_setEnableHdrEditing javadoc.

    Previously, this feature interpreted SDR signals as HDR when called. Now, only HDR
    streams are interpreted as HDR, so the javadoc should be updated. Not yet removing
    this method, as there are still some loose ends to finish up (ex. PQ support, e2e
    tests).
    
    PiperOrigin-RevId: 466425738
    (cherry picked from commit 2d2926b)
    dway123 authored and microkatz committed Aug 9, 2022
    Copy the full SHA
    dee5c56 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2022

  1. Avoid spinning in between intermediate texture processors.

    This change adds a new method onReadyToAcceptInputFrame to
    GlTextureProcesssor.InputListener and changes maybeQueueInputFrame
    to queueInputFrame, removing the boolean return value.
    This avoids the re-trying in ChainingGlTextureProcessorListener
    by allowing it to only feed frames from the producing to the consuming
    GlTextureProcessor when there is capacity.
    
    MediaPipeProcessor still needs re-trying when processing isn't 1:1.
    
    PiperOrigin-RevId: 466626369
    (cherry picked from commit 9c366b3)
    Googler authored and microkatz committed Aug 10, 2022
    Copy the full SHA
    4a4bfc7 View commit details
    Browse the repository at this point in the history
  2. HDR: Clarify tone mapping fallback.

    createSupportedTransformationRequest is more accurate than
    createFallbackTransformationRequest, as a TransformationRequest will be returned
    regardless of whether any fallback is applied.
    
    PiperOrigin-RevId: 466641277
    (cherry picked from commit 70972bb)
    dway123 authored and microkatz committed Aug 10, 2022
    Copy the full SHA
    3e4ca2c View commit details
    Browse the repository at this point in the history
  3. Fix ChainingGlTextureProcessorListener field name.

    PiperOrigin-RevId: 466735554
    (cherry picked from commit 43aa89a)
    Googler authored and microkatz committed Aug 10, 2022
    Copy the full SHA
    4b3f001 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2022

  1. Add timeout for ad to load.

    In some cases, the IMA SDK fails to call the expected loadAd
    event to load the next ad to play. This is (potentially) the
    only remaining case where playback can get stuck due to missing
    calls from IMA as the player doesn't even have a MediaSource at
    this stage and is only waiting for IMA to provide the ad URL.
    
    We can reuse the existing adPreloadTimeoutMs that was added for
    a similar purpose (when preloading the first ad in the group).
    The JavaDoc matches this purpose as well and the default timeout
    is appropriate since we expect to get the loadAd call immediately.
    
    Issue: #10510
    PiperOrigin-RevId: 466953617
    (cherry picked from commit 91fc5c4)
    tonihei authored and microkatz committed Aug 11, 2022
    Copy the full SHA
    5cc23fd View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2022

  1. Add additional build flags for ffmpeg on "arm64-v8a"

    From NDK 23.1.7779620 and above, the arm64-v8a ABI needs additional
    build flags to correctly link the ffmpeg libraries.
    
    Issue: #9933
    PiperOrigin-RevId: 467161973
    (cherry picked from commit 6ea1d0e)
    tonihei authored and microkatz committed Aug 12, 2022
    Copy the full SHA
    ea1e26d View commit details
    Browse the repository at this point in the history
  2. Avoid spinning while queueing input to ExternalTextureProcessor.

    This change adds ExternalTextureManager which implements
    InputListener to only queue input frames to the
    ExternalTextureProcessor when it is ready to accept an input
    frame. This replaces the old retry-logic in GlEffectsFrameProcessor.
    
    Before this change, the retrying in GlEffectFrameProcessor wasted
    CPU time if input becomes available faster than the
    ExternalTextureProcessor can process it.
    
    PiperOrigin-RevId: 467177659
    (cherry picked from commit 06ce5ec)
    Googler authored and microkatz committed Aug 12, 2022
    Copy the full SHA
    2697916 View commit details
    Browse the repository at this point in the history
  3. Refactor RgbaMatrix to RgbMatrix.

    * Rename all Rgba instances to Rgb.
    * Remove alpha value from the RGBA Matrices and apply the 4x4 matrix
    only to the R, G, B channels.
    * Restore the alpha from the input unchanged.
    
    PiperOrigin-RevId: 467208888
    (cherry picked from commit 80f9ad9)
    leonwind authored and microkatz committed Aug 12, 2022
    Copy the full SHA
    befcc01 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2022

  1. Increase pixel difference threshold

    PiperOrigin-RevId: 467610621
    (cherry picked from commit ec7936f)
    andrewlewis authored and microkatz committed Aug 15, 2022
    Copy the full SHA
    9b6d997 View commit details
    Browse the repository at this point in the history
  2. Add initial version of SimpleBasePlayer

    This base class will simplify the implementation of custom
    Player classes. The current version only supports
    available commands and playWhenReady handling.
    
    PiperOrigin-RevId: 467618021
    (cherry picked from commit 9a7fde8)
    tonihei authored and microkatz committed Aug 15, 2022
    Copy the full SHA
    d2000fd View commit details
    Browse the repository at this point in the history
  3. Update CMake version for AV1 extension

    The specified CMake version doesn't work with the latest
    Android Studio releases. Updating to a more recent version
    fixes the problem.
    
    Issue: #9933
    PiperOrigin-RevId: 467634063
    (cherry picked from commit 80b635e)
    tonihei authored and microkatz committed Aug 15, 2022
    Copy the full SHA
    770839f View commit details
    Browse the repository at this point in the history
  4. Increase max sample size for HEVC.

    Increase the estimated max sample size for HEVC by 2x, and set a minimum
    size of 2MB. The 2MB will be applied for resolutions up to 1080p, after
    which the new calculation takes effect. This is in par with the
    platform's HEVC software decoder.
    
    PiperOrigin-RevId: 467641494
    (cherry picked from commit d3d5ffc)
    christosts authored and microkatz committed Aug 15, 2022
    Copy the full SHA
    909953b View commit details
    Browse the repository at this point in the history
  5. Allow high-priority tasks to be executed before other tasks.

    This is needed as a pre-requisite for allowing MCVR to control
    FrameProcessor frame release for previewing.
    
    Submitting a high-priority task is conceptually different from
    posting at the front of a single queue of tasks, as the high-priority
    tasks are executed in FIFO order among themselves. This will ensure
    that frame release tasks submitted in close succession are executed
    in the order they are submitted but before any lower priority tasks.
    
    PiperOrigin-RevId: 467675137
    (cherry picked from commit 4d81a6d)
    Googler authored and microkatz committed Aug 15, 2022
    Copy the full SHA
    6d09959 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2022

  1. HDR: Update limited range and add full range YUV to RGB color transfo…

    …rms.
    
    PiperOrigin-RevId: 467910378
    (cherry picked from commit 130a536)
    dway123 authored and microkatz committed Aug 16, 2022
    Copy the full SHA
    c5b4cbe View commit details
    Browse the repository at this point in the history
  2. Define CueGroup.EMPTY_TIME_ZERO for convenience

    We create an empty CueGroup in many places as default or
    where none is needed. Instead, we can define a constant
    for this purpose and reuse it.
    
    PiperOrigin-RevId: 467944841
    (cherry picked from commit 29208ec)
    tonihei authored and microkatz committed Aug 16, 2022
    Copy the full SHA
    d5710d3 View commit details
    Browse the repository at this point in the history
  3. Compact a RGB Matrix chain into a singular RGB Matrix.

    PiperOrigin-RevId: 468013019
    (cherry picked from commit 977370e)
    leonwind authored and microkatz committed Aug 16, 2022
    Copy the full SHA
    a4175b8 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2022

  1. Fix typo

    PiperOrigin-RevId: 468152718
    (cherry picked from commit c6a10ad)
    leonwind authored and microkatz committed Aug 17, 2022
    Copy the full SHA
    f555ed4 View commit details
    Browse the repository at this point in the history
  2. Defensively cancel frame processing tasks on error.

    FrameProcessingTaskExecutor should be released on error.
    There can be a delay until this happens, so
    FrameProcessingTaskExecutor will cancel any pending tasks
    and drop new tasks until it is released.
    
    PiperOrigin-RevId: 468171820
    (cherry picked from commit d11c3be)
    Googler authored and microkatz committed Aug 17, 2022
    Copy the full SHA
    c65acc0 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2022

  1. HDR: Clamp YUV to RGB conversion.

    Manually tested using transformer demo HLG videos. Before this CL, RGB values after the YUV to RGB conversion reached up to 1.025. After this CL, RGB values correctly clamp at 1.0.
    
    PiperOrigin-RevId: 468426092
    (cherry picked from commit 32ee448)
    dway123 authored and microkatz committed Aug 18, 2022
    Copy the full SHA
    4c36dae View commit details
    Browse the repository at this point in the history
  2. Allow frame release to be controlled outside FrameProcessor.

    Adds a method to FrameProcessor.Listener to be called when an
    output frame is available and a method releaseOutputFrame in
    FrameProcessor allowing the caller to trigger release of the
    oldest available output frame at a given timestamp. Late frames
    or frames with unset release times are dropped in the
    FinalMatrixTransformationProcessorWrapper.
    
    More than one output frame can become available before they are
    released if the penultimate GlTextureProcessor is capable of producing
    multiple output frames. Processing continues while waiting for
    releaseOutputFrame to be called. Frame release tasks are prioritized
    over other tasks.
    
    PiperOrigin-RevId: 468473072
    (cherry picked from commit 2c06354)
    Googler authored and microkatz committed Aug 18, 2022
    Copy the full SHA
    884e376 View commit details
    Browse the repository at this point in the history
  3. Fix the command sample size given to trackOutput.

    Remove the manual overwriting of Note ON events that have 0 velocity with Note OFF. JSyn handles this already.
    
    - The implementation of "running status" means that the amount of bytes read from the file differ from the size of the sample that ends up in the decoder. The decoder sample contains the applied running status (status of previous event), which the file bytes don't contain.
    
    PiperOrigin-RevId: 468537659
    (cherry picked from commit 53218b5)
    Hamzah-z authored and microkatz committed Aug 18, 2022
    Copy the full SHA
    5c95b41 View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2022

  1. Change onOutputFrameAvailable timestamp from nanos to micros.

    Upstream timestamps from the decoder are also in microseconds,
    so using microseconds here is consistent with that.
    
    PiperOrigin-RevId: 468659099
    (cherry picked from commit 4e7f9c5)
    Googler authored and microkatz committed Aug 19, 2022
    Copy the full SHA
    60d3e8e View commit details
    Browse the repository at this point in the history
  2. Add device info to CastPlayer

    Issue: androidx/media#142
    PiperOrigin-RevId: 468666737
    (cherry picked from commit d6442f6)
    marcbaechinger authored and microkatz committed Aug 19, 2022
    Copy the full SHA
    f933666 View commit details
    Browse the repository at this point in the history
  3. Reassign TODO to new bug.

    PiperOrigin-RevId: 468672505
    (cherry picked from commit 010ecec)
    Googler authored and microkatz committed Aug 19, 2022
    Copy the full SHA
    5bdb165 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2022

  1. Handle initial RTSP seek

    PiperOrigin-RevId: 469143613
    (cherry picked from commit c611435)
    claincly authored and microkatz committed Aug 22, 2022
    Copy the full SHA
    218e97f View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2022

  1. Replace usage of android_binary with build_test for libraries

    `android_binary` is only required when building an application.
    
    PiperOrigin-RevId: 469413752
    (cherry picked from commit f01896a)
    rohitjoins authored and microkatz committed Aug 23, 2022
    Copy the full SHA
    2af7d87 View commit details
    Browse the repository at this point in the history
  2. Bind contrastFactor in constructor instead of drawFrame method.

    PiperOrigin-RevId: 469438747
    (cherry picked from commit 9a1e7fb)
    leonwind authored and microkatz committed Aug 23, 2022
    Copy the full SHA
    d2fb190 View commit details
    Browse the repository at this point in the history
  3. Fix outdated RtpDataLoadable javadoc

    PiperOrigin-RevId: 469443086
    (cherry picked from commit 5cf166c)
    claincly authored and microkatz committed Aug 23, 2022
    Copy the full SHA
    8fe0cd3 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2022

  1. HDR: Add PQ support.

    Use the PQ OETF and EOTF to ensure that intermediate fragment shader operations
    using PQ are in linear BT.2020 rather than PQ and HLG-1 BT.2020.
    
    Also, swap the OETF and EOTF in shaders, as they were used incorrectly before
    
    Manually tested by verifying transformer demo HLG and PQ videos look the same with and without this CL, including with a BitmapOverlayProcessor enabled to test flows both with one MatrixTransformationProcessor that skips HDR TFs, and with one that doesn't.
    
    PiperOrigin-RevId: 469736067
    (cherry picked from commit a213910)
    dway123 authored and microkatz committed Aug 24, 2022
    Copy the full SHA
    c827c80 View commit details
    Browse the repository at this point in the history
  2. Fix missing id error

    PiperOrigin-RevId: 469750922
    (cherry picked from commit 2c70383)
    rohitjoins authored and microkatz committed Aug 24, 2022
    Copy the full SHA
    0e7227d View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2022

  1. HDR: Rename GL_COLOR_TRANSFER instances to COLOR_TRANSFER

    PiperOrigin-RevId: 469959215
    (cherry picked from commit 0f48c89)
    dway123 authored and microkatz committed Aug 25, 2022
    Copy the full SHA
    2d65ab1 View commit details
    Browse the repository at this point in the history
  2. Delete glPrograms in Contrast and RgbMatrix.

    Remove unecessary null checks.
    
    PiperOrigin-RevId: 469999952
    (cherry picked from commit f454c9a)
    leonwind authored and microkatz committed Aug 25, 2022
    Copy the full SHA
    e8b5976 View commit details
    Browse the repository at this point in the history
  3. Switch incorrectly configured native multidex to legacy

    Native multidex can only be used for binaries with minSdkVersion of 21 or higher, but minSdkVersion was specified to 16.
    
    PiperOrigin-RevId: 470003836
    (cherry picked from commit 142d1c0)
    rohitjoins authored and microkatz committed Aug 25, 2022
    Copy the full SHA
    e74584e View commit details
    Browse the repository at this point in the history
  4. Switch incorrectly configured native multidex to legacy for demos

    Native multidex can only be used for binaries with minSdkVersion of 21 or higher, but minSdkVersion was specified to 16.
    
    PiperOrigin-RevId: 470004102
    (cherry picked from commit a395b23)
    rohitjoins authored and microkatz committed Aug 25, 2022
    Copy the full SHA
    e56f595 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2022

  1. Fix ExternalTextureManager: repeated queueing input frame in preview

    TL;DR: we should check if there are new frames available to queue to the
    ExternalTextureProcessor before actually queueing a frame.
    
    The overall flow on the external texture processor:
    
    - `SurfaceTexture.onFrameAvailable` is called on `ExtTexMgr`, and
      - it calls `updateTexImage()`, and sets `frame`
      - it calls `maybeQueueFrameToExtTexProc()`
        - the frame is queued to `ExtTexProc` if `frame` is set
    
      - From `ExtTexProc.queueInputFrame()`:
        - notifies the `frameProcessorListener` of available frame
        - notifies the `inputListener` of `onReadyToAcceptInputFrame`
          - (`ExtTexMgr` is the listener), it calls `maybeQueueFrameToExtTexProc()`
           again
    
    -- Parallelly --
    - `ExtTexProc` calls `inputListener.onInputFrameProcessed`, when the frame is
    released
      - (`ExtTexMgr` is the listener), sets `frame` to `null`
    
    *Problem*
    
    This logic relies on `frame` to be cleared at the right time.
    
    In transformer, it's OK b/c `ExtTexProc` release the frame immediately in
    `queueInputFrame()` and calls `onInputFrameProcessed` which also reset `frame`
    
    But in previewing, the frame is not released for a while, up to 10 ms.
    In this case, `frame` will not reset in this 10 ms, and
    `maybeQueueFrameToExtTexProc()` is repeatedly queueing the same input frame.
    
    PiperOrigin-RevId: 470211620
    (cherry picked from commit a8c54dd)
    claincly authored and microkatz committed Aug 26, 2022
    Copy the full SHA
    0f271c2 View commit details
    Browse the repository at this point in the history
  2. Log instead of throwing for transfer mismatch

    PiperOrigin-RevId: 470354448
    (cherry picked from commit f1a3a40)
    andrewlewis authored and microkatz committed Aug 26, 2022
    Copy the full SHA
    179eafb View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2022

  1. Update color info mismatch test

    This should now expect transformation to succeed.
    
    PiperOrigin-RevId: 470950411
    (cherry picked from commit 1023254)
    andrewlewis authored and microkatz committed Aug 30, 2022
    Copy the full SHA
    585dfaf View commit details
    Browse the repository at this point in the history
  2. Fix 1 ErrorProneStyle finding:

    * Non-standard parameter comment; prefer `/* paramName= */ arg`
      (see http://go/bugpattern/ParameterComment)
    
    This CL looks good? Just LGTM and Approve it!
    This CL doesn’t look good? This is what you can do:
    * Revert this CL, by replying "REVERT: <provide reason>"
    * File a bug under go/error-prone-bug for category ErrorProneStyle if there's an issue with the CL content.
    * File a bug under go/rosie-bug if there's an issue with how the CL was managed.
    * 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/media/METADATA which is reachable following include_presubmits from //depot/google3/third_party/java_src/android_libs/media/METADATA.
    Anything wrong with the signup? File a bug at go/clrobot-bug.
    
    #codehealth
    
    Tested:
        Local presubmit tests passed.
    PiperOrigin-RevId: 470953422
    (cherry picked from commit f26e5d4)
    Googler authored and microkatz committed Aug 30, 2022
    Copy the full SHA
    1071a91 View commit details
    Browse the repository at this point in the history
  3. Remove media3-only line from exoplayer2 build.gradle file

    #minor-release
    
    PiperOrigin-RevId: 470999044
    (cherry picked from commit e285e70)
    icbaker authored and microkatz committed Aug 30, 2022
    Copy the full SHA
    b6fecfc View commit details
    Browse the repository at this point in the history
  4. Update first frame instructions.

    PiperOrigin-RevId: 471008623
    (cherry picked from commit cb60f50)
    dway123 authored and microkatz committed Aug 30, 2022
    Copy the full SHA
    2e4ec7a View commit details
    Browse the repository at this point in the history
  5. Add static Grayscale and Inverted RGB Filter.

    PiperOrigin-RevId: 471017440
    (cherry picked from commit 9f67ce4)
    leonwind authored and microkatz committed Aug 30, 2022
    Copy the full SHA
    8e90496 View commit details
    Browse the repository at this point in the history
  6. Fix 19 ErrorProneStyle findings:

    * Non-standard parameter comment; prefer `/* paramName= */ arg`
      (see http://go/bugpattern/ParameterComment) (19 times)
    
    This CL looks good? Just LGTM and Approve it!
    This CL doesn’t look good? This is what you can do:
    * Revert this CL, by replying "REVERT: <provide reason>"
    * File a bug under go/error-prone-bug for category ErrorProneStyle if there's an issue with the CL content.
    * File a bug under go/rosie-bug if there's an issue with how the CL was managed.
    * 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/media/METADATA which is reachable following include_presubmits from //depot/google3/third_party/java_src/android_libs/media/METADATA.
    Anything wrong with the signup? File a bug at go/clrobot-bug.
    
    #codehealth
    
    Tested:
        Local presubmit tests passed.
    PiperOrigin-RevId: 471022923
    (cherry picked from commit 674b3d4)
    Googler authored and microkatz committed Aug 30, 2022
    Copy the full SHA
    fc8edfc View commit details
    Browse the repository at this point in the history
  7. HDR: Use factory for MatrixTransformationProcessor.

    Separate MatrixTransformationProcessor constructors by color input and output.
    
    PiperOrigin-RevId: 471034768
    (cherry picked from commit a8e814a)
    dway123 authored and microkatz committed Aug 30, 2022
    Copy the full SHA
    4c8d22f View commit details
    Browse the repository at this point in the history
  8. Effect: Add some FrameProcessor javadoc.

    In particular, make it a bit more clear that "rendering" and "releasing" frames are
    related concepts, and how they differ from one another in conjunction with frame
    dropping.
    
    PiperOrigin-RevId: 471037733
    (cherry picked from commit e6a1936)
    dway123 authored and microkatz committed Aug 30, 2022
    Copy the full SHA
    53b1cab View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2022

  1. Add @SuppressWarnings to nullness errors detected by a newer version …

    …of the Checker Framework
    
    PiperOrigin-RevId: 471137219
    (cherry picked from commit 90e684a)
    Googler authored and microkatz committed Aug 31, 2022
    Copy the full SHA
    ba01d04 View commit details
    Browse the repository at this point in the history
  2. Fix 3 ErrorProneStyle findings:

    * Non-standard parameter comment; prefer `/* paramName= */ arg`
      (see http://go/bugpattern/ParameterComment) (3 times)
    
    This CL looks good? Just LGTM and Approve it!
    This CL doesn’t look good? This is what you can do:
    * Revert this CL, by replying "REVERT: <provide reason>"
    * File a bug under go/error-prone-bug for category ErrorProneStyle if there's an issue with the CL content.
    * File a bug under go/rosie-bug if there's an issue with how the CL was managed.
    * 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/media/METADATA which is reachable following include_presubmits from //depot/google3/third_party/java_src/android_libs/media/METADATA.
    Anything wrong with the signup? File a bug at go/clrobot-bug.
    
    #codehealth
    
    Tested:
        Local presubmit tests passed.
    PiperOrigin-RevId: 471198016
    (cherry picked from commit bac7d69)
    Googler authored and microkatz committed Aug 31, 2022
    Copy the full SHA
    4d4af37 View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2022

  1. Skip transcoding if HDR video does not need encoding.

    3b0d2c1 made `shouldPassthrough` always return false for `enableHdrVideoEditing`:
    
    >We force using `FrameEditor` (no passthrough) to avoid the need to select another edit operation, and use the new shaders. The `EGLContext` and `EGLSurface` also need to be set up differently for this path.
    
    However, this was introduced before the `videoNeedsEncoding` setting was introduced in 3f61504. That setting should apply to HDR videos as much as SDR videos.
    
    PiperOrigin-RevId: 471569853
    (cherry picked from commit 94713a8)
    Googler authored and microkatz committed Sep 1, 2022
    Copy the full SHA
    61374d1 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2022

  1. Rename shouldPassthrough to shouldTranscode

    shouldPassthrough's internal checks seem to be check whether we should *not*
    pass through, which seemed a bit like a confusing double-negative to me.
    
    shouldTranscode is slightly more clear, by instead returning true when we do
    want to transcode.
    
    No functional changes intended.
    
    PiperOrigin-RevId: 471753771
    (cherry picked from commit 1a4cd54)
    dway123 authored and microkatz committed Sep 2, 2022
    Copy the full SHA
    f52a3c2 View commit details
    Browse the repository at this point in the history
  2. Add sepia, grayscale, and inverted filters to the demo app.

    PiperOrigin-RevId: 471782565
    (cherry picked from commit 87926f0)
    leonwind authored and microkatz committed Sep 2, 2022
    Copy the full SHA
    7cb2b54 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2022

  1. Minor javadoc and scoping cleanup.

    No functional changes.
    
    PiperOrigin-RevId: 472245797
    (cherry picked from commit 8e14611)
    dway123 authored and microkatz committed Sep 5, 2022
    Copy the full SHA
    fdffdfe View commit details
    Browse the repository at this point in the history
  2. Fix 1 ErrorProneStyle finding:

    * Non-standard parameter comment; prefer `/* paramName= */ arg`
      (see http://go/bugpattern/ParameterComment)
    
    This CL looks good? Just LGTM and Approve it!
    This CL doesn’t look good? This is what you can do:
    * Revert this CL, by replying "REVERT: <provide reason>"
    * File a bug under go/error-prone-bug for category ErrorProneStyle if there's an issue with the CL content.
    * File a bug under go/rosie-bug if there's an issue with how the CL was managed.
    * 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/media/METADATA which is reachable following include_presubmits from //depot/google3/third_party/java_src/android_libs/media/METADATA.
    Anything wrong with the signup? File a bug at go/clrobot-bug.
    
    #codehealth
    
    Tested:
        Local presubmit tests passed.
    PiperOrigin-RevId: 472252461
    (cherry picked from commit dfdcf76)
    Googler authored and microkatz committed Sep 5, 2022
    Copy the full SHA
    bdba124 View commit details
    Browse the repository at this point in the history
  3. Fix 3 ErrorProneStyle findings:

    * Non-standard parameter comment; prefer `/* paramName= */ arg`
      (see http://go/bugpattern/ParameterComment) (3 times)
    
    This CL looks good? Just LGTM and Approve it!
    This CL doesn’t look good? This is what you can do:
    * Revert this CL, by replying "REVERT: <provide reason>"
    * File a bug under go/error-prone-bug for category ErrorProneStyle if there's an issue with the CL content.
    * File a bug under go/rosie-bug if there's an issue with how the CL was managed.
    * 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/media/METADATA which is reachable following include_presubmits from //depot/google3/third_party/java_src/android_libs/media/METADATA.
    Anything wrong with the signup? File a bug at go/clrobot-bug.
    
    #codehealth
    
    Tested:
        Local presubmit tests passed.
    PiperOrigin-RevId: 472254253
    (cherry picked from commit 8396647)
    Googler authored and microkatz committed Sep 5, 2022
    Copy the full SHA
    ec91dfc View commit details
    Browse the repository at this point in the history
  4. Merge RgbProcessor and MatrixTransformation.

    PiperOrigin-RevId: 472325145
    (cherry picked from commit daa77da)
    leonwind authored and microkatz committed Sep 5, 2022
    Copy the full SHA
    e61c876 View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2022

  1. Use super class for toGlProcessor in RgbFilter.

    PiperOrigin-RevId: 472405147
    (cherry picked from commit c0ad9f5)
    leonwind authored and microkatz committed Sep 6, 2022
    Copy the full SHA
    6ed69e3 View commit details
    Browse the repository at this point in the history
  2. Make MatrixTransformationsProcessor constructor to take in Lists.

    * Replace ImmutableLists to List interface for constructors
    
    PiperOrigin-RevId: 472433434
    (cherry picked from commit ce0e3a4)
    leonwind authored and microkatz committed Sep 6, 2022
    Copy the full SHA
    7477eb6 View commit details
    Browse the repository at this point in the history
  3. Include CamcorderProfile resolution in encoder capability test

    PiperOrigin-RevId: 472459423
    (cherry picked from commit 6e45824)
    claincly authored and microkatz committed Sep 6, 2022
    Copy the full SHA
    912da29 View commit details
    Browse the repository at this point in the history
  4. Bump IMA SDK version for gradle

    PiperOrigin-RevId: 472500789
    (cherry picked from commit 60a3ea4)
    marcbaechinger authored and microkatz committed Sep 6, 2022
    Copy the full SHA
    018ea9a View commit details
    Browse the repository at this point in the history
  5. Remove redundant constant definition

    PiperOrigin-RevId: 472522846
    (cherry picked from commit 9a9baa5)
    claincly authored and microkatz committed Sep 6, 2022
    Copy the full SHA
    7acffcf View commit details
    Browse the repository at this point in the history
  6. Update presentation time of metadata when the stream offset changes

    The stream offset is used to calculate the presentation time of
    a metadata object when reading and later when playing, to calculate
    the current presentation time to decide whether to send the metadata
    to the output.
    
    Accordingly, the presentation time of a pending metadata that has been
    calculated with a given offset needs to be recalculated when the
    stream offset changes.
    
    #minor-release
    
    PiperOrigin-RevId: 472499943
    (cherry picked from commit 5a12237)
    marcbaechinger authored and microkatz committed Sep 6, 2022
    Copy the full SHA
    d7d75a0 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2022

  1. Discard backbuffer before playback gets stuck.

    If the back buffer is using too much memory, there is a risk
    playback could get stuck because LoadControl refuses to load
    further data. This eventually results in a stuck-buffering
    playback error.
    
    We can detect this case, clear the back buffer and then ask
    the LoadControl again to avoid failing playback in such a case.
    
    PiperOrigin-RevId: 472679797
    (cherry picked from commit 125646e)
    tonihei authored and microkatz committed Sep 7, 2022
    Copy the full SHA
    8df931b View commit details
    Browse the repository at this point in the history
  2. Add withAvailableAd for server side inserted ad groups

    #minor-release
    
    PiperOrigin-RevId: 472714732
    (cherry picked from commit 072f376)
    marcbaechinger authored and microkatz committed Sep 7, 2022
    Copy the full SHA
    b47c7a3 View commit details
    Browse the repository at this point in the history
  3. Clarify GlTextureProcessor.InputListener contract

    PiperOrigin-RevId: 472745311
    (cherry picked from commit 32a2164)
    claincly authored and microkatz committed Sep 7, 2022
    Copy the full SHA
    240ca99 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2022

  1. Remove conditional check for no-longer flaky API version

    PiperOrigin-RevId: 472949850
    (cherry picked from commit caefa56)
    claincly authored and microkatz committed Sep 8, 2022
    Copy the full SHA
    ce4ba2b View commit details
    Browse the repository at this point in the history
  2. HDR: Add fallback MH tests.

    Test that HDR editing succeeds on devices supporting HDR editing, tone maps on
    devices supporting tone mapping, and throws exceptions on all other devices.
    
    Also, only restrict HDR editing and tone mapping support to API 31+ only when
    transcoding, not for all transformations.
    
    PiperOrigin-RevId: 472958965
    (cherry picked from commit 8ee2121)
    dway123 authored and microkatz committed Sep 8, 2022
    Copy the full SHA
    8eab739 View commit details
    Browse the repository at this point in the history
  3. Add caching for compositeRgbMatrixArray.

    * Refactor caching for matrix transformations to reuse it for rgb matrices.
    
    PiperOrigin-RevId: 473042194
    (cherry picked from commit 593370b)
    leonwind authored and microkatz committed Sep 8, 2022
    Copy the full SHA
    7098d3b View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2022

  1. Decoder: Reduce max pending frame count limit down to 5.

    PiperOrigin-RevId: 473212543
    (cherry picked from commit 41963fc)
    dway123 authored and microkatz committed Sep 9, 2022
    Copy the full SHA
    e725600 View commit details
    Browse the repository at this point in the history
  2. Handle int instead of byte in SSIM.

    The value of pixels are converted to integers at the point of use,
    move this logic to the initialisation step.
    
    This is a prerequisite step for testing SSIM calculation, which
    will lead on to some SSIM improvements being verifiable.
    
    Tested manually and SSIM values match for the same video
    before and after this change.
    
    PiperOrigin-RevId: 473231779
    (cherry picked from commit eb6c118)
    Samrobbo authored and microkatz committed Sep 9, 2022
    Copy the full SHA
    c714b51 View commit details
    Browse the repository at this point in the history
  3. Rollback of eb6c118

    *** Original commit ***
    
    Handle int instead of byte in SSIM.
    
    The value of pixels are converted to integers at the point of use,
    move this logic to the initialisation step.
    
    This is a prerequisite step for testing SSIM calculation, which
    will lead on to some SSIM improvements being verifiable.
    
    Tested manually and SSIM values match for the same video
    before and after this change.
    
    ***
    
    PiperOrigin-RevId: 473259446
    (cherry picked from commit 8f9c9d0)
    Samrobbo authored and microkatz committed Sep 9, 2022
    Copy the full SHA
    d10dbc5 View commit details
    Browse the repository at this point in the history
  4. Rename MatrixTransformationProcessor to MatrixTextureProcessor.

    PiperOrigin-RevId: 473283967
    (cherry picked from commit 40f1bd3)
    leonwind authored and microkatz committed Sep 9, 2022
    Copy the full SHA
    7e810b5 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2022

  1. Split decoding out of the test

    This method is useful for other tests also.
    
    PiperOrigin-RevId: 473574282
    (cherry picked from commit f770324)
    claincly authored and microkatz committed Sep 11, 2022
    Copy the full SHA
    2fa9042 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2022

  1. Add rgb matrices to java docs for public constructors.

    PiperOrigin-RevId: 473699927
    (cherry picked from commit 75f920b)
    leonwind authored and microkatz committed Sep 12, 2022
    Copy the full SHA
    474a557 View commit details
    Browse the repository at this point in the history
  2. Add java docs for ContrastProcessor constructor.

    * Add docs for the public constructor for consistency with all the
    other frame processors.
    
    PiperOrigin-RevId: 473726586
    (cherry picked from commit 696ef2a)
    leonwind authored and microkatz committed Sep 12, 2022
    Copy the full SHA
    5b084dd View commit details
    Browse the repository at this point in the history
  3. Add MssimCalculatorTest to verify SSIM calculations.

    As part of this change, MssimCalculator is moved from androidTest/ to main/
    
    PiperOrigin-RevId: 473771344
    (cherry picked from commit 20aa22c)
    Samrobbo authored and microkatz committed Sep 12, 2022
    Copy the full SHA
    c4f4c42 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2022

  1. Change ContrastProcessor java doc for consistency.

    PiperOrigin-RevId: 474002026
    (cherry picked from commit 7c43562)
    leonwind authored and microkatz committed Sep 13, 2022
    Copy the full SHA
    2576346 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2022

  1. Clarify the replaceOutputBuffer parameter because count is unclear.

    PiperOrigin-RevId: 474279220
    (cherry picked from commit 3e0ad6d)
    Samrobbo authored and microkatz committed Sep 14, 2022
    Copy the full SHA
    766b9cd View commit details
    Browse the repository at this point in the history
  2. Add support for skipping windows in MssimCalculator.

    By skipping every other row and column, SSIM calculation time reduces by 10-30%.
    
    PiperOrigin-RevId: 474286702
    (cherry picked from commit 6dd2a6d)
    Samrobbo authored and microkatz committed Sep 14, 2022
    Copy the full SHA
    3adfa48 View commit details
    Browse the repository at this point in the history
  3. Fix testId and match it to the test name.

    PiperOrigin-RevId: 474363545
    (cherry picked from commit 0e2b6a0)
    leonwind authored and microkatz committed Sep 14, 2022
    Copy the full SHA
    b041e4d View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2022

  1. Add LUT functionalities to transformer.

    * Adds SDR 3D LUT functionalities with OpenGL 2.0 support.
    
    PiperOrigin-RevId: 474561060
    (cherry picked from commit 702419d)
    leonwind authored and microkatz committed Sep 15, 2022
    Copy the full SHA
    eb6cf35 View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2022

  1. Fix tracing under offload.

    Currently doSomeWork is never closed and so tracing is deceiving.
    
    See https://screenshot.googleplex.com/eZDzn5APpBNnhe5
    
    PiperOrigin-RevId: 474755816
    (cherry picked from commit 005b73c)
    yschimke authored and microkatz committed Sep 16, 2022
    Copy the full SHA
    3af2971 View commit details
    Browse the repository at this point in the history
  2. Fix outdated command in bitmap/README.md.

    * The command changed after creating a custom effects module.
    
    PiperOrigin-RevId: 474777823
    (cherry picked from commit fd6b0d1)
    leonwind authored and microkatz committed Sep 16, 2022
    Copy the full SHA
    0a811bd View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2022

  1. Fix instrumentation tests not working via Gradle

    PiperOrigin-RevId: 475560401
    (cherry picked from commit 6015f05)
    rohitjoins authored and microkatz committed Sep 20, 2022
    Copy the full SHA
    a6f58bd View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2022

  1. Use golden bitmaps in contrast pixel tests.

    PiperOrigin-RevId: 475805421
    (cherry picked from commit 06c0040)
    leonwind authored and microkatz committed Sep 21, 2022
    Copy the full SHA
    b23c966 View commit details
    Browse the repository at this point in the history
  2. Add file size to TransformationResult at the end of a Transformation.

    Tested:
      * Manually using both path and file descriptor.
    PiperOrigin-RevId: 475860978
    (cherry picked from commit 08bb01b)
    Samrobbo authored and microkatz committed Sep 21, 2022
    Copy the full SHA
    61acf58 View commit details
    Browse the repository at this point in the history

Commits on Sep 22, 2022

  1. Add RGB Adjustments to transformer demo.

    PiperOrigin-RevId: 476049125
    (cherry picked from commit cfc0eef)
    leonwind authored and microkatz committed Sep 22, 2022
    Copy the full SHA
    109ab70 View commit details
    Browse the repository at this point in the history
  2. Work around a bug in the Android 13 ClearKey implementation

    The ClearKey CDM will attach an 'invalid' URL in `KeyRequest` objects,
    when the documentation states this should be an empty string if a
    default URL is not known.
    
    #minor-release
    
    PiperOrigin-RevId: 476113513
    (cherry picked from commit 331d4d6)
    icbaker authored and microkatz committed Sep 22, 2022
    Copy the full SHA
    eb496da View commit details
    Browse the repository at this point in the history
  3. Add OETF and EOTF ES2 fragment shaders for non-HDR frames.

    * Transform the intermediate color space to linear SDR by applying the SMPTE 170M EOTF and OETF.
    * Use linear colors for the color filter pixel tests and update all golden bitmaps.
    
    PiperOrigin-RevId: 476124592
    (cherry picked from commit afd829e)
    leonwind authored and microkatz committed Sep 22, 2022
    Copy the full SHA
    a534f60 View commit details
    Browse the repository at this point in the history
  4. Add HSL Adjustments to the effects module.

    PiperOrigin-RevId: 476144167
    (cherry picked from commit 2c27cd8)
    leonwind authored and microkatz committed Sep 22, 2022
    Copy the full SHA
    55d3c5a View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2022

  1. HDR: Assert output C.ColorTransfer for tests.

    To confirm that tone mapping did or did not happen.
    
    PiperOrigin-RevId: 476354606
    (cherry picked from commit df58107)
    dway123 authored and microkatz committed Sep 23, 2022
    Copy the full SHA
    a3a08f8 View commit details
    Browse the repository at this point in the history
  2. Try alternative decoder for Dolby Vision if display does not support

    If the sample type is dolby vision and the following conditions match
    a)There is a supported alternative codec mimetype
    b)Display does not support Dolby Vision
    Then getDecoderInfos will return the alternative types.
    
    Issue: #9794
    PiperOrigin-RevId: 476356223
    (cherry picked from commit 94a88e9)
    microkatz committed Sep 23, 2022
    Copy the full SHA
    9ac9322 View commit details
    Browse the repository at this point in the history
  3. Remove TODOs for merging RGB and MatrixTransformation processors.

    PiperOrigin-RevId: 476362571
    (cherry picked from commit af19f82)
    leonwind authored and microkatz committed Sep 23, 2022
    Copy the full SHA
    91fb951 View commit details
    Browse the repository at this point in the history
  4. Fix broken links on https://exoplayer.dev/troubleshooting.html

    #minor-release
    
    PiperOrigin-RevId: 476366214
    (cherry picked from commit 0969118)
    icbaker authored and microkatz committed Sep 23, 2022
    Copy the full SHA
    55e44b1 View commit details
    Browse the repository at this point in the history
  5. Add HSL Adjustments to the demo.

    PiperOrigin-RevId: 476373520
    (cherry picked from commit 5725ebb)
    leonwind authored and microkatz committed Sep 23, 2022
    Copy the full SHA
    61a2cc7 View commit details
    Browse the repository at this point in the history
  6. Add example CLUT to demo.

    PiperOrigin-RevId: 476390089
    (cherry picked from commit 29cf093)
    leonwind authored and microkatz committed Sep 23, 2022
    Copy the full SHA
    8b80743 View commit details
    Browse the repository at this point in the history
  7. Add setPreferredAudioDevice method to ExoPlayer

    This allows to access the associated functionality of AudioTrack and
    fills a feature gap to MediaPlayer, which has a similar method.
    
    Issue: androidx/media#135
    PiperOrigin-RevId: 476398964
    (cherry picked from commit ccb820d)
    tonihei authored and microkatz committed Sep 23, 2022
    Copy the full SHA
    289d039 View commit details
    Browse the repository at this point in the history
  8. Store LUT bitmap as texture with processor creation.

    * Before this CL, the texture was stored during the construction of the LUT processor. This failed since if one creates a list of GlEffects on the application thread, the texture will get stored in the application thread during the effect creation and not on the GL thread, which executes the FrameProcessors.
    * This is an issue since the executing thread then can't index from the texture stored on a different thread.
    
    PiperOrigin-RevId: 476388021
    (cherry picked from commit f745c6e)
    leonwind authored and microkatz committed Sep 23, 2022
    Copy the full SHA
    0a1f30a View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2022

  1. HDR: Update gamma comments to linear.

    Comment-only change.
    
    PiperOrigin-RevId: 476873286
    (cherry picked from commit f3d1321)
    dway123 authored and microkatz committed Sep 26, 2022
    Copy the full SHA
    c9f019e View commit details
    Browse the repository at this point in the history
  2. Fix badly formatted AudioProcessor javadoc.

    PiperOrigin-RevId: 476909855
    (cherry picked from commit 9b1909e)
    Samrobbo authored and microkatz committed Sep 26, 2022
    Copy the full SHA
    d348157 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2022

  1. Fix checkboxes on configuration page

    PiperOrigin-RevId: 477166507
    (cherry picked from commit bcea7bd)
    Googler authored and microkatz committed Sep 27, 2022
    Copy the full SHA
    3b97b99 View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2022

  1. Add a troubleshooting section about slow seeking

    #minor-release
    
    PiperOrigin-RevId: 477432256
    (cherry picked from commit f8f2ec6)
    icbaker authored and microkatz committed Sep 28, 2022
    Copy the full SHA
    0be36d0 View commit details
    Browse the repository at this point in the history
  2. HDR: Add tests for tone mapping.

    Also, add checks for output file color.
    
    PiperOrigin-RevId: 477439139
    (cherry picked from commit 507a1be)
    dway123 authored and microkatz committed Sep 28, 2022
    Copy the full SHA
    619333f View commit details
    Browse the repository at this point in the history
  3. HDR: Add period to end of error message.

    For tone mapping error messages.
    
    PiperOrigin-RevId: 477447799
    (cherry picked from commit 05ce639)
    dway123 authored and microkatz committed Sep 28, 2022
    Copy the full SHA
    09776f3 View commit details
    Browse the repository at this point in the history
  4. Demo: Split video Effect generation out of createTransformer.

    PiperOrigin-RevId: 477524540
    (cherry picked from commit 26a7360)
    Samrobbo authored and microkatz committed Sep 28, 2022
    Copy the full SHA
    9639f82 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2022

  1. Test: Rename to avoid redundant substrings.

    Rename test files to avoid substrings that can be implied by the directory name,
    like "Transformation" and "Test"
    
    No functional changes. Renaming-only.
    
    PiperOrigin-RevId: 477724724
    (cherry picked from commit 9786802)
    dway123 authored and microkatz committed Sep 29, 2022
    Copy the full SHA
    b49c2aa View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2022

  1. Tests: Statically import BitmapTestUtil methods.

    Per go/java-practices/imports#static
    
    No functional changes intended.
    
    PiperOrigin-RevId: 477974779
    (cherry picked from commit da2c637)
    dway123 authored and microkatz committed Sep 30, 2022
    Copy the full SHA
    49cc724 View commit details
    Browse the repository at this point in the history
  2. Effect: Update javadoc to remove "final effect" references

    "Final" was likely added to reference the FinalMatrixTextureProcessorWrapper,
    which is a package-private class. However, I think more clear to express that
    this is the input size, which then has all effects applied, to get the output
    size.
    
    PiperOrigin-RevId: 477975358
    (cherry picked from commit 7286155)
    dway123 authored and microkatz committed Sep 30, 2022
    Copy the full SHA
    fdd72ae View commit details
    Browse the repository at this point in the history
  3. HDR: Add tests with HLG10 input.

    PiperOrigin-RevId: 478019046
    (cherry picked from commit b9a3aa5)
    dway123 authored and microkatz committed Sep 30, 2022
    Copy the full SHA
    2361213 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2022

  1. Add second player for input video

    PiperOrigin-RevId: 478510687
    (cherry picked from commit 6f2bc16)
    Googler authored and microkatz committed Oct 3, 2022
    Copy the full SHA
    c3a6943 View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2022

  1. HDR: Check isToneMappingApplied in HDR editing test.

    Assert that tone mapping is applied when an HDR edit cannot be HDR, but is successfully tone mapped. Meanwhile, assert that fallback, which is applied after codec configuration (which throws the "Tone-mapping requested but not supported by the decoder" error) is not applied when that error is called.
    
    PiperOrigin-RevId: 478762951
    (cherry picked from commit 36e4105)
    dway123 authored and microkatz committed Oct 4, 2022
    Copy the full SHA
    a06b0ba View commit details
    Browse the repository at this point in the history

Commits on Oct 5, 2022

  1. Add button to show/hide input player in TransformerActivity

    PiperOrigin-RevId: 479003655
    (cherry picked from commit 20c1ae1)
    Googler authored and microkatz committed Oct 5, 2022
    Copy the full SHA
    997cdf3 View commit details
    Browse the repository at this point in the history
  2. Add FrameProcessor functionality to release a frame immediately

    Currently `FrameProcessor.releaseOutputFrame()` method supports
    
    Release at a specific system time
    Drops the frame
    This API is not that convenient to use when the caller wants to release a frame, now, regardless of the release time. A use case is to release (present) a frame when no frame is shown for a while, and it's thus better to just release the frame, now.
    
    Currently if MCVR wants a frame to be rendered now, MCVR calls release frame with a set offset like 10us: `releaseOutputFrame(System.nanoTime() + 10_000)`. The 10us offset is to prevent the frame processor dropping the frame, due to thread hopping delays.
    
    To make the API better usable, consider adding a mode for releasing the frame now, like (bold marks the new mode)
    
    - Use C.TIME_UNSET to drop
    - **Use -1 to release the frame immediately, or**
    - Use an actual release time.
    
    PiperOrigin-RevId: 479044215
    (cherry picked from commit ff8dd0b)
    claincly authored and microkatz committed Oct 5, 2022
    Copy the full SHA
    92ceeda View commit details
    Browse the repository at this point in the history
  3. Fix RequestMetadata JavaDoc link to point to the right MediaController.

    The JavaDoc of RequestMetadata should point to the media3 controller,
    not the platform one.
    
    PiperOrigin-RevId: 479047924
    (cherry picked from commit 0889589)
    tonihei authored and microkatz committed Oct 5, 2022
    Copy the full SHA
    e37f16a View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2022

  1. Provide access to original media timestamps in AudioSink.

    * Add `setOutputStreamOffsetUs(long)` method in `AudioSink`.
    * Add private methods `setOutputStreamOffsetUs(long)` method in `MediaCodecRenderer` and `DecoderAudioRenderer`.
    * Add protected method `onOutputStreamOffsetUs(long)` method in `MediaCodecRenderer`, in which:
      * `MediaCodecRenderer` itself will be no-op for this method.
      * `MediaCodecAudioRenderer` will propagate this value to its `audioSink`.
    * Add logics in `DecoderAudioRenderer` to calculate `outputStreamOffsetUs`.
    
    PiperOrigin-RevId: 479265429
    (cherry picked from commit 4c73241)
    tianyif authored and microkatz committed Oct 6, 2022
    Copy the full SHA
    d2f7fb1 View commit details
    Browse the repository at this point in the history
  2. Add a FrameProcessor flag to drop the processed frame

    This mode is supported by using `C.TIME_UNSET` (which is a negative value). The
    new logic decouples the value of `C.TIME_UNSET` and the frame dropping
    behaviour.
    
    PiperOrigin-RevId: 479368880
    (cherry picked from commit ccab9fb)
    claincly authored and microkatz committed Oct 6, 2022
    Copy the full SHA
    8081804 View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2022

  1. Document the allowed values of TsPayloadReader.Flags IntDef

    PiperOrigin-RevId: 479569806
    (cherry picked from commit 7c68b8d)
    icbaker authored and microkatz committed Oct 7, 2022
    Copy the full SHA
    ee9bff0 View commit details
    Browse the repository at this point in the history
  2. HDR: Disable tone mapping on unsupported pixel build ID.

    Also, update tests to allow AnyOf error codes, and no longer check exception messages, which caused quite a bit of churn.
    
    PiperOrigin-RevId: 479570861
    (cherry picked from commit faa796d)
    dway123 authored and microkatz committed Oct 7, 2022
    Copy the full SHA
    15e316d View commit details
    Browse the repository at this point in the history
  3. Bump dexmaker version

    PiperOrigin-RevId: 479579252
    (cherry picked from commit a6b9772)
    christosts authored and microkatz committed Oct 7, 2022
    Copy the full SHA
    bd616e1 View commit details
    Browse the repository at this point in the history
  4. Remove late frame dropping in FrameProcessor

    Currently, a frame is dropped if it's requested release time is in the past.
    This mode was added to support previewing. However, in normal ExoPlayer
    playback, slightly late frames (<30ms late) are also rendered. On MediaCodec
    side, this means calling `releaseOutputBuffer` with a release time in the
    past.
    
    PiperOrigin-RevId: 479615291
    (cherry picked from commit 2188685)
    claincly authored and microkatz committed Oct 7, 2022
    Copy the full SHA
    efb7bf2 View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2022

  1. Adjust track selection with Dolby Vision if display does not support

    If the sample type is Dolby Vision and the display does not support Dolby Vision, then the capabilities DecoderSupport flag is set to DECODER_SUPPORT_FALLBACK_MIMETYPE. This denotes that the renderer will use a decoder for a fallback mimetype if possible. This alters track selection as tracks with DecoderSupport DECODER_SUPPORT_PRIMARY are preferred.
    
    UnitTests included
    -DefaultTrackSelector test that checks track selection reordering with DECODER_SUPPORT_FALLBACK_MIMETYPE
    -MediaCodecVideoRenderer test that checks setting of DecoderSupport flag based on Display's Dolby Vision support
    
    Issue: #8944
    PiperOrigin-RevId: 480040876
    (cherry picked from commit a366590)
    microkatz committed Oct 10, 2022
    Copy the full SHA
    e8a5ac9 View commit details
    Browse the repository at this point in the history
  2. Treat NO_VALUE as zero when adding up total required bitrate

    We currently use the literal -1 (=NO_VALUE) when adding up the
    total. Tracks without known bitrate can be ignored in the
    calculation, but we should use an explicit value of 0.
    
    #minor-release
    
    Issue: #10664
    PiperOrigin-RevId: 480048126
    (cherry picked from commit af19e0e)
    tonihei authored and microkatz committed Oct 10, 2022
    Copy the full SHA
    dc80523 View commit details
    Browse the repository at this point in the history

Commits on Oct 11, 2022

  1. Add local file picker to ConfigurationActivity

    PiperOrigin-RevId: 480349627
    (cherry picked from commit 225d0dc)
    Googler authored and microkatz committed Oct 11, 2022
    Copy the full SHA
    5d8daba View commit details
    Browse the repository at this point in the history
  2. Demo: Read long values from trim slider.

    Before, slider values were read as `floor()`'ed `longValue()`s, so that trimming to
    intervals less than one second would be interpreted as a request for a zero-
    duration trim.
    
    Also, rename `radiusRange` references here to `trimRange`, since this is not a
    radius range.
    
    PiperOrigin-RevId: 480401556
    (cherry picked from commit 6c59f9e)
    dway123 authored and microkatz committed Oct 11, 2022
    Copy the full SHA
    abefef9 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2022

  1. Demo: Hide player controls by default.

    Player controls are somewhat distracting when showing the difference between the
    input and output video, as they obscure and darken the video players.
    
    PiperOrigin-RevId: 480597804
    (cherry picked from commit 91a61ce)
    dway123 authored and microkatz committed Oct 12, 2022
    Copy the full SHA
    2244549 View commit details
    Browse the repository at this point in the history
  2. Demo: Shorten trim range from 60 seconds to 10 seconds.

    Most demo videos aren't very long, and the default demo video is only 10 seconds.
    
    Shorten the maximum trim duration to 10 seconds, to demonstrate transformer functionality more easily, and allow this to be used more easily when trimming short sections of a longer video (ex. to make test clips)
    
    PiperOrigin-RevId: 480602037
    (cherry picked from commit 3142a21)
    dway123 authored and microkatz committed Oct 12, 2022
    Copy the full SHA
    4198dde View commit details
    Browse the repository at this point in the history
  3. Add Cea608DecoderTest

    When debugging and fixing Issue: #10666 I wanted to write a regression
    test, but needed to add a test first... This is just a small bit of
    coverage to start with. It checks the field/channel filtering works
    correctly, but doesn't check any styling info. It also doesn't test
    'pop on' subtitles (i.e. when the subtitle isn't shown until a 'end of
    subtitle' signal is received).
    
    PiperOrigin-RevId: 480644568
    (cherry picked from commit 6052212)
    icbaker authored and microkatz committed Oct 12, 2022
    Copy the full SHA
    3aca9bc View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2022

  1. Remove supportsSampleMimeType from Muxer.Factory

    - This method is redundant with getSupportedSampleMimeTypes().
    - This is to prepare the Muxer class to become public.
    
    PiperOrigin-RevId: 480840902
    (cherry picked from commit 8962f5a)
    kim-vde authored and microkatz committed Oct 13, 2022
    Copy the full SHA
    267725c View commit details
    Browse the repository at this point in the history
  2. Fix blank toast in Transformer Demo

    PiperOrigin-RevId: 480847967
    (cherry picked from commit 446c994)
    Googler authored and microkatz committed Oct 13, 2022
    Copy the full SHA
    a8921b7 View commit details
    Browse the repository at this point in the history
  3. Migrate media constants from androidx.media.util.MediaConstants

    Adds root extras and metadata extras to MockMediaLibraryService and MockMediaBrowserCompatService and completed test cases for asserting
    interoperability with a media1 or Media3 browser.
    
    PiperOrigin-RevId: 480854842
    (cherry picked from commit f95406e)
    marcbaechinger authored and microkatz committed Oct 13, 2022
    Copy the full SHA
    1bea506 View commit details
    Browse the repository at this point in the history
  4. Ensure sessions without MediaPeriodId are ended after seek to new item

    We already have logic to end all session except the current one if the
    current one doesn't have a MediaPeriodId yet. This is assuming that this
    only happens after a seek on the app side where the player doesn't have
    detailled knowledge about the MediaPeriodIds yet.
    
    Currently this logic isn't triggered if the window we are coming from
    doesn't have its MediaPeriodId either as we run into another check that
    keeps sessions around until we have a valid windowSequenceNumber.
    
    Swapping both conditions fixes this case without breaking any of the
    other known transition scenarios.
    
    Issue: androidx/media#180
    PiperOrigin-RevId: 480866465
    (cherry picked from commit 6070d91)
    tonihei authored and microkatz committed Oct 13, 2022
    Copy the full SHA
    b362736 View commit details
    Browse the repository at this point in the history

Commits on Oct 14, 2022

  1. Mark effectively-final PlayerControlView fields as actually final

    This means the null checker can be more sure that these fields don't
    get reassigned between a null-check and a usage.
    
    PiperOrigin-RevId: 481142004
    (cherry picked from commit 248ee46)
    icbaker authored and microkatz committed Oct 14, 2022
    Copy the full SHA
    8ffdc3a View commit details
    Browse the repository at this point in the history
  2. Effect: Remove unused private int ouptutTexId in pixel tests.

    PiperOrigin-RevId: 481143798
    (cherry picked from commit 026699b)
    dway123 authored and microkatz committed Oct 14, 2022
    Copy the full SHA
    d9c60dc View commit details
    Browse the repository at this point in the history
  3. Fix the position of IntDef annotations on fields in the UI module

    PiperOrigin-RevId: 481150758
    (cherry picked from commit 871a5e6)
    icbaker authored and microkatz committed Oct 14, 2022
    Copy the full SHA
    12314ab View commit details
    Browse the repository at this point in the history
  4. Fix display settings window UI bug for foldable devices.

    PiperOrigin-RevId: 481215581
    (cherry picked from commit 6cdaf2c)
    Googler authored and microkatz committed Oct 14, 2022
    Copy the full SHA
    e3d0ee9 View commit details
    Browse the repository at this point in the history
  5. Use static import for Assertions in MCVR

    PiperOrigin-RevId: 481122795
    (cherry picked from commit 12f7174)
    claincly authored and microkatz committed Oct 14, 2022
    Copy the full SHA
    df15f9c View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2022

  1. Add copybara annotated import statement for special cases

    PiperOrigin-RevId: 481605567
    (cherry picked from commit fd315da)
    marcbaechinger authored and microkatz committed Oct 17, 2022
    Copy the full SHA
    fbc8019 View commit details
    Browse the repository at this point in the history
  2. Add manifest to make gradle build work

    PiperOrigin-RevId: 481606248
    (cherry picked from commit 325e973)
    marcbaechinger authored and microkatz committed Oct 17, 2022
    Copy the full SHA
    7cc3f11 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2022

  1. Add DefaultMuxer forwarding to FrameworkMuxer

    - The naming DefaultMuxer is more consistent with the rest of
    Transformer codebase (e.g. DefaultEncoderFactory).
    - By hiding the implementation details of DefaultMuxer, the transition
    to in-app Muxer will be seamless for apps using DefaultMuxer.
    - The current plan is that DefaultMuxer will become the in-app muxer.
    
    PiperOrigin-RevId: 481838790
    (cherry picked from commit b4d7f06)
    kim-vde authored and microkatz committed Oct 18, 2022
    Copy the full SHA
    1c6cea8 View commit details
    Browse the repository at this point in the history
  2. Remove more references to overriding layouts from Player(Control)View

    In exoplayer2 this affects StyledPlayer(Control)View
    
    #minor-release
    
    PiperOrigin-RevId: 481878940
    (cherry picked from commit a5583c0)
    icbaker authored and microkatz committed Oct 18, 2022
    Copy the full SHA
    fb1c9de View commit details
    Browse the repository at this point in the history
  3. Fix parameter comment block.

    #cleanup
    
    PiperOrigin-RevId: 481882181
    (cherry picked from commit b6bd358)
    Samrobbo authored and microkatz committed Oct 18, 2022
    Copy the full SHA
    5de37d2 View commit details
    Browse the repository at this point in the history
  4. Remove deprecated setOutputMimeType

    This is to prepare Muxer to become public
    
    PiperOrigin-RevId: 481893842
    (cherry picked from commit bd9181e)
    kim-vde authored and microkatz committed Oct 18, 2022
    Copy the full SHA
    66d56be View commit details
    Browse the repository at this point in the history
  5. GL: Move loadAsset to GlProgram, where it's used.

    (Also, make some public methods private)
    
    PiperOrigin-RevId: 481912071
    (cherry picked from commit a404fde)
    dway123 authored and microkatz committed Oct 18, 2022
    Copy the full SHA
    66bae60 View commit details
    Browse the repository at this point in the history
  6. Ensure onMediaItemTransition is sent for repeats of the same item

    Currently, repeating the same item (via seekNext/Previous) implicitly
    results in a seek to the default position of the current item, which
    looks exactly the same as a direct seek. As a result, we don't send
    onMediaItemTransition as we would for every other seekNext/Previous
    call.
    
    This can be fixed by explicitly marking the repeat case in the internal
    BasePlayer/ExoPlayerImpl methods, so that the callback can be triggered.
    
    Issue: #10667
    PiperOrigin-RevId: 481951788
    (cherry picked from commit 76ce0cc)
    tonihei authored and microkatz committed Oct 18, 2022
    Copy the full SHA
    ed9bc9a View commit details
    Browse the repository at this point in the history
  7. Test: Update MatrixProcessorPixelTest to use input width and height.

    Before, they used `width` and `height`, which was inconsistent with other pixel tests, and less descriptive.
    
    Refactoring change only. No functional change intended.
    
    PiperOrigin-RevId: 481970243
    (cherry picked from commit 620d8c9)
    dway123 authored and microkatz committed Oct 18, 2022
    Copy the full SHA
    e54127c View commit details
    Browse the repository at this point in the history

Commits on Oct 19, 2022

  1. Remove ForwardingPlayer special case from PlayerControlView.setPlayer

    This was originally added in 4fd7d77, but it hasn't done anything
    since 98ee159 (when the instanceof ExoPlayer check was removed).
    
    PiperOrigin-RevId: 482161662
    (cherry picked from commit 7d5f1a2)
    icbaker authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    f56d714 View commit details
    Browse the repository at this point in the history
  2. Effect: Remove unnecessary "this" qualifier

    `transformationMatrix` is not ambiguous, as there's no other local
    transformationMatrix variable nearby.
    
    PiperOrigin-RevId: 482184602
    (cherry picked from commit c698ec5)
    dway123 authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    5c0175e View commit details
    Browse the repository at this point in the history
  3. Make Muxer public

    The reason for making the Muxer public is that we want to add an option
    to disable or configure the timer that will throw when the muxer doesn't
    receive any data for a given period of time.
    
    PiperOrigin-RevId: 482199360
    (cherry picked from commit d213b93)
    kim-vde authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    f42d18f View commit details
    Browse the repository at this point in the history
  4. HDR: Support RGBA_1010102 in GlUtil as a parameter.

    Make it easier to support use of RGBA_101012 rather than RGBA_8888 for EGL
    contexts, displays, and surfaces.
    
    This tangentially supports adding HDR tests, by slightly simplifying the color
    selection logic we'd have to add in HDR tests.
    
    PiperOrigin-RevId: 482219428
    (cherry picked from commit 9e1adee)
    dway123 authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    0b0101e View commit details
    Browse the repository at this point in the history
  5. Corrected ordering of javadoc params

    PiperOrigin-RevId: 482231370
    (cherry picked from commit 8977220)
    Googler authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    1b6bef0 View commit details
    Browse the repository at this point in the history
  6. Merge pull request #10570 from Artemych:fix/progressive_downloader_in…

    …finite_loop
    
    PiperOrigin-RevId: 472475124
    (cherry picked from commit 9c56b2c)
    marcbaechinger authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    0a0df93 View commit details
    Browse the repository at this point in the history
  7. Merge pull request #10549 from ferhatparmak:release-requirementswatcher

    PiperOrigin-RevId: 472488921
    (cherry picked from commit 92cfa74)
    marcbaechinger authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    d2623dd View commit details
    Browse the repository at this point in the history
  8. Merge pull request #123 from stoyicker:wrapping_media_source

    PiperOrigin-RevId: 476376463
    (cherry picked from commit 8623f1f)
    marcbaechinger authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    d648c19 View commit details
    Browse the repository at this point in the history
  9. Map lib-effect from androidx to exoplayer2

    PiperOrigin-RevId: 482179761
    (cherry picked from commit 28c4be2)
    marcbaechinger authored and microkatz committed Oct 19, 2022
    Copy the full SHA
    6f94b8e View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2022

  1. Merge pull request #10578 from thucngv:release-v2

    PiperOrigin-RevId: 481115402
    (cherry picked from commit 9861f88)
    marcbaechinger authored and microkatz committed Oct 20, 2022
    Copy the full SHA
    e13bbbc View commit details
    Browse the repository at this point in the history
  2. Merge pull request #183 from jasper-apps:bugfix/make-download-notific…

    …ation-appear-immediately
    
    PiperOrigin-RevId: 482165983
    (cherry picked from commit 405455b)
    marcbaechinger authored and microkatz committed Oct 20, 2022
    Copy the full SHA
    fc32f0d View commit details
    Browse the repository at this point in the history
  3. Remove muxerFactory dependency on playerListener

    This listener will need to be passed to the MuxerWrapper to throw when
    the Transformer is stuck.
    
    PiperOrigin-RevId: 482433552
    (cherry picked from commit e3f2842)
    kim-vde authored and microkatz committed Oct 20, 2022
    Copy the full SHA
    dc8098a View commit details
    Browse the repository at this point in the history
  4. Change areSizeAndRateSupported to use PerfomancePoint.covers

    PiperOrigin-RevId: 482461219
    (cherry picked from commit 0eb30ea)
    microkatz committed Oct 20, 2022
    Copy the full SHA
    b97a959 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2022

  1. Add DAI specific methods to AdPlaybackState

    PiperOrigin-RevId: 482755468
    (cherry picked from commit a8e6894)
    marcbaechinger authored and microkatz committed Oct 21, 2022
    Copy the full SHA
    b20752f View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2022

  1. Fix some incorrect comments in Cea608DecoderTest

    Also used all-caps consistently
    
    PiperOrigin-RevId: 483317405
    (cherry picked from commit 6dcb9aa)
    icbaker authored and microkatz committed Oct 24, 2022
    Copy the full SHA
    84375a4 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #10618 from vishnuchilakala:fix/do_not_send_conten…

    …t_complete_if_midroll_skipped
    
    PiperOrigin-RevId: 482481703
    (cherry picked from commit a413b47)
    rohitjoins authored and microkatz committed Oct 24, 2022
    Copy the full SHA
    d2c4f74 View commit details
    Browse the repository at this point in the history
  3. Merge pull request #162 from ittiam-systems:rtp-mp4a-latm

    PiperOrigin-RevId: 482490230
    (cherry picked from commit fd2ba37)
    rohitjoins authored and microkatz committed Oct 24, 2022
    Copy the full SHA
    23b070d View commit details
    Browse the repository at this point in the history
  4. Add CanIgnoreReturnValue to AudioProcessor#configure + implementations

    Although it can be useful to check the output format, it's not required or needed.
    
    For some AudioProcessor implementations, it is stated/obvious that
    the output format will match the input, in which case there is no
    a need to check the return value.
    
    #cleanup
    
    PiperOrigin-RevId: 483403679
    (cherry picked from commit a7bfa12)
    Samrobbo authored and microkatz committed Oct 24, 2022
    Copy the full SHA
    154cd42 View commit details
    Browse the repository at this point in the history
  5. Use int for an unsigned byte value in Cea608Decoder

    This is a no-op, but it's more 'correct' because it avoids any potential
    sign mix-ups that come from storing an unsigned byte (with a
    potentially set MSB) in a signed java byte variable.
    
    PiperOrigin-RevId: 483409798
    (cherry picked from commit 3d0f43a)
    icbaker authored and microkatz committed Oct 24, 2022
    Copy the full SHA
    0f5245f View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2022

  1. Clarify sideloaded subtitle example

    #minor-release
    
    PiperOrigin-RevId: 483633564
    (cherry picked from commit eaf1f21)
    icbaker authored and microkatz committed Oct 25, 2022
    Copy the full SHA
    f7f371f View commit details
    Browse the repository at this point in the history
  2. Add GL utility methods to get 4x4 identity and set identity

    PiperOrigin-RevId: 483671580
    (cherry picked from commit f5ad4e0)
    claincly authored and microkatz committed Oct 25, 2022
    Copy the full SHA
    053e14a View commit details
    Browse the repository at this point in the history
  3. Move AudioProcessor to common.

    PiperOrigin-RevId: 483699606
    (cherry picked from commit dda17db)
    Samrobbo authored and microkatz committed Oct 25, 2022
    Copy the full SHA
    8debe79 View commit details
    Browse the repository at this point in the history
  4. Move DefaultAudioSink.AudioProcessorChain to AudioProcessorChain

    Split inner interface into separate file, which will go in common
    module. The old interface will be deprecated and extends the new.
    
    #cleanup
    
    PiperOrigin-RevId: 483732226
    (cherry picked from commit ad52b68)
    Samrobbo authored and microkatz committed Oct 25, 2022
    Copy the full SHA
    fe9bad1 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2022

  1. Fix Cea608Decoder handling of service switch commands in field 2

    From ANSI-CTA-608-E R-2014 section 8.4:
    > When closed captioning is used on line 21, field 2, it shall conform
    > to all of the applicable specifications and recommended practices as
    > defined for field 1 services with the following differences:
    > 1. The non-printing character of the miscellaneous control-character
    >    pairs that fall in the range of 0x14, 0x20 to 0x14, 0x2F in field 1,
    >    shall be replaced with 0x15, 0x20 to 0x15, 0x2F when used in field
    >    2.
    > 2. The non-printing character of the miscellaneous control-character
    >    pairs that fall in the range of 0x1C, 0x20 to 0x1C, 0x2F in field
    >    1, shall be replaced with 0x1D, 0x20 to 0x1D, 0x2F when used in
    >    field 2.
    
    This basically means that `cc1=0x15` in field 2 should be interpreted as
    `cc1=0x14` in field 1, and same for `0x1D -> 0x1C`.
    
    The `isMiscCode`  method above already handles this by ignoring the LSB
    (the only difference between `0x14` and `0x15`, and `0x1C` and `0x1D`)
    by AND-ing with `0xF6` instead of `0xF7`. This change uses the same
    trick in `isServiceSwitchCommand`.
    
    Issue: #10666
    #minor-release
    PiperOrigin-RevId: 483927506
    (cherry picked from commit 7c6d492)
    icbaker authored and microkatz committed Oct 26, 2022
    Copy the full SHA
    6b3bec8 View commit details
    Browse the repository at this point in the history
  2. Mute input video player in transformer demo

    PiperOrigin-RevId: 483969411
    (cherry picked from commit 8181b3c)
    Googler authored and microkatz committed Oct 26, 2022
    Copy the full SHA
    81b3e40 View commit details
    Browse the repository at this point in the history
  3. Add AudioProcessor.AudioFormat equals method.

    PiperOrigin-RevId: 483983486
    (cherry picked from commit c9585d0)
    Samrobbo authored and microkatz committed Oct 26, 2022
    Copy the full SHA
    861cd9a View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2022

  1. Add muxer timer to detect when generating an output sample is too slow

    This allows to throw when the Transformer is stuck or is too slow.
    
    PiperOrigin-RevId: 484179037
    (cherry picked from commit 376ee77)
    kim-vde authored and microkatz committed Oct 27, 2022
    Copy the full SHA
    94f3b1b View commit details
    Browse the repository at this point in the history
  2. Make adding ad live breaks more robust

    This change makes adding ad events in live streams more robust by allowing ad
    groups to grow in number of ads if more ad events are received than initially
    announced by the SDK.
    
    With the IMA prefetch feature, an AdPod can grow in size in certain conditions
    like from initially 2 ads to 4 ads being part of the ad group. With this change,
    if an additional ad event arrives while the ad group is still being played,
    the ad group is expanded. If the event arrives late and the ad group is already
    completed, a new group is created for the remaining ads.
    
    This also covers the case where we join the live stream while an ad is being
    played and we missed at least one LOADED event from the SDK. Ads of the group
    before the first LOADED event are ignored in such a case.
    
    PiperOrigin-RevId: 484214760
    (cherry picked from commit 136addf)
    marcbaechinger authored and microkatz committed Oct 27, 2022
    Copy the full SHA
    f06e8ee View commit details
    Browse the repository at this point in the history
  3. Add test for muxer watchdog timer

    PiperOrigin-RevId: 484298261
    (cherry picked from commit 42057cc)
    kim-vde authored and microkatz committed Oct 27, 2022
    Copy the full SHA
    d652020 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2022

  1. Upgrade dackka and fix some generation errors

    #minor-release
    
    PiperOrigin-RevId: 484483080
    (cherry picked from commit fc1eca1)
    andrewlewis authored and microkatz committed Oct 28, 2022
    Copy the full SHA
    c02d477 View commit details
    Browse the repository at this point in the history
  2. Disable the muxer watchdog if all tracks have ended.

    PiperOrigin-RevId: 484512661
    (cherry picked from commit 2390322)
    Samrobbo authored and microkatz committed Oct 28, 2022
    Copy the full SHA
    a3de075 View commit details
    Browse the repository at this point in the history
  3. Bump appTargetSDKVersion to 33

    #minor-release
    
    PiperOrigin-RevId: 484514123
    (cherry picked from commit 1bbe7c1)
    marcbaechinger authored and microkatz committed Oct 28, 2022
    Copy the full SHA
    86ac8f5 View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2022

  1. Tighten the wording for sending a pull request.

    PiperOrigin-RevId: 485036120
    (cherry picked from commit 8030a49)
    rohitjoins authored and microkatz committed Oct 31, 2022
    Copy the full SHA
    375978b View commit details
    Browse the repository at this point in the history
  2. Disable failing tests of FlacExtractorSeekTest

    PiperOrigin-RevId: 485061783
    (cherry picked from commit 55b82ff)
    rohitjoins authored and microkatz committed Oct 31, 2022
    Copy the full SHA
    721487a View commit details
    Browse the repository at this point in the history
  3. Enfore minCompileSdk version when depending on ExoPlayer/Media3 libs

    If an app sets a compileSdkVersion that is lower than the one used to
    create AARs of its dependencies, the build process may produce invalid
    outputs, for example by stripping methods from the APK that are only
    called when the app is running on a new API version.
    
    To avoid this issue, we can enforce that the compileSdk of apps or
    libraries depending on ExoPlayer/Media3 is at least the same as the
    one we used for compilation when creating the AAR.
    
    Issue: #10684
    PiperOrigin-RevId: 485100067
    (cherry picked from commit 23d39ca)
    tonihei authored and microkatz committed Oct 31, 2022
    Copy the full SHA
    e4d77f7 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2022

  1. Removed move transformation for exoplayer2 audio package-info.java

    dda17db creation of audio/package-info.java introduced a copybara conflict with the exoplayer2/audio/package-info.java move transformation in copy.bara.sky. Solution was to remove original package-info-common-audio.java and the move transformation as dda17db now covers it.
    
    Tested with a copybara push to exoplayer github
    
    PiperOrigin-RevId: 485329674
    (cherry picked from commit 972e169)
    microkatz committed Nov 1, 2022
    Copy the full SHA
    7bfc645 View commit details
    Browse the repository at this point in the history
  2. HDR: Generalize Pixel 6 workaround to TP

    PiperOrigin-RevId: 485366659
    (cherry picked from commit 6de5d93)
    dway123 authored and microkatz committed Nov 1, 2022
    Copy the full SHA
    69112df View commit details
    Browse the repository at this point in the history
  3. Load bitmaps for MediaMetadataCompat and handle the metadata updates.

    * Add `Listener` in `MediaSession` with method `onNotificationRefreshRequired(MediaSession)`.
    * Add `MediaSessionService` as the listener of the `MediaSession` when `MediaSession` is added to `MediaSessionService`
    * Load bitmap when update metadata in `MediaSessionLegacyStub` and call `onNotificationRefreshRequired` when bitmap asynchronously arrives.
    
    PiperOrigin-RevId: 485376145
    (cherry picked from commit 624238c)
    tianyif authored and microkatz committed Nov 1, 2022
    Copy the full SHA
    61b1cfc View commit details
    Browse the repository at this point in the history
  4. Apply tone mapping workaround to Pixel Watch as well.

    Not sure what BUILD.ID the fix will first be applied on though.
    
    PiperOrigin-RevId: 485389618
    (cherry picked from commit 2ddd645)
    dway123 authored and microkatz committed Nov 1, 2022
    Copy the full SHA
    e48fe57 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2022

  1. Fix Dackka/Metalava errors in the effects module

    Public methods may only refer to public types in their signature. This
    change ensures that by switching to a public supertype everywhere.
    
    PiperOrigin-RevId: 485568625
    (cherry picked from commit 3fdfe58)
    icbaker authored and microkatz committed Nov 2, 2022
    Copy the full SHA
    10d06dd View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2022

  1. Fix Dackka javadoc errors in protected methods

    If there's an @param javadoc tag in a supertype then all overrides
    of this method that don't also override the javadoc must use the same
    parameter name.
    
    PiperOrigin-RevId: 485857711
    (cherry picked from commit b8e5d70)
    icbaker authored and microkatz committed Nov 3, 2022
    Copy the full SHA
    b25e1e2 View commit details
    Browse the repository at this point in the history
  2. Add 'Player.getVideoSurfaceSize' that returns the size of the surface

    on which the video is rendered.
    
    Design Doc: go/aaos-mu-media-dd
    
    PiperOrigin-RevId: 485884772
    Googler authored and microkatz committed Nov 3, 2022
    Copy the full SHA
    dadf281 View commit details
    Browse the repository at this point in the history
  3. HDR Test: Add link to tested method.

    PiperOrigin-RevId: 485890141
    (cherry picked from commit bd4e58d)
    dway123 authored and microkatz committed Nov 3, 2022
    Copy the full SHA
    b949b6b View commit details
    Browse the repository at this point in the history
  4. Disable publishing block when media3 included in another build.

    From https://github.com/androidx/media/pull/127/files
    
    PiperOrigin-RevId: 485921271
    (cherry picked from commit 36a51ac)
    yschimke authored and microkatz committed Nov 3, 2022
    Copy the full SHA
    cc9823d View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2022

  1. Add @SuppressWarnings to unblock T SDK for <unknown commit>

    LSC: https://docs.google.com/document/d/16tpK6aXqN68PvTyvt4siM-m7f0NXi_8xEeitLDzr8xY/edit?usp=sharing
    
    TESTED=NA
    BEGIN_PUBLIC/END_PUBLIC
    PiperOrigin-RevId: 486180995
    
    (cherry picked from commit 88445d2)
    Googler authored and microkatz committed Nov 4, 2022
    Copy the full SHA
    fe47393 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2022

  1. HDR: Update test FileUtil to handle null ColorInfo.

    PiperOrigin-RevId: 486706595
    (cherry picked from commit 0b53c93)
    dway123 authored and microkatz committed Nov 7, 2022
    Copy the full SHA
    9ad5650 View commit details
    Browse the repository at this point in the history
  2. HDR: Set decoder codec profile and level if available.

    This should be necessary to ensure decoders see fewer errors.
    
    Setting this resulted in removing native_dequeueOutputBuffer errors on OMX.MTK decoders for in-app tone mapping prototyping.
    
    PiperOrigin-RevId: 486715941
    (cherry picked from commit 0b7e5bb)
    dway123 authored and microkatz committed Nov 7, 2022
    Copy the full SHA
    0969819 View commit details
    Browse the repository at this point in the history
  3. Move muxer initialization off application thread

    Problem: We are initialising muxer as soon as we start the transformation. Now the startTransformation() method can be called from main thread, but muxer creation is an I/O operation and should be not be done on main thread.
    
    Solution: Added lazy initialisation of muxer object. The actual transformation happens on background thread so the muxer will be initialised lazily from background thread only.
    
    Another way was to provide an initialize() method on MuxerWrapper which will explicitly initialise muxer object but with this approach the caller need to call the initialise method before calling anything else. With current implementation the renderers are calling MuxerWrapper methods on various callbacks (Not sequentially) and also we are sharing same muxer with multiple renderers so It might become confusing for the caller on when to call the initialise() method. Also there are few methods on MuxerWrapper which dont really need muxer object. So in short it might make MuxerWrapper APIs more confusing.
    
    Validation: Verified the transformation from demo app.
    PiperOrigin-RevId: 486735787
    (cherry picked from commit b10b4e6)
    SheenaChhabra authored and microkatz committed Nov 7, 2022
    Copy the full SHA
    194a32c View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2022

  1. Move muxing inside sample pipelines

    This logic is currently in the player renderers. With multi-asset, the
    renderers will go into the AssetLoader, which shouldn't be responsible
    for muxing.
    
    PiperOrigin-RevId: 486860502
    (cherry picked from commit d8754b6)
    kim-vde authored and microkatz committed Nov 8, 2022
    Copy the full SHA
    f3f2f93 View commit details
    Browse the repository at this point in the history
  2. Set targetSdkVersion of main demo app back to 29

    #minor-release
    
    PiperOrigin-RevId: 486969194
    (cherry picked from commit 2172466)
    marcbaechinger authored and microkatz committed Nov 8, 2022
    Copy the full SHA
    f5acc9e View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2022

  1. Move slow mo logic to sample pipelines

    This is to avoid having this logic in TransformerInternal once it is
    added.
    
    PiperOrigin-RevId: 487159941
    (cherry picked from commit b59fdf5)
    kim-vde authored and microkatz committed Nov 9, 2022
    Copy the full SHA
    881838b View commit details
    Browse the repository at this point in the history
  2. Merge Issue: #10762: Fix ffmpeg jni wrapper returning invalid result …

    …codes
    
    Imported from GitHub PR Issue: #10762
    
    This ensure that ffmpeg error code are properly translated to values that the ExoPlayer decoder understand.
    The main gain is that it allows the decoder to properly ignore more cases of invalid data and recover.
    The second gain is that the other errors are now proper ExoPlayer errors and no more obscure buffer ones.
    
    Fixes: Issue: #10760
    Merge 82ceeb7 into 972e169
    COPYBARA_INTEGRATE_REVIEW=go/exoghi/10762 from Tolriq:ffmpeg_error_code 82ceeb7
    PiperOrigin-RevId: 487189910
    
    (cherry picked from commit 6d2e7a1)
    Tolriq authored and microkatz committed Nov 9, 2022
    Copy the full SHA
    95d9e49 View commit details
    Browse the repository at this point in the history
  3. Add ExoPlayerAssetLoader

    Just move some code around for now, to start setting up the overall
    structure.
    
    PiperOrigin-RevId: 487229329
    (cherry picked from commit 5d1cab0)
    kim-vde authored and microkatz committed Nov 9, 2022
    Copy the full SHA
    1ffe6a7 View commit details
    Browse the repository at this point in the history
  4. Change UnsupportedEncodingException to IllegalArgumentException

    In startTransformation method we were throwing UnsupportedEncodingException (IOException) when mediaItem with unsupported arguments is passed.
    Changed this to IllegalArgumentException which seems more logical here.
    
    PiperOrigin-RevId: 487259296
    (cherry picked from commit 4598cc9)
    SheenaChhabra authored and microkatz committed Nov 9, 2022
    Copy the full SHA
    70f74fd View commit details
    Browse the repository at this point in the history
  5. Set HDR color info on FrameworkMuxer

    Not setting the color info results in a missing "colr" box in the produced
    container, under file/moov/trak/mdia/minf/stbl/stsd/hvc1. This means extractors
    will not be able to find out the transcoded file is HDR.
    
    In `Transformer`, this means it can't transcode this transcoded file, because
    it currently relies on the container bearing HDR info to construct the
    transcoding sample pipeline.
    
    PiperOrigin-RevId: 487276712
    (cherry picked from commit d6c8e3a)
    claincly authored and microkatz committed Nov 9, 2022
    Copy the full SHA
    98c981f View commit details
    Browse the repository at this point in the history
  6. HDR: Implement ForceInterpretHdrVideoAsSdr

    Also, document that we tone map when no HDR features are explicitly set
    
    PiperOrigin-RevId: 487310971
    (cherry picked from commit 8bdd278)
    dway123 authored and microkatz committed Nov 9, 2022
    Copy the full SHA
    39d9aef View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2022

  1. Fix Dackka/Metalava errors in the ExoPlayer module

    This makes two types of fix:
    1. Align parameter names on overridden methods where the superclass
       has `@param` javadoc.
    2. Use `@hide` on `protected final` methods that refer to package-private
       types. This will hide these symbols from Dackka javadoc generation
       but not (currently) from the artefacts distributed on Maven. These
       methods are currently unusable outside their package anyway (e.g. by
       external developers) because of the dependency on a package-private
       type.
    
    This also changes some HLS, SmoothStreaming, and IMA code where I've renamed
    parameters of overridden methods to be consistent across the type
    hierarchy.
    
    #minor-release
    
    PiperOrigin-RevId: 487472665
    (cherry picked from commit 10c4a4d)
    icbaker authored and microkatz committed Nov 10, 2022
    Copy the full SHA
    01f30f0 View commit details
    Browse the repository at this point in the history
  2. Fix Dackka/Metalava errors in the HLS and RTSP modules

    This makes two fixes:
    1. Remove `HlsSampleStreamWrapper.Callback` (package-private) from the
       list of interfaces implemented by `HlsMediaPeriod` (`public`) and
       move the implementation to a private inner class instead. This avoids
       Metalava complaining about a public class that inherits from a
       package-private type.
    2. Reduce the visibility of
       `RtpPayloadFormat.isFormatSupported(MediaDescription)` from `public`
       to package-private. The `MediaDescription` type is already
       package-private, so this method was already unusable outside the
       package.
    
    #minor-release
    
    PiperOrigin-RevId: 487472781
    (cherry picked from commit 9041d7b)
    icbaker authored and microkatz committed Nov 10, 2022
    Copy the full SHA
    2540dee View commit details
    Browse the repository at this point in the history
  3. Fix Dackka/Metalava errors in av1, flac, ffmpeg, midi, and opus modules

    This uses `@hide` on `protected final` methods to hide them from Dackka
    javadoc generation, since these methods are inaccessible to developers
    anyway. These symbols will still (currently) be included in artefacts
    distributed on Maven (because we don't run Metalava as part of
    generating these artefacts).
    
    In some cases I had to change the visibility/finality of methods to make
    them `protected final` before adding the `@hide` annotation (but
    the impact should be very low, since most of these methods were either
    already unusable by app developers, or they shouldn't have been used).
    
    #minor-release
    
    PiperOrigin-RevId: 487472907
    (cherry picked from commit 1cd488a)
    icbaker authored and microkatz committed Nov 10, 2022
    Copy the full SHA
    925e733 View commit details
    Browse the repository at this point in the history
  4. Fix Dackka/Metalava errors in test_utils module

    This involves reducing the visibility of methods/constructors that
    are already unusable outside the `androidx.media3.test.utils` package.
    
    #minor-release
    
    PiperOrigin-RevId: 487473005
    (cherry picked from commit ca8de0e)
    icbaker authored and microkatz committed Nov 10, 2022
    Copy the full SHA
    7f706c8 View commit details
    Browse the repository at this point in the history
  5. Fix Dackka parameter name error in Gav1Decoder and VpxDecoder

    These aren't caught by presubmit because the classes are annotated
    `@VisibleForTesting` and are therefore stripped out by Metalava. However
    Metalava doesn't run when we're generating javadoc for real.
    
    #minor-release
    
    PiperOrigin-RevId: 487476260
    (cherry picked from commit 14e23d3)
    icbaker authored and microkatz committed Nov 10, 2022
    Copy the full SHA
    77c8875 View commit details
    Browse the repository at this point in the history
  6. Set targetSdkVersion of main demo app to 29

    #minor-release
    
    PiperOrigin-RevId: 487479366
    (cherry picked from commit 09bee98)
    christosts authored and microkatz committed Nov 10, 2022
    Copy the full SHA
    386e2af View commit details
    Browse the repository at this point in the history
  7. Fix parameter name mismatch in MappingTrackSelector.selectTracks

    It's not clear to me why presubmit didn't catch this, I briefly
    investigated but couldn't work it out - so I'm just going to fix
    it and move on.
    
    #minor-release
    
    PiperOrigin-RevId: 487497827
    (cherry picked from commit 13ee34f)
    icbaker authored and microkatz committed Nov 10, 2022
    Copy the full SHA
    ab501dd View commit details
    Browse the repository at this point in the history
  8. Configure Dackka to generate javadoc for protected methods

    #minor-release
    
    PiperOrigin-RevId: 487497923
    (cherry picked from commit 7cb2e11)
    icbaker authored and microkatz committed Nov 10, 2022
    Copy the full SHA
    23518e2 View commit details
    Browse the repository at this point in the history
  9. Copy the full SHA
    d976041 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2022

  1. Reformat demo build.gradle file

    PiperOrigin-RevId: 487539107
    (cherry picked from commit 0383b72)
    icbaker authored and microkatz committed Nov 17, 2022
    Copy the full SHA
    dd49f24 View commit details
    Browse the repository at this point in the history
  2. Add @ForOverride to DecoderAudioRenderer protected methods

    PiperOrigin-RevId: 487779266
    (cherry picked from commit a34fdcf)
    icbaker authored and microkatz committed Nov 17, 2022
    Copy the full SHA
    704e84f View commit details
    Browse the repository at this point in the history
  3. Reformat demo build.gradle file

    PiperOrigin-RevId: 488376715
    (cherry picked from commit 30b73c8)
    icbaker authored and microkatz committed Nov 17, 2022
    Copy the full SHA
    54d3dbf View commit details
    Browse the repository at this point in the history
  4. Calculate SSAI window duration for live periods with unset duration.

    We currently skip this calculation entirely, but it can be added by
    calculating the window duration using the wrapped window's duration
    and the provided AdPlaybackState.
    
    Issue: #10764
    PiperOrigin-RevId: 488614767
    (cherry picked from commit 20151b9)
    tonihei authored and microkatz committed Nov 17, 2022
    Copy the full SHA
    5def6e4 View commit details
    Browse the repository at this point in the history
  5. Mark iterationFinished when triggering release event.

    When we currently trigger the iteration finished event during the
    release, we don't mark the event as triggered. This means that
    someone can trigger another release from within the callback,
    which then tries to resend the event.
    
    Issue: #10758
    
    #minor-release
    
    PiperOrigin-RevId: 488645089
    (cherry picked from commit 3e5103a)
    tonihei authored and microkatz committed Nov 17, 2022
    Copy the full SHA
    88804dd View commit details
    Browse the repository at this point in the history
  6. Set valid channel masks for 8 and 12 channels on all Android versions

    Util.getAudioTrackChannelConfig() maps a channel count to a
    channel mask that is passed to AudioTrack. The method expected that
    playback of 8-channel audio is possible from Android 5.1 and playback of
    12-channel audio is only possible from Android 12L. However, there is no
    restriction on the upper number of channels that can be passed to the
    AudioTrack. #10701 is an example where the audio decoder
    outputs 12 channels on an Android 10.
    
    This change removes the restrictions for 8 and 12 channels. Note, we still
    do not support playback of arbitrary number of channels as it would require
    further changes to DefaultAudioSink.
    
    #minor-release
    
    Issue: #10701
    PiperOrigin-RevId: 488659831
    (cherry picked from commit 1b24e6f)
    christosts authored and microkatz committed Nov 17, 2022
    Copy the full SHA
    db2ab52 View commit details
    Browse the repository at this point in the history
  7. Rename getVideoSurfaceSize to getSurfaceSize

    This better matches the callback name (onSurfaceSizeChanged) and
    probably cause less confusion with getVideoSize.
    
    PiperOrigin-RevId: 488669786
    (cherry picked from commit 8438dac)
    tonihei authored and microkatz committed Nov 17, 2022
    Copy the full SHA
    6108c05 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2022

  1. Filter bogus AndroidX core jar file when creating javadoc

    #minor-release
    
    PiperOrigin-RevId: 489202167
    (cherry picked from commit 7e82d4e)
    microkatz committed Nov 22, 2022
    Copy the full SHA
    f4259f3 View commit details
    Browse the repository at this point in the history
  2. Remove @hide javadoc annotation from ExoPlayer GitHub

    This tag is only understood by Dackka, which is used to generate the media3 javadoc.
    
    PiperOrigin-RevId: 489233200
    (cherry picked from commit 058cba9)
    icbaker authored and microkatz committed Nov 22, 2022
    Copy the full SHA
    bd6570f View commit details
    Browse the repository at this point in the history
  3. Version bump to exoplayer:2.18.2 and media3:1.0.0-beta03

    #minor-release
    
    PiperOrigin-RevId: 489959918
    (cherry picked from commit ca190c0)
    microkatz committed Nov 22, 2022
    Copy the full SHA
    66995db View commit details
    Browse the repository at this point in the history
  4. Update JavaDoc for exoplayer:2.18.2

    #minor-release
    
    PiperOrigin-RevId: 490202192
    (cherry picked from commit 6f1cf6d)
    microkatz committed Nov 22, 2022
    Copy the full SHA
    aef5330 View commit details
    Browse the repository at this point in the history
  5. Reorder some release notes in other sections.

    #minor-release
    
    PiperOrigin-RevId: 490224795
    (cherry picked from commit e567594)
    tonihei authored and microkatz committed Nov 22, 2022
    Copy the full SHA
    9b0790e View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2022

  1. Fix compilation error in ffmpeg JNI layer

    PiperOrigin-RevId: 490263003
    (cherry picked from commit 202e03f)
    christosts authored and microkatz committed Nov 23, 2022
    Copy the full SHA
    a114b0e View commit details
    Browse the repository at this point in the history