- 03 May, 2023 16 commits
-
-
A list was being accessed from one thread when it wasn't guaranteed to be empty. PiperOrigin-RevId: 529102141
huangdarwin committed -
PiperOrigin-RevId: 529069808
tofunmi committed -
* Implement RendererCapabilities.Listener in DefaultTrackSelector. * Add new methods TrackSelector.invalidateForRendererCapabilitiesChange and TrackSelector.InvalidateListener.onRendererCapabilitiesChanged. * Add new field allowInvalidateSelectionsOnRendererCapabilitiesChange to DefaultTrackSelector.Parameter to allow opt-in of the renderer capabilities detection feature. * Add logics of triggering track reselection when renderer capabilities change. PiperOrigin-RevId: 529067433
tianyifeng committed -
When we created androidTests, in the past, they always had a URI pointing to a resource, therefore we always had a URI scheme. With texture input, this will not longer be the case (EditedMediaItems's may have URI.EMPTY, which have a null scheme) so we need to check for this so tests don't falsely fail. PiperOrigin-RevId: 528848411
tofunmi committed -
The existing logic to drop (actually fail on) 0 sized samples seems no op if if 2 out of 10 samples are of size 0. Checked same scenario with MediaMuxer where 1. If input file has 300 samples. 2. Make every 5th sample as an empty byte buffer. 3. Output file is generated without error. 4. Output file has 240 samples. 5. Exoplayer is able to play output file (blurry). The new change is in line with MediaMuxer behaviour. PiperOrigin-RevId: 528798046
sheenachhabra committed -
Systems accepting URIs should treat schemes as case-insensitive ([RFC 3986 Section 3.1](https://www.rfc-editor.org/rfc/rfc3986#section-3.1)): > An implementation should accept uppercase letters as equivalent to > lowercase in scheme names (e.g., allow "HTTP" as well as "http") for > the sake of robustness PiperOrigin-RevId: 528735287
ibaker committed -
PiperOrigin-RevId: 528734663
claincly committed -
By default Android Studio will name the project based on the root directory it's opened from. This gives a consistent (and clear) name regardless of what root directory the project is located in on the filesystem. Explicitly defining `rootProject.name` is recommended here: https://docs.gradle.org/current/userguide/multi_project_builds.html#naming_recommendations PiperOrigin-RevId: 528729078
ibaker committed -
This means that comments like `//copybara:media3-only` are now detected (no space between `//` and `copybara`) which will ensure that lines like this are correctly transformed for the media3 and exoplayer2 GitHub repos: https://github.com/google/ExoPlayer/blob/aa4e0080147fe76a6c0cca40b7eccdf45eb58028/library/effect/build.gradle#L33 PiperOrigin-RevId: 527919649
ibaker committed -
Issue: androidx/media#319 PiperOrigin-RevId: 527891646
michaelkatz committed -
Also make FinalShaderProgramWrapper always receive internal texture. This means it does not sample from a input texture, and its input color is always linear, hence the input type does not matter. PiperOrigin-RevId: 527869045
claincly committed -
https://github.com/google/ExoPlayer/commit/5a62d1bc25e921df363eb741b82b00a7c87dc94f
*** Original commit *** Effect: glFlush instead of glFinish on tex output This is much faster (~2-3x) than glFlush. While there's a risk that GL commands queued to the GL server may not be complete by the time non-GL commands access the texture, this should be unlikely as we only access the texture from GL. If we see stability issues in the future, we can reconsider and move this back to glFinish (or GL synchronization mechanisms like fences, which are more complex) *** PiperOrigin-RevId: 527848094
tofunmi committed -
renderOutputFrame actually renders frames to an output surface. We'll soon have a releaseOutputFrame method, that would release resources associated with an output time, so rename this to disambiguate the two methods. Also rename onOutputFrameAvailable to onOutputFrameAvailableForRendering, to make it clear this is not available for "release" This change should be a renaming-only change and have no functional differences. PiperOrigin-RevId: 527844947
huangdarwin committed -
The field is only accessed on the GL thread. PiperOrigin-RevId: 527844674
tofunmi committed -
This is much faster (~2-3x) than glFlush. While there's a risk that GL commands queued to the GL server may not be complete by the time non-GL commands access the texture, this should be unlikely as we only access the texture from GL. PiperOrigin-RevId: 527641520
huangdarwin committed -
PiperOrigin-RevId: 527554408
tofunmi committed
-
- 27 Apr, 2023 6 commits
-
-
PiperOrigin-RevId: 527504752
tonihei committed -
Add `VideoFrameProcessor.registerInputStream()` to signal a new type of input. And `InputHandler.signalEndOfCurrentInputStream()` to signal to `InputHandler` partial input stream completion. Fully processed means after FinalShaderProgramWrapper releases the last frame. PiperOrigin-RevId: 527356646
claincly committed -
glFinish should be called before reading from a texture, to make sure it's been properly rendered to. PiperOrigin-RevId: 527302946
huangdarwin committed -
This partially reverts https://github.com/google/ExoPlayer/commit/9842fbab29a53a089f39e8e71fe9ed05d7d38d64 because our tests fail with 4.10 with an error like: ``` ShadowActivityThread.reset: ActivityThread not set java.lang.NullPointerException: ShadowActivityThread.reset: ActivityThread not set at java.base/java.util.Objects.requireNonNull(Objects.java:246) at org.robolectric.shadows.ShadowActivityThread.reset(ShadowActivityThread.java:284) at org.robolectric.Shadows.reset(Shadows.java:2665) at org.robolectric.android.internal.AndroidTestEnvironment.resetState(AndroidTestEnvironment.java:657) at org.robolectric.RobolectricTestRunner.lambda$finallyAfterTest$0(RobolectricTestRunner.java:370) at org.robolectric.util.PerfStatsCollector.measure(PerfStatsCollector.java:86) at org.robolectric.RobolectricTestRunner.finallyAfterTest(RobolectricTestRunner.java:368) at org.robolectric.internal.SandboxTestRunner$2.lambda$evaluate$2(SandboxTestRunner.java:298) at org.robolectric.internal.bytecode.Sandbox.lambda$runOnMainThread$0(Sandbox.java:99) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:830) ``` It looks like the code throwing this exception is new in Robolectric 4.10: https://github.com/robolectric/robolectric/commit/65654a76ce6f166301ab1efb2047bab1998f8949 PiperOrigin-RevId: 527290033
ibaker committed -
In ASwB, all Transformer tests can be run by right-clicking on the project and clicking "Run all tests". We cannot, however, select only some specific test files within a project (ex. all non-analysis tests) to run tests on. Add @Ignore to analysis tests, which are not intended to be run anyways when determining whether Transformer is working on some device. These tests also don't have proper skipping logic when a device doesn't support a format, so they can't be run effectively on low-end devices anyways. This eases manual testing, for example when debugging whether tests all pass on a device. When analysis tests are desired to be run, it should be easy to comment out the @Ignore. PiperOrigin-RevId: 527289600
huangdarwin committed -
PiperOrigin-RevId: 527271212
tofunmi committed
-
- 26 Apr, 2023 16 commits
-
-
PiperOrigin-RevId: 527259619
Ian Baker committed -
This ensures the logic is consistent and can also be easily used from custom UIs. PiperOrigin-RevId: 527249127
tonihei committed -
Allow the VideoFrameProcessor to output to a texture without an output surface. Tested by updating texture output tests to no longer output to a surface. PiperOrigin-RevId: 527244605
huangdarwin committed -
The only dependencies that are not updated are the ones that need to be kept in sync with other system (like Android source tree) or would require a Kotlin dependency in common or exoplayer modules. As a side effect, some demo apps now need a Kotlin config and some additional modules require desugaring/multidex logic. To simplify the setup, the desugaring and multidex steps are added to the common config. PiperOrigin-RevId: 527243950
tonihei committed -
This was only used in EncoderWrapper, so move createSupportedTransformationRequest from VideoSamplePipeline to EncoderWrapper to reduce its scope. PiperOrigin-RevId: 527226578
huangdarwin committed -
PiperOrigin-RevId: 527001582
claincly committed -
The production code changes are in transformer, but the tests in effect have also been updated to confirm the is no color regression `inputColorInfo.colorTransfer=C.COLOR_TRANSFER_SRGB` PiperOrigin-RevId: 526950435
tofunmi committed -
PiperOrigin-RevId: 526940261
tofunmi committed -
And minor fixes. PiperOrigin-RevId: 526717927
claincly committed -
PiperOrigin-RevId: 526683141
sheenachhabra committed -
Previously, I assumed that SDR contents must be BT709, and HDR contents must be BT2020. Turns out BT2020 is just wide-gamut, and SDR contents / transfers may be represented in BT2020 color spaces. Relax the check, so that we don't throw when valid BT2020 SMPTE 170M contents are input into effects. PiperOrigin-RevId: 526668347
huangdarwin committed -
PiperOrigin-RevId: 526655859
sheenachhabra committed -
PiperOrigin-RevId: 526652129
tofunmi committed -
PiperOrigin-RevId: 526642898
claincly committed -
https://github.com/google/ExoPlayer/commit/e64be9b689aa76a092ccde17fbd46e8c67096ea1
*** Original commit *** Rollback of https://github.com/google/ExoPlayer/commit/f92a9a628a3b2b8e189e583d209268b9d49d8978 *** Original commit *** Bump Guava version to 31.1 *** *** PiperOrigin-RevId: 526601244
ibaker committed -
PiperOrigin-RevId: 526595567
claincly committed
-
- 25 Apr, 2023 2 commits