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

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
360 commits
Select commit Hold shift + click to select a range
5668c8a
Implement RGBA color matrices processor
leonwind Aug 1, 2022
0b0475e
Create effect module.
a-googler Aug 2, 2022
368d282
Update Leanback library from androidx-platform-dev with build#8803384
a-googler Aug 2, 2022
89a2685
Move effects functionality out of transformer to effects module.
a-googler Aug 3, 2022
ff35958
Clean up FrameProcessor TODOs.
a-googler Aug 3, 2022
19f6b54
Clean up NOP constructor lines in RTP readers
claincly Aug 3, 2022
8d1b91a
Fix saving previous debugSurfaceView in FinalMatrixTPWrapper.
a-googler Aug 3, 2022
dce7c45
Avoid encoder default color info when tone-mapping
andrewlewis Aug 3, 2022
d7177ee
Remove clamp function in contrast fragment shader.
leonwind Aug 3, 2022
318d838
AudioOffload recovery.
yschimke Aug 4, 2022
6865cd4
Expose AudioOffload track state.
yschimke Aug 4, 2022
e9e7fb4
Factor out RTP timestamp to sample time method
claincly Aug 4, 2022
acf4080
HDR: Add comment to clarify lack of support HDR10 for AVC
dway123 Aug 4, 2022
e8a4cce
Add RgbAdjustment class to build RgbaMatrices
leonwind Aug 5, 2022
db2545b
Use multiple output frames in transformer MediaPipe demo pre API 23.
a-googler Aug 5, 2022
a0efd08
Fix frame processor reference
andrewlewis Aug 5, 2022
7218cb9
Make AudioTrackBufferSizeProvider public.
yschimke Aug 5, 2022
03b490b
Fix ConcurrentHashMap usage in demo MediaPipeProcessor.
a-googler Aug 5, 2022
1db2c74
Clarify SSIM request method name
andrewlewis Aug 5, 2022
01a4188
Throw if tone-mapping is requested but not enabled
andrewlewis Aug 5, 2022
1234470
Switch @param to @code tags in RgbAdjustment.
leonwind Aug 5, 2022
98dd4f8
Add support for multiple mid-track tempo changes
Hamzah-z Aug 8, 2022
dfc04d8
Remove unused log tag constant
andrewlewis Aug 8, 2022
fb85488
Add a custom MIME type for MIDI
Hamzah-z Aug 8, 2022
2503c0e
HDR: Input ColorInfo to the FrameProcessor.
dway123 Aug 8, 2022
c33a8e3
Split GlTextureProcessor.Listener into input/output/error listener.
a-googler Aug 9, 2022
c0bef3d
HDR: Rename ColorInfo#isHdr to isTransferHdr.
dway123 Aug 9, 2022
f18e0f8
Remove times(1) from effect and transformer tests as it is the default.
a-googler Aug 9, 2022
e138a2f
Add JSyn library build instructions for the MIDI module
Hamzah-z Aug 9, 2022
b84945d
Demo: Add legacy external storage permission for intents.
dway123 Aug 9, 2022
dee5c56
HDR: Update experimental_setEnableHdrEditing javadoc.
dway123 Aug 9, 2022
4a4bfc7
Avoid spinning in between intermediate texture processors.
a-googler Aug 10, 2022
3e4ca2c
HDR: Clarify tone mapping fallback.
dway123 Aug 10, 2022
4b3f001
Fix ChainingGlTextureProcessorListener field name.
a-googler Aug 10, 2022
5cc23fd
Add timeout for ad to load.
tonihei Aug 11, 2022
ea1e26d
Add additional build flags for ffmpeg on "arm64-v8a"
tonihei Aug 12, 2022
2697916
Avoid spinning while queueing input to ExternalTextureProcessor.
a-googler Aug 12, 2022
befcc01
Refactor RgbaMatrix to RgbMatrix.
leonwind Aug 12, 2022
9b6d997
Increase pixel difference threshold
andrewlewis Aug 15, 2022
d2000fd
Add initial version of SimpleBasePlayer
tonihei Aug 15, 2022
770839f
Update CMake version for AV1 extension
tonihei Aug 15, 2022
909953b
Increase max sample size for HEVC.
christosts Aug 15, 2022
6d09959
Allow high-priority tasks to be executed before other tasks.
a-googler Aug 15, 2022
c5b4cbe
HDR: Update limited range and add full range YUV to RGB color transfo…
dway123 Aug 16, 2022
d5710d3
Define CueGroup.EMPTY_TIME_ZERO for convenience
tonihei Aug 16, 2022
a4175b8
Compact a RGB Matrix chain into a singular RGB Matrix.
leonwind Aug 16, 2022
f555ed4
Fix typo
leonwind Aug 17, 2022
c65acc0
Defensively cancel frame processing tasks on error.
a-googler Aug 17, 2022
4c36dae
HDR: Clamp YUV to RGB conversion.
dway123 Aug 18, 2022
884e376
Allow frame release to be controlled outside FrameProcessor.
a-googler Aug 18, 2022
5c95b41
Fix the command sample size given to trackOutput.
Hamzah-z Aug 18, 2022
60d3e8e
Change onOutputFrameAvailable timestamp from nanos to micros.
a-googler Aug 19, 2022
f933666
Add device info to CastPlayer
marcbaechinger Aug 19, 2022
5bdb165
Reassign TODO to new bug.
a-googler Aug 19, 2022
218e97f
Handle initial RTSP seek
claincly Aug 22, 2022
2af7d87
Replace usage of `android_binary` with `build_test` for libraries
rohitjoins Aug 23, 2022
d2fb190
Bind contrastFactor in constructor instead of drawFrame method.
leonwind Aug 23, 2022
8fe0cd3
Fix outdated RtpDataLoadable javadoc
claincly Aug 23, 2022
c827c80
HDR: Add PQ support.
dway123 Aug 24, 2022
0e7227d
Fix missing id error
rohitjoins Aug 24, 2022
2d65ab1
HDR: Rename GL_COLOR_TRANSFER instances to COLOR_TRANSFER
dway123 Aug 25, 2022
e8b5976
Delete glPrograms in Contrast and RgbMatrix.
leonwind Aug 25, 2022
e74584e
Switch incorrectly configured native multidex to legacy
rohitjoins Aug 25, 2022
e56f595
Switch incorrectly configured native multidex to legacy for demos
rohitjoins Aug 25, 2022
0f271c2
Fix ExternalTextureManager: repeated queueing input frame in preview
claincly Aug 26, 2022
179eafb
Log instead of throwing for transfer mismatch
andrewlewis Aug 26, 2022
585dfaf
Update color info mismatch test
andrewlewis Aug 30, 2022
1071a91
Fix 1 ErrorProneStyle finding:
a-googler Aug 30, 2022
b6fecfc
Remove media3-only line from exoplayer2 `build.gradle` file
icbaker Aug 30, 2022
2e4ec7a
Update first frame instructions.
dway123 Aug 30, 2022
8e90496
Add static Grayscale and Inverted RGB Filter.
leonwind Aug 30, 2022
fc8edfc
Fix 19 ErrorProneStyle findings:
a-googler Aug 30, 2022
4c8d22f
HDR: Use factory for MatrixTransformationProcessor.
dway123 Aug 30, 2022
53b1cab
Effect: Add some FrameProcessor javadoc.
dway123 Aug 30, 2022
ba01d04
Add @SuppressWarnings to nullness errors detected by a newer version …
a-googler Aug 31, 2022
4d4af37
Fix 3 ErrorProneStyle findings:
a-googler Aug 31, 2022
61374d1
Skip transcoding if HDR video does not need encoding.
a-googler Sep 1, 2022
f52a3c2
Rename shouldPassthrough to shouldTranscode
dway123 Sep 2, 2022
7cb2b54
Add sepia, grayscale, and inverted filters to the demo app.
leonwind Sep 2, 2022
fdffdfe
Minor javadoc and scoping cleanup.
dway123 Sep 5, 2022
bdba124
Fix 1 ErrorProneStyle finding:
a-googler Sep 5, 2022
ec91dfc
Fix 3 ErrorProneStyle findings:
a-googler Sep 5, 2022
e61c876
Merge RgbProcessor and MatrixTransformation.
leonwind Sep 5, 2022
6ed69e3
Use super class for toGlProcessor in RgbFilter.
leonwind Sep 6, 2022
7477eb6
Make MatrixTransformationsProcessor constructor to take in Lists.
leonwind Sep 6, 2022
912da29
Include CamcorderProfile resolution in encoder capability test
claincly Sep 6, 2022
018ea9a
Bump IMA SDK version for gradle
marcbaechinger Sep 6, 2022
7acffcf
Remove redundant constant definition
claincly Sep 6, 2022
8df931b
Discard backbuffer before playback gets stuck.
tonihei Sep 7, 2022
b47c7a3
Add withAvailableAd for server side inserted ad groups
marcbaechinger Sep 7, 2022
240ca99
Clarify GlTextureProcessor.InputListener contract
claincly Sep 7, 2022
ce4ba2b
Remove conditional check for no-longer flaky API version
claincly Sep 8, 2022
8eab739
HDR: Add fallback MH tests.
dway123 Sep 8, 2022
7098d3b
Add caching for compositeRgbMatrixArray.
leonwind Sep 8, 2022
e725600
Decoder: Reduce max pending frame count limit down to 5.
dway123 Sep 9, 2022
c714b51
Handle int instead of byte in SSIM.
Samrobbo Sep 9, 2022
d10dbc5
Rollback of https://github.com/google/ExoPlayer/commit/eb6c1183b69d31…
Samrobbo Sep 9, 2022
7e810b5
Rename MatrixTransformationProcessor to MatrixTextureProcessor.
leonwind Sep 9, 2022
2fa9042
Split decoding out of the test
claincly Sep 11, 2022
474a557
Add rgb matrices to java docs for public constructors.
leonwind Sep 12, 2022
5b084dd
Add java docs for ContrastProcessor constructor.
leonwind Sep 12, 2022
c4f4c42
Add MssimCalculatorTest to verify SSIM calculations.
Samrobbo Sep 12, 2022
2576346
Change ContrastProcessor java doc for consistency.
leonwind Sep 13, 2022
766b9cd
Clarify the replaceOutputBuffer parameter because count is unclear.
Samrobbo Sep 14, 2022
3adfa48
Add support for skipping windows in MssimCalculator.
Samrobbo Sep 14, 2022
b041e4d
Fix testId and match it to the test name.
leonwind Sep 14, 2022
eb6cf35
Add LUT functionalities to transformer.
leonwind Sep 15, 2022
3af2971
Fix tracing under offload.
yschimke Sep 16, 2022
0a811bd
Fix outdated command in bitmap/README.md.
leonwind Sep 16, 2022
a6f58bd
Fix instrumentation tests not working via Gradle
rohitjoins Sep 20, 2022
b23c966
Use golden bitmaps in contrast pixel tests.
leonwind Sep 21, 2022
61acf58
Add file size to TransformationResult at the end of a Transformation.
Samrobbo Sep 21, 2022
109ab70
Add RGB Adjustments to transformer demo.
leonwind Sep 22, 2022
eb496da
Work around a bug in the Android 13 ClearKey implementation
icbaker Sep 22, 2022
a534f60
Add OETF and EOTF ES2 fragment shaders for non-HDR frames.
leonwind Sep 22, 2022
55d3c5a
Add HSL Adjustments to the effects module.
leonwind Sep 22, 2022
a3a08f8
HDR: Assert output C.ColorTransfer for tests.
dway123 Sep 23, 2022
9ac9322
Try alternative decoder for Dolby Vision if display does not support
microkatz Sep 23, 2022
91fb951
Remove TODOs for merging RGB and MatrixTransformation processors.
leonwind Sep 23, 2022
55e44b1
Fix broken links on https://exoplayer.dev/troubleshooting.html
icbaker Sep 23, 2022
61a2cc7
Add HSL Adjustments to the demo.
leonwind Sep 23, 2022
8b80743
Add example CLUT to demo.
leonwind Sep 23, 2022
289d039
Add setPreferredAudioDevice method to ExoPlayer
tonihei Sep 23, 2022
c9f019e
HDR: Update gamma comments to linear.
dway123 Sep 26, 2022
d348157
Fix badly formatted AudioProcessor javadoc.
Samrobbo Sep 26, 2022
3b97b99
Fix checkboxes on configuration page
a-googler Sep 27, 2022
0be36d0
Add a troubleshooting section about slow seeking
icbaker Sep 28, 2022
619333f
HDR: Add tests for tone mapping.
dway123 Sep 28, 2022
09776f3
HDR: Add period to end of error message.
dway123 Sep 28, 2022
9639f82
Demo: Split video Effect generation out of createTransformer.
Samrobbo Sep 28, 2022
b49c2aa
Test: Rename to avoid redundant substrings.
dway123 Sep 29, 2022
49cc724
Tests: Statically import BitmapTestUtil methods.
dway123 Sep 30, 2022
fdd72ae
Effect: Update javadoc to remove "final effect" references
dway123 Sep 30, 2022
2361213
HDR: Add tests with HLG10 input.
dway123 Sep 30, 2022
c3a6943
Add second player for input video
a-googler Oct 3, 2022
a06b0ba
HDR: Check isToneMappingApplied in HDR editing test.
dway123 Oct 4, 2022
997cdf3
Add button to show/hide input player in TransformerActivity
a-googler Oct 5, 2022
92ceeda
Add FrameProcessor functionality to release a frame immediately
claincly Oct 5, 2022
e37f16a
Fix RequestMetadata JavaDoc link to point to the right MediaController.
tonihei Oct 5, 2022
d2f7fb1
Provide access to original media timestamps in AudioSink.
tianyif Oct 6, 2022
8081804
Add a FrameProcessor flag to drop the processed frame
claincly Oct 6, 2022
ee9bff0
Document the allowed values of TsPayloadReader.Flags IntDef
icbaker Oct 7, 2022
15e316d
HDR: Disable tone mapping on unsupported pixel build ID.
dway123 Oct 7, 2022
bd616e1
Bump dexmaker version
christosts Oct 7, 2022
efb7bf2
Remove late frame dropping in FrameProcessor
claincly Oct 7, 2022
e8a5ac9
Adjust track selection with Dolby Vision if display does not support
microkatz Oct 10, 2022
dc80523
Treat NO_VALUE as zero when adding up total required bitrate
tonihei Oct 10, 2022
5d8daba
Add local file picker to ConfigurationActivity
a-googler Oct 11, 2022
abefef9
Demo: Read long values from trim slider.
dway123 Oct 11, 2022
2244549
Demo: Hide player controls by default.
dway123 Oct 12, 2022
4198dde
Demo: Shorten trim range from 60 seconds to 10 seconds.
dway123 Oct 12, 2022
3aca9bc
Add Cea608DecoderTest
icbaker Oct 12, 2022
267725c
Remove supportsSampleMimeType from Muxer.Factory
kim-vde Oct 13, 2022
a8921b7
Fix blank toast in Transformer Demo
a-googler Oct 13, 2022
1bea506
Migrate media constants from androidx.media.util.MediaConstants
marcbaechinger Oct 13, 2022
b362736
Ensure sessions without MediaPeriodId are ended after seek to new item
tonihei Oct 13, 2022
8ffdc3a
Mark effectively-final PlayerControlView fields as actually final
icbaker Oct 14, 2022
d9c60dc
Effect: Remove unused private int ouptutTexId in pixel tests.
dway123 Oct 14, 2022
12314ab
Fix the position of IntDef annotations on fields in the UI module
icbaker Oct 14, 2022
e3d0ee9
Fix display settings window UI bug for foldable devices.
a-googler Oct 14, 2022
fbc8019
Add copybara annotated import statement for special cases
marcbaechinger Oct 17, 2022
7cc3f11
Add manifest to make gradle build work
marcbaechinger Oct 17, 2022
1c6cea8
Add DefaultMuxer forwarding to FrameworkMuxer
kim-vde Oct 18, 2022
fb1c9de
Remove more references to overriding layouts from Player(Control)View
icbaker Oct 18, 2022
5de37d2
Fix parameter comment block.
Samrobbo Oct 18, 2022
66d56be
Remove deprecated setOutputMimeType
kim-vde Oct 18, 2022
66bae60
GL: Move loadAsset to GlProgram, where it's used.
dway123 Oct 18, 2022
ed9bc9a
Ensure onMediaItemTransition is sent for repeats of the same item
tonihei Oct 18, 2022
e54127c
Test: Update MatrixProcessorPixelTest to use input width and height.
dway123 Oct 18, 2022
f56d714
Remove ForwardingPlayer special case from PlayerControlView.setPlayer
icbaker Oct 19, 2022
5c0175e
Effect: Remove unnecessary "this" qualifier
dway123 Oct 19, 2022
f42d18f
Make Muxer public
kim-vde Oct 19, 2022
0b0101e
HDR: Support RGBA_1010102 in GlUtil as a parameter.
dway123 Oct 19, 2022
1b6bef0
Corrected ordering of javadoc params
a-googler Oct 19, 2022
0a0df93
Merge pull request #10570 from Artemych:fix/progressive_downloader_in…
marcbaechinger Oct 19, 2022
d2623dd
Merge pull request #10549 from ferhatparmak:release-requirementswatcher
marcbaechinger Oct 19, 2022
d7d75a0
Update presentation time of metadata when the stream offset changes
marcbaechinger Sep 6, 2022
d648c19
Merge pull request #123 from stoyicker:wrapping_media_source
marcbaechinger Oct 19, 2022
0a1f30a
Store LUT bitmap as texture with processor creation.
leonwind Sep 23, 2022
e13bbbc
Merge pull request #10578 from thucngv:release-v2
marcbaechinger Oct 20, 2022
df15f9c
Use static import for Assertions in MCVR
claincly Oct 14, 2022
fc32f0d
Merge pull request #183 from jasper-apps:bugfix/make-download-notific…
marcbaechinger Oct 20, 2022
6f94b8e
Map lib-effect from androidx to exoplayer2
marcbaechinger Oct 19, 2022
dc8098a
Remove muxerFactory dependency on playerListener
kim-vde Oct 20, 2022
b97a959
Change areSizeAndRateSupported to use PerfomancePoint.covers
microkatz Oct 20, 2022
84375a4
Fix some incorrect comments in Cea608DecoderTest
icbaker Oct 24, 2022
d2c4f74
Merge pull request #10618 from vishnuchilakala:fix/do_not_send_conten…
rohitjoins Oct 24, 2022
23b070d
Merge pull request #162 from ittiam-systems:rtp-mp4a-latm
rohitjoins Oct 24, 2022
b20752f
Add DAI specific methods to AdPlaybackState
marcbaechinger Oct 21, 2022
154cd42
Add CanIgnoreReturnValue to AudioProcessor#configure + implementations
Samrobbo Oct 24, 2022
0f5245f
Use int for an unsigned byte value in Cea608Decoder
icbaker Oct 24, 2022
f7f371f
Clarify sideloaded subtitle example
icbaker Oct 25, 2022
053e14a
Add GL utility methods to get 4x4 identity and set identity
claincly Oct 25, 2022
8debe79
Move AudioProcessor to common.
Samrobbo Oct 25, 2022
fe9bad1
Move `DefaultAudioSink.AudioProcessorChain` to `AudioProcessorChain`
Samrobbo Oct 25, 2022
6b3bec8
Fix `Cea608Decoder` handling of service switch commands in field 2
icbaker Oct 26, 2022
81b3e40
Mute input video player in transformer demo
a-googler Oct 26, 2022
861cd9a
Add AudioProcessor.AudioFormat equals method.
Samrobbo Oct 26, 2022
94f3b1b
Add muxer timer to detect when generating an output sample is too slow
kim-vde Oct 27, 2022
f06e8ee
Make adding ad live breaks more robust
marcbaechinger Oct 27, 2022
d652020
Add test for muxer watchdog timer
kim-vde Oct 27, 2022
c02d477
Upgrade dackka and fix some generation errors
andrewlewis Oct 28, 2022
a3de075
Disable the muxer watchdog if all tracks have ended.
Samrobbo Oct 28, 2022
86ac8f5
Bump appTargetSDKVersion to 33
marcbaechinger Oct 28, 2022
375978b
Tighten the wording for sending a pull request.
rohitjoins Oct 31, 2022
721487a
Disable failing tests of FlacExtractorSeekTest
rohitjoins Oct 31, 2022
e4d77f7
Enfore minCompileSdk version when depending on ExoPlayer/Media3 libs
tonihei Oct 31, 2022
7bfc645
Removed move transformation for exoplayer2 audio package-info.java
microkatz Nov 1, 2022
69112df
HDR: Generalize Pixel 6 workaround to TP
dway123 Nov 1, 2022
61b1cfc
Load bitmaps for `MediaMetadataCompat` and handle the metadata updates.
tianyif Nov 1, 2022
e48fe57
Apply tone mapping workaround to Pixel Watch as well.
dway123 Nov 1, 2022
10d06dd
Fix Dackka/Metalava errors in the effects module
icbaker Nov 2, 2022
b25e1e2
Fix Dackka javadoc errors in protected methods
icbaker Nov 3, 2022
dadf281
Add 'Player.getVideoSurfaceSize' that returns the size of the surface
a-googler Nov 3, 2022
b949b6b
HDR Test: Add link to tested method.
dway123 Nov 3, 2022
cc9823d
Disable publishing block when media3 included in another build.
yschimke Nov 3, 2022
fe47393
Add @SuppressWarnings to unblock T SDK for <unknown commit>
a-googler Nov 4, 2022
9ad5650
HDR: Update test FileUtil to handle null ColorInfo.
dway123 Nov 7, 2022
0969819
HDR: Set decoder codec profile and level if available.
dway123 Nov 7, 2022
194a32c
Move muxer initialization off application thread
SheenaChhabra Nov 7, 2022
f3f2f93
Move muxing inside sample pipelines
kim-vde Nov 8, 2022
f5acc9e
Set targetSdkVersion of main demo app back to 29
marcbaechinger Nov 8, 2022
881838b
Move slow mo logic to sample pipelines
kim-vde Nov 9, 2022
95d9e49
Merge Issue: google/ExoPlayer#10762: Fix ffmpeg jni wrapper returning…
Tolriq Nov 9, 2022
1ffe6a7
Add ExoPlayerAssetLoader
kim-vde Nov 9, 2022
70f74fd
Change UnsupportedEncodingException to IllegalArgumentException
SheenaChhabra Nov 9, 2022
98c981f
Set HDR color info on FrameworkMuxer
claincly Nov 9, 2022
39d9aef
HDR: Implement ForceInterpretHdrVideoAsSdr
dway123 Nov 9, 2022
01f30f0
Fix Dackka/Metalava errors in the ExoPlayer module
icbaker Nov 10, 2022
2540dee
Fix Dackka/Metalava errors in the HLS and RTSP modules
icbaker Nov 10, 2022
925e733
Fix Dackka/Metalava errors in av1, flac, ffmpeg, midi, and opus modules
icbaker Nov 10, 2022
7f706c8
Fix Dackka/Metalava errors in test_utils module
icbaker Nov 10, 2022
77c8875
Fix Dackka parameter name error in `Gav1Decoder` and `VpxDecoder`
icbaker Nov 10, 2022
386e2af
Set targetSdkVersion of main demo app to 29
christosts Nov 10, 2022
ab501dd
Fix parameter name mismatch in MappingTrackSelector.selectTracks
icbaker Nov 10, 2022
23518e2
Configure Dackka to generate javadoc for protected methods
icbaker Nov 10, 2022
d976041
Add missing IntDef on MediaSource.Factory.getSupportedTypes overrides
icbaker Nov 10, 2022
dd49f24
Reformat demo build.gradle file
icbaker Nov 10, 2022
704e84f
Add `@ForOverride` to `DecoderAudioRenderer` `protected` methods
icbaker Nov 11, 2022
54d3dbf
Reformat demo build.gradle file
icbaker Nov 14, 2022
5def6e4
Calculate SSAI window duration for live periods with unset duration.
tonihei Nov 15, 2022
88804dd
Mark iterationFinished when triggering release event.
tonihei Nov 15, 2022
db2ab52
Set valid channel masks for 8 and 12 channels on all Android versions
christosts Nov 15, 2022
6108c05
Rename getVideoSurfaceSize to getSurfaceSize
tonihei Nov 15, 2022
f4259f3
Filter bogus AndroidX core jar file when creating javadoc
microkatz Nov 17, 2022
bd6570f
Remove @hide javadoc annotation from ExoPlayer GitHub
icbaker Nov 17, 2022
66995db
Version bump to exoplayer:2.18.2 and media3:1.0.0-beta03
microkatz Nov 21, 2022
aef5330
Update JavaDoc for exoplayer:2.18.2
microkatz Nov 22, 2022
9b0790e
Reorder some release notes in other sections.
tonihei Nov 22, 2022
a114b0e
Fix compilation error in ffmpeg JNI layer
christosts Nov 22, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug.yml
Expand Up @@ -18,6 +18,7 @@ body:
label: ExoPlayer Version
description: What version of ExoPlayer are you using?
options:
- 2.18.2
- 2.18.1
- 2.18.0
- 2.17.1
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -76,3 +76,6 @@ extensions/cronet/jniLibs/*
!extensions/cronet/jniLibs/README.md
extensions/cronet/libs/*
!extensions/cronet/libs/README.md

# MIDI extension
extensions/midi/lib
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Expand Up @@ -15,7 +15,7 @@ all of the information requested in the issue template.

## Pull requests ##

We will also consider high quality pull requests. These should normally merge
We will also consider high quality pull requests. These should merge
into the `dev-v2` branch. Before a pull request can be accepted you must submit
a Contributor License Agreement, as described below.

Expand Down
111 changes: 111 additions & 0 deletions RELEASENOTES.md
@@ -1,5 +1,116 @@
# Release notes

### 2.18.2 (2022-11-22)

This release corresponds to the
[AndroidX Media3 1.0.0-beta03 release](https://github.com/androidx/media/releases/tag/1.0.0-beta03).

* Core library:
* Add `ExoPlayer.isTunnelingEnabled` to check if tunneling is enabled for
the currently selected tracks
([#2518](https://github.com/google/ExoPlayer/issues/2518)).
* Add `WrappingMediaSource` to simplify wrapping a single `MediaSource`
([#7279](https://github.com/google/ExoPlayer/issues/7279)).
* Discard back buffer before playback gets stuck due to insufficient
available memory.
* Close the Tracing "doSomeWork" block when offload is enabled.
* Fix session tracking problem with fast seeks in `PlaybackStatsListener`
([#180](https://github.com/androidx/media/issues/180)).
* Send missing `onMediaItemTransition` callback when calling `seekToNext`
or `seekToPrevious` in a single-item playlist
([#10667](https://github.com/google/ExoPlayer/issues/10667)).
* Add `Player.getSurfaceSize` that returns the size of the surface on
which the video is rendered.
* Fix bug where removing listeners during the player release can cause an
`IllegalStateException`
([#10758](https://github.com/google/ExoPlayer/issues/10758)).
* Build:
* Enforce minimum `compileSdkVersion` to avoid compilation errors
([#10684](https://github.com/google/ExoPlayer/issues/10684)).
* Avoid publishing block when included in another gradle build.
* Track selection:
* Prefer other tracks to Dolby Vision if display does not support it.
([#8944](https://github.com/google/ExoPlayer/issues/8944)).
* Downloads:
* Fix potential infinite loop in `ProgressiveDownloader` caused by
simultaneous download and playback with the same `PriorityTaskManager`
([#10570](https://github.com/google/ExoPlayer/pull/10570)).
* Make download notification appear immediately
([#183](https://github.com/androidx/media/pull/183)).
* Limit parallel download removals to 1 to avoid excessive thread creation
([#10458](https://github.com/google/ExoPlayer/issues/10458)).
* Video:
* Try alternative decoder for Dolby Vision if display does not support it.
([#9794](https://github.com/google/ExoPlayer/issues/9794)).
* Audio:
* Use `SingleThreadExecutor` for releasing `AudioTrack` instances to avoid
OutOfMemory errors when releasing multiple players at the same time
([#10057](https://github.com/google/ExoPlayer/issues/10057)).
* Adds `AudioOffloadListener.onExperimentalOffloadedPlayback` for the
AudioTrack offload state.
([#134](https://github.com/androidx/media/issues/134)).
* Make `AudioTrackBufferSizeProvider` a public interface.
* Add `ExoPlayer.setPreferredAudioDevice` to set the preferred audio
output device ([#135](https://github.com/androidx/media/issues/135)).
* Rename `com.google.android.exoplayer2.audio.AudioProcessor` to
`com.google.android.exoplayer2.audio.AudioProcessor`.
* Map 8-channel and 12-channel audio to the 7.1 and 7.1.4 channel masks
respectively on all Android versions
([#10701](https://github.com/google/ExoPlayer/issues/10701)).
* Metadata:
* `MetadataRenderer` can now be configured to render metadata as soon as
they are available. Create an instance with
`MetadataRenderer(MetadataOutput, Looper, MetadataDecoderFactory,
boolean)` to specify whether the renderer will output metadata early or
in sync with the player position.
* DRM:
* Work around a bug in the Android 13 ClearKey implementation that returns
a non-empty but invalid license URL.
* Fix `setMediaDrmSession failed: session not opened` error when switching
between DRM schemes in a playlist (e.g. Widevine to ClearKey).
* Text:
* CEA-608: Ensure service switch commands on field 2 are handled correctly
([#10666](https://github.com/google/ExoPlayer/issues/10666)).
* DASH:
* Parse `EventStream.presentationTimeOffset` from manifests
([#10460](https://github.com/google/ExoPlayer/issues/10460)).
* UI:
* Use current overrides of the player as preset in
`TrackSelectionDialogBuilder`
([#10429](https://github.com/google/ExoPlayer/issues/10429)).
* RTSP:
* Add H263 fragmented packet handling
([#119](https://github.com/androidx/media/pull/119)).
* Add support for MP4A-LATM
([#162](https://github.com/androidx/media/pull/162)).
* IMA:
* Add timeout for loading ad information to handle cases where the IMA SDK
gets stuck loading an ad
([#10510](https://github.com/google/ExoPlayer/issues/10510)).
* Prevent skipping mid-roll ads when seeking to the end of the content
([#10685](https://github.com/google/ExoPlayer/issues/10685)).
* Correctly calculate window duration for live streams with server-side
inserted ads, for example IMA DAI
([#10764](https://github.com/google/ExoPlayer/issues/10764)).
* FFmpeg extension:
* Add newly required flags to link FFmpeg libraries with NDK 23.1.7779620
and above ([#9933](https://github.com/google/ExoPlayer/issues/9933)).
* AV1 extension:
* Update CMake version to avoid incompatibilities with the latest Android
Studio releases
([#9933](https://github.com/google/ExoPlayer/issues/9933)).
* Cast extension:
* Implement `getDeviceInfo()` to be able to identify `CastPlayer` when
controlling playback with a `MediaController`
([#142](https://github.com/androidx/media/issues/142)).
* Transformer:
* Add muxer watchdog timer to detect when generating an output sample is
too slow.
* Remove deprecated symbols:
* Remove `Transformer.Builder.setOutputMimeType(String)`. This feature has
been removed. The MIME type will always be MP4 when the default muxer is
used.

### 2.18.1 (2022-07-21)

This release corresponds to the
Expand Down
3 changes: 3 additions & 0 deletions common_library_config.gradle
Expand Up @@ -22,6 +22,9 @@ android {
targetSdkVersion project.ext.targetSdkVersion
consumerProguardFiles 'proguard-rules.txt'
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
aarMetadata {
minCompileSdk = project.ext.compileSdkVersion
}
}

compileOptions {
Expand Down
15 changes: 9 additions & 6 deletions constants.gradle
Expand Up @@ -13,15 +13,18 @@
// limitations under the License.
project.ext {
// ExoPlayer version and version code.
releaseVersion = '2.18.1'
releaseVersionCode = 2_018_001
releaseVersion = '2.18.2'
releaseVersionCode = 2_018_002
minSdkVersion = 16
appTargetSdkVersion = 29
appTargetSdkVersion = 33
// API version before restricting local file access.
// https://developer.android.com/training/data-storage/app-specific
mainDemoAppTargetSdkVersion = 29
// Upgrading this requires [Internal ref: b/193254928] to be fixed, or some
// additional robolectric config.
targetSdkVersion = 30
compileSdkVersion = 32
dexmakerVersion = '2.28.1'
compileSdkVersion = 33
dexmakerVersion = '2.28.3'
junitVersion = '4.13.2'
// Use the same Guava version as the Android repo:
// https://cs.android.com/android/platform/superproject/+/master:external/guava/METADATA
Expand All @@ -40,7 +43,7 @@ project.ext {
androidxConstraintLayoutVersion = '2.0.4'
androidxCoreVersion = '1.7.0'
androidxFuturesVersion = '1.1.0'
androidxMediaVersion = '1.4.3'
androidxMediaVersion = '1.6.0'
androidxMedia2Version = '1.2.0'
androidxMultidexVersion = '2.0.1'
androidxRecyclerViewVersion = '1.2.1'
Expand Down
3 changes: 3 additions & 0 deletions core_settings.gradle
Expand Up @@ -82,6 +82,9 @@ project(modulePrefix + 'library-extractor').projectDir = new File(rootDir, 'libr
include modulePrefix + 'extension-cast'
project(modulePrefix + 'extension-cast').projectDir = new File(rootDir, 'extensions/cast')

include modulePrefix + 'library-effect'
project(modulePrefix + 'library-effect').projectDir = new File(rootDir, 'library/effect')

include modulePrefix + 'library-transformer'
project(modulePrefix + 'library-transformer').projectDir = new File(rootDir, 'library/transformer')

Expand Down
9 changes: 7 additions & 2 deletions demos/cast/src/main/AndroidManifest.xml
Expand Up @@ -22,8 +22,13 @@

<uses-sdk/>

<application android:label="@string/application_name" android:icon="@mipmap/ic_launcher"
android:largeHeap="true" android:allowBackup="false">
<application
android:name="androidx.multidex.MultiDexApplication"
android:label="@string/application_name"
android:icon="@mipmap/ic_launcher"
android:largeHeap="true"
android:allowBackup="false"
android:taskAffinity="">

<meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="com.google.android.exoplayer2.ext.cast.DefaultCastOptionsProvider"/>
Expand Down
1 change: 1 addition & 0 deletions demos/gl/build.gradle
Expand Up @@ -52,6 +52,7 @@ dependencies {
implementation project(modulePrefix + 'library-smoothstreaming')
implementation project(modulePrefix + 'library-ui')
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
implementation 'androidx.multidex:multidex:' + androidxMultidexVersion
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion
}
1 change: 1 addition & 0 deletions demos/gl/src/main/AndroidManifest.xml
Expand Up @@ -22,6 +22,7 @@
<uses-sdk/>

<application
android:name="androidx.multidex.MultiDexApplication"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/application_name">
Expand Down
Expand Up @@ -29,6 +29,7 @@
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.util.GlProgram;
import com.google.android.exoplayer2.util.GlUtil;
import com.google.android.exoplayer2.util.Log;
import java.io.IOException;
import java.util.Locale;
import javax.microedition.khronos.opengles.GL10;
Expand All @@ -41,6 +42,7 @@
/* package */ final class BitmapOverlayVideoProcessor
implements VideoProcessingGLSurfaceView.VideoProcessor {

private static final String TAG = "BitmapOverlayVP";
private static final int OVERLAY_WIDTH = 512;
private static final int OVERLAY_HEIGHT = 256;

Expand Down Expand Up @@ -85,6 +87,9 @@ public void initialize() {
/* fragmentShaderFilePath= */ "bitmap_overlay_video_processor_fragment.glsl");
} catch (IOException e) {
throw new IllegalStateException(e);
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to initialize the shader program", e);
return;
}
program.setBufferAttribute(
"aFramePosition",
Expand Down Expand Up @@ -119,7 +124,11 @@ public void draw(int frameTexture, long frameTimestampUs, float[] transformMatri
GLES20.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
GLUtils.texSubImage2D(
GL10.GL_TEXTURE_2D, /* level= */ 0, /* xoffset= */ 0, /* yoffset= */ 0, overlayBitmap);
GlUtil.checkGlError();
try {
GlUtil.checkGlError();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to populate the texture", e);
}

// Run the shader program.
GlProgram program = checkNotNull(this.program);
Expand All @@ -128,16 +137,28 @@ public void draw(int frameTexture, long frameTimestampUs, float[] transformMatri
program.setFloatUniform("uScaleX", bitmapScaleX);
program.setFloatUniform("uScaleY", bitmapScaleY);
program.setFloatsUniform("uTexTransform", transformMatrix);
program.bindAttributesAndUniforms();
try {
program.bindAttributesAndUniforms();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to update the shader program", e);
}
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, /* first= */ 0, /* count= */ 4);
GlUtil.checkGlError();
try {
GlUtil.checkGlError();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to draw a frame", e);
}
}

@Override
public void release() {
if (program != null) {
program.delete();
try {
program.delete();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to delete the shader program", e);
}
}
}
}
Expand Up @@ -15,6 +15,8 @@
*/
package com.google.android.exoplayer2.gldemo;

import static com.google.android.exoplayer2.util.Assertions.checkNotNull;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
Expand Down Expand Up @@ -83,7 +85,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
VideoProcessingGLSurfaceView videoProcessingGLSurfaceView =
new VideoProcessingGLSurfaceView(
context, requestSecureSurface, new BitmapOverlayVideoProcessor(context));
FrameLayout contentFrame = findViewById(R.id.exo_content_frame);
checkNotNull(playerView);
FrameLayout contentFrame = playerView.findViewById(R.id.exo_content_frame);
contentFrame.addView(videoProcessingGLSurfaceView);
this.videoProcessingGLSurfaceView = videoProcessingGLSurfaceView;
}
Expand Down
Expand Up @@ -29,6 +29,7 @@
import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.GlUtil;
import com.google.android.exoplayer2.util.Log;
import com.google.android.exoplayer2.util.TimedValueQueue;
import com.google.android.exoplayer2.video.VideoFrameMetadataListener;
import java.util.concurrent.atomic.AtomicBoolean;
Expand Down Expand Up @@ -70,6 +71,7 @@ public interface VideoProcessor {
}

private static final int EGL_PROTECTED_CONTENT_EXT = 0x32C0;
private static final String TAG = "VPGlSurfaceView";

private final VideoRenderer renderer;
private final Handler mainHandler;
Expand Down Expand Up @@ -239,7 +241,11 @@ public VideoRenderer(VideoProcessor videoProcessor) {

@Override
public synchronized void onSurfaceCreated(GL10 gl, EGLConfig config) {
texture = GlUtil.createExternalTexture();
try {
texture = GlUtil.createExternalTexture();
} catch (GlUtil.GlException e) {
Log.e(TAG, "Failed to create an external texture", e);
}
surfaceTexture = new SurfaceTexture(texture);
surfaceTexture.setOnFrameAvailableListener(
surfaceTexture -> {
Expand Down
5 changes: 4 additions & 1 deletion demos/main/build.gradle
Expand Up @@ -11,6 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

apply from: '../../constants.gradle'
apply plugin: 'com.android.application'

Expand All @@ -26,7 +27,9 @@ android {
versionName project.ext.releaseVersion
versionCode project.ext.releaseVersionCode
minSdkVersion project.ext.minSdkVersion
targetSdkVersion project.ext.appTargetSdkVersion
// Not using appTargetSDKVersion to allow local file access on API 29
// and higher [Internal ref: b/191644662]
targetSdkVersion project.ext.mainDemoAppTargetSdkVersion
multiDexEnabled true
}

Expand Down
2 changes: 1 addition & 1 deletion demos/main/src/main/assets/media.exolist.json
Expand Up @@ -399,7 +399,7 @@
"uri": "ssai://dai.google.com/?contentSourceId=2528370&videoId=tears-of-steel&format=2&adsId=1"
},
{
"name": "HLS Live: Big Buck Bunny (mid), 3 ads each [10 s]",
"name": "HLS Live: Big Buck Bunny (mid), 3 ads [10/10/10s]",
"uri": "ssai://dai.google.com/?assetKey=sN_IYUG8STe1ZzhIIE_ksA&format=2&adsId=3"
},
{
Expand Down
4 changes: 4 additions & 0 deletions demos/transformer/build.gradle
Expand Up @@ -20,6 +20,7 @@ android {
compileSdkVersion project.ext.compileSdkVersion

compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Expand Down Expand Up @@ -76,11 +77,14 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:' + androidxConstraintLayoutVersion
implementation 'androidx.multidex:multidex:' + androidxMultidexVersion
implementation 'com.google.android.material:material:' + androidxMaterialVersion
implementation project(modulePrefix + 'library-effect')
implementation project(modulePrefix + 'library-core')
implementation project(modulePrefix + 'library-dash')
implementation project(modulePrefix + 'library-transformer')
implementation project(modulePrefix + 'library-ui')

coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'

// For MediaPipe and its dependencies:
withMediaPipeImplementation fileTree(dir: 'libs', include: ['*.aar'])
withMediaPipeImplementation 'com.google.flogger:flogger:latest.release'
Expand Down