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.0 #10349
r2.18.0 #10349
Commits on Apr 25, 2022
-
FrameProcessor: Avoid early rounding in Presentation output dimensions.
PiperOrigin-RevId: 444253425
-
Keep AudioTrack on flush as default
PiperOrigin-RevId: 444264961
-
Rollback of androidx/media@8a41682
*** Original commit *** Keep AudioTrack on flush as default *** PiperOrigin-RevId: 444327724
-
Remove unused field lastPlayerInfo
PiperOrigin-RevId: 444247251
Commits on Apr 26, 2022
-
Add 30 second high motion clips to AndroidTestUtil.
30 second clips at higher resolutions are useful for testing encoder behaviour compared to shorter clips. PiperOrigin-RevId: 444505865
-
Add 30 second high motion clips to AndroidTestUtil.
30 second clips at higher resolutions are useful for testing encoder behaviour compared to shorter clips. PiperOrigin-RevId: 444505865
-
Transformer GL: save actual bitmap before checking pixel diffs.
This allows the actual bitmap to be saved, even if output dimensions are different than expected. Otherwise, differing output dimensions would throw an exception, preventing the bitmap from being saved. PiperOrigin-RevId: 444512210
-
Transformer GL: save actual bitmap before checking pixel diffs.
This allows the actual bitmap to be saved, even if output dimensions are different than expected. Otherwise, differing output dimensions would throw an exception, preventing the bitmap from being saved. PiperOrigin-RevId: 444512210
-
Transformer: remove unused bitmap test option.
Remove unused saveTestBitmapToCacheDirectory throwOnFailure option. #cleanup PiperOrigin-RevId: 444516857
-
Transformer: remove unused bitmap test option.
Remove unused saveTestBitmapToCacheDirectory throwOnFailure option. #cleanup PiperOrigin-RevId: 444516857
-
PiperOrigin-RevId: 444530943
-
Media Solutions: Fix misspelling for "roboletric"
roboletric -> robolectric PiperOrigin-RevId: 440101421
-
Filter media notification actions
The DefaultMediaNotificationProvider checks if a command is available before putting the respective action in the notification. PiperOrigin-RevId: 440114422
-
Change SSIM transcode MIME type to H264.
The MIME type was set to H265 to force transcoding. Now that we have an encoder factory that forces encoding, switching back to H264 ensures the quality test is conducted on more devices (those don't support H265 can be tested now). However, H265 should be part of the quality test after we have proper mechanism to skip test based on device capability. PiperOrigin-RevId: 440132471
-
FrameProcessor: Add setCrop to Presentation.
PiperOrigin-RevId: 440325693
-
Add WorkerThread annotation to FrameProcessorChain helpers.
PiperOrigin-RevId: 440347550
-
Expect PresentationTime Discontinuity During Stream Transitions
PiperOrigin-RevId: 440378974
-
Media: Remove unused test images.
PiperOrigin-RevId: 441142050
-
Remove transformer from inputValues json.
Transformer resolves to null when wrapped, this is a debug line that was not removed. PiperOrigin-RevId: 441200790
-
Make TransformerEndToEndTest constants private.
PiperOrigin-RevId: 441230941
-
Rename TracksInfo and TrackGroupInfo
1. TracksInfo is renamed to Tracks 2. TracksInfo.TrackGroupInfo is renamed to Tracks.Group PiperOrigin-RevId: 441232373
-
FrameProcessor: Add aspect ratio changes to Presentation.
PiperOrigin-RevId: 441250773
-
Merge pull request #59 from h6ah4i:fix/cleanup-callbacks-on-media-con…
…troller-release PiperOrigin-RevId: 441253378
-
Removing using the test asset that has Mp3 audio track.
The stream with the mp3 track is added because - We only encode to AAC - We only encode when the source track is not AAC Now that we have a way to force encoding, we no longer need the mp3 track. The test asset is kept for later parameterized testing. PiperOrigin-RevId: 440876080
-
Upgrade compileSdkVersion to 32 (Android 12L)
PiperOrigin-RevId: 441424063
-
Rename GlFrameProcessor updateProgramAndDraw to drawFrame.
What a minimal implementation should include is now explained in the interface javadoc while the method name reflects what the method does. PiperOrigin-RevId: 441432059
-
Clarify TransformationRequest setResolution javadoc.
Scaling and rotation using ScaleToFitFrameProcessor may change the the resolution and aspect ratio, so defaulting to the same as the input is no longer accurate. PiperOrigin-RevId: 441463349
-
FrameProcessor: Move test bitmaps to a separate directory.
* Group what's now many related test PNGs by moving them to their own directory. * Move bitmap references to files where they're used, as each bitmap is only used once each, except the original bitmap. PiperOrigin-RevId: 441485489
-
PiperOrigin-RevId: 440906834
-
Tracks.Group/TrackGroup variable naming disambiguation
PiperOrigin-RevId: 441712166
-
Transformer Demo: Add short test video
Add a very short (1 second) video, so that some manual tests / prototyping, including tests for the start and end of a video, encoder selection, or changes applied to frames, can finish quickly. PiperOrigin-RevId: 441756901
-
FrameProcessor: Add checks to ensure width and height are positive.
Negative and zero values should be disallowed. PiperOrigin-RevId: 441757246
-
Allow suppression of AssertionError in TransformerAndroidTestRunner.
PiperOrigin-RevId: 440952335
-
Rename
Player.COMMAND_GET_TRACK_INFOS
toCOMMAND_GET_TRACKS
`Player.getCurrentTracksInfo` was renamed to `Player.getCurrentTracks` in androidx/media@83daa05. PiperOrigin-RevId: 441825078
-
Add checks for device capability in tests.
PiperOrigin-RevId: 442751310
-
Fix FrameProcessorChain method ordering.
signalEndOfInputStream makes more sense before isEnded and getPendingInputFrameCount is related to registerInputFrame. PiperOrigin-RevId: 441134418
-
Block until FrameProcessorChain is released.
This is safer because it will prevent any future problems with creating a new FrameProcessorChain before the previous one has completed its async release. From [eglDestroyContext documentation](https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglDestroyContext.xhtml): "If the EGL rendering context is not current to any thread, eglDestroyContext destroys it immediately." The context isn't current to any thread here because GlUtil calls eglMakeCurrent with EGL_NO_CONTEXT before calling eglDestroyContext. So everthing should be released once the FrameProcessorChain's release task terminates. PiperOrigin-RevId: 442807484
-
Add context param to GlFrameProcessor initialize().
PiperOrigin-RevId: 442826391
-
FrameProcessor: Improve PresentationFrameProcessor javadocs.
PiperOrigin-RevId: 442835160
-
Add 4 different video resolutions for bitrate analysis.
PiperOrigin-RevId: 442844189
-
Media: Remove unused test images.
PiperOrigin-RevId: 441142050
-
DownloadHelper: propagate errors to callback
When downlading an adaptive asset, if an ExoPlaybackException happens during track selection, the player raises an UnsupportedOperationException which is not handled gracefully and can crash the app main thread. This change catches the error and forwards it to DownloadHelper.Callback.onPrepareError() as an IOException. PiperOrigin-RevId: 443015332
-
Some devices under report their resolution support, like 2144 for 2160 in H265, 1072 for 1080 in H264. This CL only takes care of these two cases, - reporting 1920x1080 is supported when the device reports 1920x1072, and - reporting 3840x2160 is supported when the device reports 3840x2144 PiperOrigin-RevId: 443095042
-
Remove transformer from inputValues json.
Transformer resolves to null when wrapped, this is a debug line that was not removed. PiperOrigin-RevId: 441200790
-
Don't use API 26 SurfaceTexture constructor in frame processor tests.
After this change the test will use EGL_NO_SURFACE or a pixel buffer surface if using no surface is not supported. PiperOrigin-RevId: 443113794
-
Align MediaCodec and Decoder AudioRenderer onDisabled logic.
PiperOrigin-RevId: 443156130
-
Make TransformerEndToEndTest constants private.
PiperOrigin-RevId: 441230941
-
Expand Samsung/1+ workaround to API 31 + 32
The issue with decoding getting stuck is still reproducible on `samsung/beyond1lteeea/beyond1:12/SP1A.210812.016/G973FXXUEGULB:user/release-keys`. PiperOrigin-RevId: 443368546
-
Fix Basic authentication header
Issue: #9544 The header must include the word "Basic", but the word is missing. #minor-release PiperOrigin-RevId: 443386880
-
FrameProcessor: Create EncoderCompatibilityFrameProcessor.
Split rotationDegrees changes to EncoderCompatibilityFrameProcessor, a new FrameProcessor. This removes automatic rotationDegrees adjustments from Presentation, which allows Presentation to be used for changes before the end of a FrameProcessorChain pipeline. PiperOrigin-RevId: 443387226
-
PiperOrigin-RevId: 443620931
-
Rename TracksInfo and TrackGroupInfo
1. TracksInfo is renamed to Tracks 2. TracksInfo.TrackGroupInfo is renamed to Tracks.Group PiperOrigin-RevId: 441232373
-
Fix encoder configuration before API 25
Float I-frame intervals are only supported from API 25 onwards (see https://developer.android.com/reference/android/media/MediaFormat#KEY_I_FRAME_INTERVAL). Setting a null value for profile/level can cause a native crash when configuring the decoder. PiperOrigin-RevId: 443647924
-
Add an SSIM test with 360p input
This test should run on all devices from API 21 (the media uses Baseline profile level 3.0 H.264) to give us coverage of the full pipeline (forcing re-encoding) and SSIM calculation on all devices. PiperOrigin-RevId: 443650002
-
Catch unchecked exception in RtspSessionTiming parsing.
Issue: #10165 #minor-release PiperOrigin-RevId: 443653894
-
FrameProcessor: Add aspect ratio changes to Presentation.
PiperOrigin-RevId: 441250773
-
Transformer GL: Avoid no-op ScaleToFit / Presentation FrameProcessors
Avoid no-op FrameProcessors in VideoTranscodingSamplePipeline, to avoid creating resources for and executing GL for a no-op vertex+fragment shader. EncoderCompatibilityFrameProcessor will still always be exercised. PiperOrigin-RevId: 443675833
-
Use last frame processor to draw on debug surface view.
The last frame processor could use a different drawing command than a four vertex triangle strip. So we need call its drawing method again instead of assuming the shape. PiperOrigin-RevId: 444217274
-
Fix warning about potential integer overflow in DefaultAudioSink
PiperOrigin-RevId: 444221415
-
Upgrade compileSdkVersion to 32 (Android 12L)
PiperOrigin-RevId: 441424063
-
Rename GlFrameProcessor updateProgramAndDraw to drawFrame.
What a minimal implementation should include is now explained in the interface javadoc while the method name reflects what the method does. PiperOrigin-RevId: 441432059
-
Clarify TransformationRequest setResolution javadoc.
Scaling and rotation using ScaleToFitFrameProcessor may change the the resolution and aspect ratio, so defaulting to the same as the input is no longer accurate. PiperOrigin-RevId: 441463349
-
FrameProcessor: Move test bitmaps to a separate directory.
* Group what's now many related test PNGs by moving them to their own directory. * Move bitmap references to files where they're used, as each bitmap is only used once each, except the original bitmap. PiperOrigin-RevId: 441485489
-
Tracks.Group/TrackGroup variable naming disambiguation
PiperOrigin-RevId: 441712166
-
Transformer Demo: Add short test video
Add a very short (1 second) video, so that some manual tests / prototyping, including tests for the start and end of a video, encoder selection, or changes applied to frames, can finish quickly. PiperOrigin-RevId: 441756901
-
FrameProcessor: Add checks to ensure width and height are positive.
Negative and zero values should be disallowed. PiperOrigin-RevId: 441757246
-
Rename
Player.COMMAND_GET_TRACK_INFOS
toCOMMAND_GET_TRACKS
`Player.getCurrentTracksInfo` was renamed to `Player.getCurrentTracks` in 0ad508b. PiperOrigin-RevId: 441825078
-
Add checks for device capability in tests.
PiperOrigin-RevId: 442751310
-
Block until FrameProcessorChain is released.
This is safer because it will prevent any future problems with creating a new FrameProcessorChain before the previous one has completed its async release. From [eglDestroyContext documentation](https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglDestroyContext.xhtml): "If the EGL rendering context is not current to any thread, eglDestroyContext destroys it immediately." The context isn't current to any thread here because GlUtil calls eglMakeCurrent with EGL_NO_CONTEXT before calling eglDestroyContext. So everthing should be released once the FrameProcessorChain's release task terminates. PiperOrigin-RevId: 442807484
-
Add context param to GlFrameProcessor initialize().
PiperOrigin-RevId: 442826391
-
FrameProcessor: Improve PresentationFrameProcessor javadocs.
PiperOrigin-RevId: 442835160
-
Add 4 different video resolutions for bitrate analysis.
PiperOrigin-RevId: 442844189
-
DownloadHelper: propagate errors to callback
When downlading an adaptive asset, if an ExoPlaybackException happens during track selection, the player raises an UnsupportedOperationException which is not handled gracefully and can crash the app main thread. This change catches the error and forwards it to DownloadHelper.Callback.onPrepareError() as an IOException. PiperOrigin-RevId: 443015332
-
Some devices under report their resolution support, like 2144 for 2160 in H265, 1072 for 1080 in H264. This CL only takes care of these two cases, - reporting 1920x1080 is supported when the device reports 1920x1072, and - reporting 3840x2160 is supported when the device reports 3840x2144 PiperOrigin-RevId: 443095042
-
Don't use API 26 SurfaceTexture constructor in frame processor tests.
After this change the test will use EGL_NO_SURFACE or a pixel buffer surface if using no surface is not supported. PiperOrigin-RevId: 443113794
-
Align MediaCodec and Decoder AudioRenderer onDisabled logic.
PiperOrigin-RevId: 443156130
-
Expand Samsung/1+ workaround to API 31 + 32
The issue with decoding getting stuck is still reproducible on `samsung/beyond1lteeea/beyond1:12/SP1A.210812.016/G973FXXUEGULB:user/release-keys`. PiperOrigin-RevId: 443368546
-
Fix Basic authentication header
Issue: #9544 The header must include the word "Basic", but the word is missing. #minor-release PiperOrigin-RevId: 443386880
-
FrameProcessor: Create EncoderCompatibilityFrameProcessor.
Split rotationDegrees changes to EncoderCompatibilityFrameProcessor, a new FrameProcessor. This removes automatic rotationDegrees adjustments from Presentation, which allows Presentation to be used for changes before the end of a FrameProcessorChain pipeline. PiperOrigin-RevId: 443387226
-
Update the playback speed details in the live streaming dev guide
-
PiperOrigin-RevId: 443620931
-
Fix encoder configuration before API 25
Float I-frame intervals are only supported from API 25 onwards (see https://developer.android.com/reference/android/media/MediaFormat#KEY_I_FRAME_INTERVAL). Setting a null value for profile/level can cause a native crash when configuring the decoder. PiperOrigin-RevId: 443647924
-
Add an SSIM test with 360p input
This test should run on all devices from API 21 (the media uses Baseline profile level 3.0 H.264) to give us coverage of the full pipeline (forcing re-encoding) and SSIM calculation on all devices. PiperOrigin-RevId: 443650002
-
Catch unchecked exception in RtspSessionTiming parsing.
Issue: #10165 #minor-release PiperOrigin-RevId: 443653894
-
Transformer GL: Avoid no-op ScaleToFit / Presentation FrameProcessors
Avoid no-op FrameProcessors in VideoTranscodingSamplePipeline, to avoid creating resources for and executing GL for a no-op vertex+fragment shader. EncoderCompatibilityFrameProcessor will still always be exercised. PiperOrigin-RevId: 443675833
-
Use last frame processor to draw on debug surface view.
The last frame processor could use a different drawing command than a four vertex triangle strip. So we need call its drawing method again instead of assuming the shape. PiperOrigin-RevId: 444217274
-
Fix warning about potential integer overflow in DefaultAudioSink
PiperOrigin-RevId: 444221415
-
FrameProcessor: Avoid early rounding in Presentation output dimensions.
PiperOrigin-RevId: 444253425
-
Keep AudioTrack on flush as default
PiperOrigin-RevId: 444264961
-
*** Original commit *** Keep AudioTrack on flush as default *** PiperOrigin-RevId: 444327724
-
Transformer GL: Add support for pixelWidthHeightRatio.
To ensure frame processor operations operate on square pixels, make the frame taller or wider for non-square input pixels. In addition to automated tests, this was tested by changing the inputFormat.pixelWidthHeightRatio in the TransformerVideoRenderer. PiperOrigin-RevId: 444553517
-
Merge pull request #10214 from cedricxperi:dev-v2
PiperOrigin-RevId: 444585404
Commits on May 3, 2022
-
*** Original commit *** Upgrade Robolectric dependency to 4.8 *** PiperOrigin-RevId: 446175705
-
PiperOrigin-RevId: 446181877
-
Separate matrix effect specification and implementation.
This change splits AdvancedFrameProcessor into 4 files: - MatrixTransformationFrameProcessor for the GlFrameProcessor implementation - MatrixTransformation and GlMatrixTransformation for the GlEffect specification - MatrixUtils for the static matrix helpers PiperOrigin-RevId: 446236384
-
Some APIs from Android 12L were used either via reflection or constants values were hard-coded. We can now use these APIs directly since we upgraded the compile SDK version to 32. PiperOrigin-RevId: 446167543
Commits on May 4, 2022
-
Migrate usages of the deprecated TrackSelectionParameters.CREATOR
PiperOrigin-RevId: 446400192
-
Upgrade Robolectric dependency to 4.8.1
PiperOrigin-RevId: 446423017
-
Add frame processor based on MediaPipe to demo
PiperOrigin-RevId: 446432695
-
The TrackSelector is released when the player is released. The TrackSelector can be reused if TrackSelector.init() is called again. PiperOrigin-RevId: 446439717
-
GL: Update exoplayer to use bindTexture.
Refactoring change only. PiperOrigin-RevId: 446475708
-
Use MatrixTransformation instead of wrapping its GlFrameProcssor.
ScaleToFitFrameProcessor, PresentationFrameProcessor, and EncoderCompatibilityFrameProcessor now each implement MatrixTransformation instead of wrapping MatrixTransformationFrameProcessor. PiperOrigin-RevId: 446480286
Commits on May 5, 2022
-
Workaround for OkHttp Interrupt issues.
Relates to square/okhttp#3146. This was from androidx/media#71. There is a draft PR https://github.com/square/okhttp/pull/7185/files which documents OkHttp's ideal handling of cancellation including interrupts. But a few key points 1) This is a target state, and OkHttp does not currently handle interrupts correctly. In the past this has been identified, and the advice is to avoid interrupts on Http threads, see discussion on square/okhttp#1902. Also an attempt at a fix here square/okhttp#7023 which wasn't in a form to land. 2) Even with this fixed, it is likely to never be optimal, because of OkHttp sharing a socket connection for multiple inflight requests. From square/okhttp#7185 ``` Thread.interrupt() is Clumsy ---------------------------- `Thread.interrupt()` is Java's built-in mechanism to cancel an in-flight `Thread`, regardless of what work it's currently performing. We recommend against using `Thread.interrupt()` with OkHttp because it may disrupt shared resources including HTTP/2 connections and cache files. In particular, calling `Thread.interrupt()` may cause unrelated threads' call to fail with an `IOException`. ``` This PR leaves the Loader/DataSource thread parked on a countdown latch, while this may seem wasteful and an additional context switch. However in practice the response isn't returned until the Http2Connection and Http2Reader have a response from the server and these means effectively parking in a `wait()` statement here https://github.com/square/okhttp/blob/9e039e94123defbfd5f11dc64ae146c46b7230eb/okhttp/src/jvmMain/kotlin/okhttp3/internal/http2/Http2Stream.kt#L140 PiperOrigin-RevId: 446652468
-
Remove redundant attribute from matrix transformation vertex shader.
The texture coordinates can be derived from the frame coordinates. PiperOrigin-RevId: 446770538
Commits on May 6, 2022
-
Remove ExoPlayer's RawCcExtractor
RawCC is a Google-internal subtitle format, and is no longer used with ExoPlayer. PiperOrigin-RevId: 446950691
-
Transformer GL: Remove obsolete TODOs.
We won't try to provide/rethrow helpful error messages that are already provided by GL, as this sort of task would expand into writing a GL verifier. A Gl verifier is unnecessarily complex for minimal payoff, especially as Apps expected to read GL error messages would mostly be those writing custom GlFrameProcessors, who should be already be familiar with reading GL error messages anyways. PiperOrigin-RevId: 446950837
-
Disable transcoding when reading content URIs
Before this change, we list the formats for which we don't want transcoding. This change disables transcoding altogether. This was tested by checking that transcoding takes place on a short camera recording only when the added flag is not present (and AndroidManifest does not declare support for HEVC). PiperOrigin-RevId: 446986580
-
Match the suggested bitrate to the actual Kush Gauge formula.
As defined in Kush Amerasinghe's paper 'H.264 For the rest of us'. PiperOrigin-RevId: 446988272
Commits on May 9, 2022
-
Fix review comment in RTPVp9Reader
Change-Id: I7e2d36eb3d69fb09e0d0bbc283d41165c69d4076
-
-
Merge pull request #10150 from egor-n:dev-v2-8435-outlinecolour
PiperOrigin-RevId: 444787307
-
Transformer Demo: Add video with pixelWidthHeightRatio != 1.
This can allow apps to test and demonstrate support for videos with pixelWidthHeightRatio != 1. PiperOrigin-RevId: 444815182
-
Merge pull request #9967 from jruesga:cea708-handle-multiple-service-…
…blocks PiperOrigin-RevId: 444816821
-
Clean up
Util.inferContentType
methodsThis fixes some small niggles: 1. `inferContentType(String)` is documented to take a path, but in the tests we're passing full URIs. 2. A `String` parameter is usually a path, but also a MIME type or an extension. In the new methods, the meaning of a `String` parameter is always clear from the name of the method. 3. `inferContentType(String)` is always passed an extension in 'production' code (which has to be manually prefixed with a dot). 4. `inferContentType(Uri, @nullable String)` always ignores the Uri if the String is non-null. IMO this logic is clearer to a reader if it's just in-lined at the call-site. These methods are used from the demo apps, so will be part of the stable API. PiperOrigin-RevId: 444826053
-
Ignore mandatory SDP fields as ExoPlayer doesn't use them
Issue: #10049 PiperOrigin-RevId: 444833508
-
Fix calculations that may lose precision compared to their target type
PiperOrigin-RevId: 444861268
-
PiperOrigin-RevId: 444874326
-
Fix PeriodicVignetteFrameProcessor javadoc.
The parameter was removed in a previous CL but wasn't removed from the javadoc yet. PiperOrigin-RevId: 444879675
-
Reading AV1 initialization data.
We add an entire class like we do for parsing other codec initialization formats; it's currently not doing any parsing though (... initialization data is really simple for AV1 though: just the entire contents of the box). For testing, we add the sample file, having been re-encoded with ffmpeg (and we also happen to have another av1 file, too). PiperOrigin-RevId: 444890282
-
Add format when building a URI for an IMA SSAI media item
PiperOrigin-RevId: 445098397
-
Add device capability based test skipping.
Change test name prefix from `transform` to `transcode` for consistency. PiperOrigin-RevId: 445106224
-
Transformer: Restrict frame buffer size for all omx decoders API >= 29.
PiperOrigin-RevId: 445119411
-
Change video asset used in TranscodeQualityTest
The old video has a `irregular' resolution of 1080x720. Change to a 1920x1080 video. PiperOrigin-RevId: 445124065
-
Remove unneeded warning suppression from FrameworkMediaDrm
PiperOrigin-RevId: 445162900
-
* Add a /* paramName= */ comment * Remove an unnecessary comma. * Remove extra "internal " for a b/### link PiperOrigin-RevId: 445169649
-
Upgrade Robolectric dependency to 4.8
PiperOrigin-RevId: 445196313
-
Fix Util.inferContentTypeForExtension to handle .ism (smooth streaming)
This method was introduced in 754eb15 as a replacement for Util.inferContentType(String) but it incorrectly didn't return TYPE_SS when passed "ism" or "isml". PiperOrigin-RevId: 445217167
-
Rename CONTENT_TYPE_ @AudioContentType values to AUDIO_CONTENT_TYPE_*
This is consistent with the IntDef name, and frees up the CONTENT_TYPE_ prefix for the @ContentType values (which are currently just TYPE_*, and therefore ambiguous with lots of other 'type' values in C). PiperOrigin-RevId: 445356476
-
Add copies of PlayerControlView's public listeners to PlayerView
Developers are expected to (eventually) only use methods on PlayerView (and not PlayerControlView) to interact with the UI controller. PiperOrigin-RevId: 445361488
-
Return recommended output size for FrameProcessorChain.
Also add warning for what can happen if this is ignored. Previously the return value was overridden by setOutputSurface, now setOutputSurface only overrides the values using internally. PiperOrigin-RevId: 445377036
-
Use cronet for DRM requests in the main demo app
This ensures that both content and licenses are requested using the same HTTP stack. #minor-release PiperOrigin-RevId: 445378940
-
Allow stable API users to use DebugTextViewHelper
This is used from the main demo app. PiperOrigin-RevId: 445420580
-
Add MIDI mime types to decoder_midi and api.txt
PiperOrigin-RevId: 445445952
-
Add AV1 support to the getCodecMaxInputSize function.
PiperOrigin-RevId: 445973162
-
Introduce GlEffect interface for effect specification.
PiperOrigin-RevId: 446143537
-
Migrate usages from C.TYPE_* to C.CONTENT_TYPE_*
PiperOrigin-RevId: 446156308
-
Allow stable API users to bundle/unbundle TrackSelectionParameters
It's reasonable to serialize this type to support backgrounding use-cases, as demonstrated by the main demo app. PiperOrigin-RevId: 446161300
-
Opt some more bits of the main demo app into the unstable API
PiperOrigin-RevId: 446161354
-
Don't implement Player.Listener from SubtitleView
We never register SubtitleView as a Player.Listener directly, it's always done via PlayerView. PiperOrigin-RevId: 447467037
-
Add listener for FrameProcessingExceptions.
This listener replaces FrameProcessorChain#getAndRethrowBackgroundExceptions. The listener uses a new exception type FrameProcessingException separate from TransformationException as the frame processing components will be made reusable outside of transformer soon. PiperOrigin-RevId: 447455746
Commits on May 10, 2022
-
Expose the codec name to the analysis files.
PiperOrigin-RevId: 447724152
-
Fix GlUtil vector size constant name.
This constant is used for https://docs.gl/es2/glVertexAttribPointer which takes the number of components per generic vertex attribute (meaning the size of the individual coordinate vectors here) not the number of attributes (the number of vertices that the old constant name referred to). PiperOrigin-RevId: 447427241
Commits on May 23, 2022
-
Add
DefaultMediaSourceFactory.setDataSourceFactory
Also add this to the stable API instead of the constructor that takes `DataSource.Factory`. PiperOrigin-RevId: 450414119
-
Skip performance tests if device is not capable.
PiperOrigin-RevId: 450427828
-
-
Do not setOffloadEndOfStream if AudioTrack is not playing
AudioTrack.setOffloadEndOfStream should be called after a track has been buffered. Additionally, the AudioTrack must be playing. It has been observed that for very short media (<1s), the AudioTrack might not have started immediately after the read that buffered the audio. In such a situation, calling AudioTrack.setOffloadEndOfStream throws and playback fails. Avoid this failure by checking that the AudioTrack is playing before calling setOffloadEndOfStream. This means that very short gapless media will not be gapless, this was deemed acceptable given that such very short media should be very rare in offload. PiperOrigin-RevId: 450431146
-
*** Original commit *** Rollback of 57182ac *** Original commit *** Remove `@Nullable` from `MediaSource.Factory` setters The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default imple... *** PiperOrigin-RevId: 450453325
-
Don't reallocate EGLSurface for same debug surface.
Recreating an EGLSurface for a surface that already has an EGLSurface is not allowed according to the [documentation](https://www.khronos.org/registry/EGL/sdk/docs/man/html/eglCreatePlatformWindowSurface.xhtml). This fix was tested on the devices listed in the bug description (Pixel 5a, Nexus 5). PiperOrigin-RevId: 450473569
-
*** Original commit *** Remove `@Nullable` from `MediaSource.Factory` setters The null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. ****** PiperOrigin-RevId: 450410833
Commits on May 24, 2022
-
Force encoding for the on-device regression tests.
transformWithDecodeEncode is now transformWithoutDecodeEncode, to test the passthrough path. PiperOrigin-RevId: 447796892
-
Expose decoder name to analysis files.
PiperOrigin-RevId: 447950623
-
Refactor MIDI and Flac extractor loaders for deduplication
Add MIDI filetype information for use in the ExtractorsFactory PiperOrigin-RevId: 447976272
-
Adds key functionality for basic MIDI synthesization
- Add a MidiRenderer skeleton with basic playback - Add MidiDecoder with placeholder synthesizer (JSyn) impl - Make MidiExtractor feed placeholder data - Add Renderer extension loaders for MIDI PiperOrigin-RevId: 448212797
-
Transformer GL: Update test name reference.
The prior test does not exist, and is not a pixel test. PiperOrigin-RevId: 448224929
-
Add support for static RTP payload types.
Some RTP foramts are statically assigned, so they don't have the rtpmap attribute. Create the missing rtpmap attribute in this case. PiperOrigin-RevId: 448239724
-
Remove network type test restrictions for API 29/30
Network type detection on these API levels couldn't be tested yet because of a missing Robolectric feature. This was fixed by the recent Robolectric upgrade and the restrictions can be removed. This also requires to replicate the platform hack we rely on on these API levels. PiperOrigin-RevId: 448240431
-
Increase test timeout for 4k60 regression test.
Pixel 5 was occasionally reaching the 2 minute limit. PiperOrigin-RevId: 448244803
-
Add DefaultMediaSourceFactory.{set,clear}LocalAdInsertionConfig
Deprecate the setAdsLoaderProvider and setAdViewProvider methods these replace. PiperOrigin-RevId: 448251423
-
Fix warning about ambiguous
@EnsuresNonNull
annotation``` [expression.parameter.name.shadows.field] The postcondition EnsuresNonNull on the declaration of method 'setContentTimeline' contains ambiguous identifier 'contentTimeline'. Use "this.contentTimeline" for the field, or "#1" for the formal parameter. private void setContentTimeline(Timeline contentTimeline) { ^ ``` PiperOrigin-RevId: 448285571
-
Combine multiple matrix transformations in one shader.
When using a MatrixTransformationFrameProcessor per transformation matrix, each frame processor's shader applies the matrix to the vertices and clips the result to the NDC range when drawing the output frame. This change combines consecutive MatrixTransformations into a single MatrixTransformationFrameProcessor by multiplying the individual matrices while updating and clipping the visible polygon after each matrix and mapping the resulting visible polygon back to the input space so that its vertices and the combined transformation matrix can be used in the shader. PiperOrigin-RevId: 448521068
-
Add language normalization for "arb" (Standard Arabic)
This is an individual language (ISO 639-3) part of the Arabic macrolanguage ("ar" in ISO 639-1). Add this mapping to our existing list similar to other individual to macrolanguage mappings we have already. Issue: Issue: #10255 PiperOrigin-RevId: 448911950
-
Merge pull request #64 from ittiam-systems:rtp-vp9
PiperOrigin-RevId: 448978892
-
Add replacement for deprecated network type override constant
The MMWAVE constant was deprecated in favour of a new constant with a better name. Thus, we need to check for both constants now. PiperOrigin-RevId: 449018959
-
Fix demo app crash when media pipe isn't loaded
The toast message about media pipe not loading needs to be shown on the main (UI) thread. PiperOrigin-RevId: 449199285
-
The old reference was just for prototyping HDR. The new reference is for planned work to use the correct formats for input and output for HDR editing in GL. PiperOrigin-RevId: 449211792
-
Create new class to store cues and timestamp.
We need to pass timestamp for the list of cues so we are defining a new class CueGroup which will store both cues and timestamp. PiperOrigin-RevId: 449212054
-
Fix initialization of media pipe processors with assets
PiperOrigin-RevId: 449221156
-
Attempt to load OpenCV when loading MediaPipe
PiperOrigin-RevId: 449227706
-
Tidy releasing
FrameProcessorChain
PiperOrigin-RevId: 449238525
-
Add missing equals to MergingMediaPeriod.ForwardingTrackSelection
This causes a bug where the forwarded selections are no longer assumed equal and the child MediaPeriods will think they need to reset streams even though the selection stayed the same. Issue: Issue: #10248 PiperOrigin-RevId: 449454038
-
Remove all null-tolerant methods from BundleableUtil.
In most cases it's clearer to in-line these null-checks with ternary operators. PiperOrigin-RevId: 449474621
-
Clarify the priority of live config values in the dev guide
PiperOrigin-RevId: 449485592
-
Rename expected to reference in SsimHelper.
Reference is clearer when used in conjunction with actual, and matches other SSIM documentation. PiperOrigin-RevId: 449486177
-
Migrate leaf listeners of
Player
to newonCues
overridePiperOrigin-RevId: 449587030
-
Track validity of debug
SurfaceView
The debug surface view's output surface can become invalid during a transformation due to the parent activity pausing, for example. This can currently cause a crash when backing out of the `TransformerActivity` in the demo because the surface can be destroyed before the transformer has fully canceled. Also clarify naming of the outputSurface and inline the private method that created `EGLSurface`s (it was shorter after removing the debug preview). PiperOrigin-RevId: 449963440
-
Fix comment in MediaCodecRenderer
This constant name was updated in 1bcf1cf PiperOrigin-RevId: 449969093
-
Use
@C.DataType
intdef inHlsDataSourceFactory.createDataSource
PiperOrigin-RevId: 449973324
-
Simplify some DefaultMediaSourceFactory instantiation in the dev guide
In many cases we're passing a 'custom' DataSource.Factory where it's not relevant for the respective dev guide section. #minor-release PiperOrigin-RevId: 450374171
-
Remove 5G-NSA detection on API 29/30.
This detection relies on an unsupported workaround and may trigger permission warnings in tools analyzing permission usage although no permission is needed or requested by app code. Given the majority of 5G-NSA playbacks are on API 31+ by now, we can remove this path to avoid the permission confusion and the unsupported detection workaround. PiperOrigin-RevId: 450382586
-
Remove
@Nullable
fromMediaSource.Factory
settersThe null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. PiperOrigin-RevId: 450386627
-
Remove
@Nullable
from someDash/Hls/SsMediaSource.Factory
methodsThe null-behaviour of these methods creates a minimization footgun, because **any** call to these setters will prevent R8 from removing the default implementation (even if it's never used by the app) - this is because R8 can't tell the default implementation is only used if the parameter is `null`. Follow-up to 57182ac PiperOrigin-RevId: 450395941
-
Put cloud storage samples at the top to avoid having a sample at the top of the list where we don't control the server. Also update labels not to mention progressive container type, as it's irrelevant for Transformer, which always transmuxes even if it doesn't transcode. #ame-bug-week PiperOrigin-RevId: 450403784
Commits on May 26, 2022
-
Wrap TelephonyCallback in nested class to avoid class loading issues.
PiperOrigin-RevId: 450643824
-
Skip transform4K60 test if 4K decoding is not supported.
4K decoding is not supported (not required to be supported) on all devices, e.g., Nexus 5 does not support it. PiperOrigin-RevId: 450682519
-
Make
Rating.RATING_UNSET
package-privateThis value is only needed by subclasses of `Rating`, all of which are in this package (the `Rating` constructor is already package-private to ensure this). PiperOrigin-RevId: 450886872
-
Replace 640x360 H264 test video with 320x240 H264 video.
Decoding and encoding 320x240 H264 video should be supported on all devices from Android 5.0 based on CDD requirements. https://source.android.com/compatibility/5.0/android-5.0-cdd#5_2_video_encoding 640x360 encoding doesn't seem to be supported on Nexus 5. PiperOrigin-RevId: 450901715
-
Skip SSIM calculation on Nexus 5 API 21.
There is a problem with the ImageReader formats used by the SSIM helper that only occurs for Nexus 5 API 21, so as a workaround we can skip the SSIM calculation on Nexus 5 API 21. This skips just the SSIM calculation (by setting the value to 1.0 instead and logging). The tests still run when SSIM is skipped so that we can detect other failures. PiperOrigin-RevId: 450903183
-
Fix some inconsistencies in the
MediaItem
API* Rename (via deprecation) `MediaItem.DrmConfiguration.Builder#forceSessionsForAudioAndVideoTracks` to `setForceSessionsForAudioAndVideoTracks`. This is more consistent with existing 'force' method names both in this class and in `TrackSelectionParameters.Builder`. * Add missing `@Nullable` annotation to the parameter for `MediaItem.SubtitleConfiguration.Builder#setMimeType`. This annotation is already present on the `MediaItem.SubtitleConfiguration#mimeType` field that this setter corresponds to. PiperOrigin-RevId: 450941336
-
PiperOrigin-RevId: 451135097
Commits on May 30, 2022
-
Rename GlFrameProcessor to SingleFrameGlTextureProcessor.
Also update names of implementations to match design doc. In follow-ups, SingleFrameGlTextureProcessor will become an abstract implementation of a new GlTextureProcessor interface. Texture processor makes sense as it processes OpenGL textures. The term frame processor will be used for something else in follow-ups. PiperOrigin-RevId: 451142085
-
Replace frame processor with texture processor in TODO comment.
PiperOrigin-RevId: 451142799
-
Simplify
DefaultMediaSourceFactory
instantiation in a testThere's no need to manually construct a 'default' DefaultDataSource.Factory instance, we can just pass the `Context` to `DefaultMediaSourceFactory` and let it construct the `DefaultDataSource.Factory` internally. PiperOrigin-RevId: 451155747
-
Fix handling clipping in transformer renderers.
Decode-only video frames (needed when the frame at / first frame after the clipping start is not a key frame) need to be decoded but not passed to the frame processor chain or encoder. The clipping start offset needs to be removed from the frame timestamps in the passthrough and video pipelines. There are no changes needed for this in the audio pipeline, as it doesn't use the input timestamps -- it uses its own timestamps derived from the buffer sizes instead. Also add demo option to try this out. #minor-release PiperOrigin-RevId: 451353609
-
Transformer: Skip SSIM in tests when fallback is applied.
SSIM calculation requires the input and output dimensions to be identical. For devices that can't encode the input dimensions, skip SSIM calculations and log the cause. Only apply this on tests where the encoder may not support the input file dimensions. PiperOrigin-RevId: 451364904
-
Expand SSIM skipping to all Nexus API 21 devices.
PiperOrigin-RevId: 451371681
-
Use video passthrough if clipping starts at key frame.
PiperOrigin-RevId: 451380267
-
Unconditionally sleep for offload
Unconditionally sleep for offload, if the audio buffer is full. Previously ExoPlayer would not sleep if the expected wake-up was in 2s. This was to prevent underrun if the wake-up was delayed. Experiments have shown that the wakup audio buffer is far more than 2s (around 1min). Additionally, the metric was incorrect because it measured both, AudioTrack + DSP. Finally, this metric was erroneous after a gapless transition, when the head position would reset to 0 and thus the computed delay until next wakeup was too large. PiperOrigin-RevId: 451383701
-
Use updated test name in BUILD and docs.
PiperOrigin-RevId: 451384408
-
Clarify variables and improve documentation of SSIM.
PiperOrigin-RevId: 451392021
-
Transformer: Add 8k24fps transform test.
Most devices won't support 8k decoding, so they'll skip this test entirely. As the video is quite short, this test shouldn't be any longer than the nearby, long-running 4k60 test. PiperOrigin-RevId: 451423368
-
Treat pixels as unsigned and correct pixel count division.
PiperOrigin-RevId: 451428202
-
Wrap framework AudioAttributes in new AudioAttributesV21 class
PiperOrigin-RevId: 451831531
-
Retain stream time offsets through codecs
ExoPlayer applies a large time offset to buffers so that, if the input has negative timestamps, generally buffers seen by the decoders should have positive timestamps. Modify how the offset is handled in `Transformer` so that decoders and encoders generally see positive timestamps, by leaving the offset on samples when reading them in the base renderer (remove the code that removed the offset), and then removing the offset when muxing. Also update the frame processor chain and slow motion flattening code to retain the existing behavior after this change (these both need original media presentation timestamps) Tested via existing end-to-end tests and manually verified that the overlay frame processor shows the expected original media timestamps. Aside: we don't need the same logic as ExoPlayer to track stream offsets across the decoder yet, because we don't try to handle stream changes during playback in single asset editing. (There is an edge case of multi-period DASH that may not work but I doubt anyone will use that as input to `Transformer` before we change the code to handle multi-asset properly.) In future we should try to refactor interaction with the decoder to use the same code for Transformer and ExoPlayer. PiperOrigin-RevId: 451846055
-
Add RequestMetadata to MediaItem
These fields can be used to transport additional request properties when the requester doesn't know the details needed for the actual playback (i.e. the LocalConfiguration). PiperOrigin-RevId: 451857093
-
This value only existed to allow setting media URLs from external sources (e.g. in a MediaController) so that a player can start playing this item. Now that we have MediaItem.RequestMetadata.mediaUrl we can remove this value from MediaMetadata because it's request metadata, not media metadata. PiperOrigin-RevId: 451857413
-
Skip BitrateAnalysisTest if device is incapable.
Add bitrate check to the "can encode" criteria. PiperOrigin-RevId: 451868042
-
Gives a bit more information upon failures PiperOrigin-RevId: 451882968
-
-
Update the Gradle Wrapper and Android Gradle Plugin
The current verion of AGP warns it doesn't support Android API 32 [1]. The wrapper was upgraded with ([instructions](https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapper)): ```shell $ ./gradlew wrapper --gradle-version 7.4.2 --distribution-type all ``` [1] ``` WARNING:We recommend using a newer Android Gradle plugin to use compileSdk = 32 This Android Gradle plugin (7.0.3) was tested up to compileSdk = 31 This warning can be suppressed by adding android.suppressUnsupportedCompileSdk=32 to this project's gradle.properties The build will continue, but you are strongly encouraged to update your project to use a newer Android Gradle Plugin that has been tested with compileSdk = 32 ``` #minor-release PiperOrigin-RevId: 451893214 (cherry picked from commit 7fc9bb9)
Commits on May 31, 2022
-
Add explicit cast to ByteBuffer for Java 8 compatibility
PiperOrigin-RevId: 451994696 (cherry picked from commit 1c5032e)
-
Add
@deprecated
javadoc to all@Deprecated
@Override
methodsThis ensures the 'use X instead' message is easily visible in the generated HTML for the overriding method. Currently it's not, e.g.: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/BasePlayer.html#getCurrentWindowIndex() #minor-release PiperOrigin-RevId: 452002224 (cherry picked from commit d711dee)
-
Add some imports required for javadoc
#minor-release PiperOrigin-RevId: 452002758 (cherry picked from commit f76baae)
-
#minor-release PiperOrigin-RevId: 452006137 (cherry picked from commit 5460ac8)
-
This reinstates the permissive behaviour removed by fe7e5b8 Test file created by opening bear.opus in a hex editor and naively duplicating the two header packets, starting at (and including) the first `OggS` in the file and ending just before the third `OggS`. #minor-release Issue: #10038 PiperOrigin-RevId: 452015662 (cherry picked from commit b6b2826)
-
Create
withMediaPipe
variant only if AAR is presentThis should fix running `./gradlew clean test` if MediaPipe hasn't been built, for example. PiperOrigin-RevId: 452033698 (cherry picked from commit 14ed32c)
-
Ignore decoding test cases when library not available
#minor-release PiperOrigin-RevId: 452043577 (cherry picked from commit c386644)
Commits on Jun 7, 2022
-
Fix
HiddenTypedefConstant
Metalava error onPlaybackException
This is done by removing the `@FieldNumber` IntDef completely. It's not really adding much value anyway, because it's `open` so there's no real enforcement to prevent passing 'incorrect' values. #minor-release PiperOrigin-RevId: 452108972 (cherry picked from commit 97210b5)
-
Filter bogus AndroidX Media jar file when creating javadoc
#minor-release PiperOrigin-RevId: 452282128 (cherry picked from commit 2441bc6)
-
Rename
DefaultTrackSelector.ParametersBuilder
toParameters.Builder
We generally nest the `Builder` for `Foo` inside `Foo`. In this case, there's already a `DefaultTrackSelector.Parameters.Builder` type visible to a developer, it just happens to be the 'common' `TrackSelectorParameters.Builder`, so using it is a bit weird. For example this code snippet doesn't compile because `DefaultTrackSelector.Parameters.Builder#build()` returns `TrackSelectionParameters`. This CL fixes that problem and the code snippet now compiles. ```java DefaultTrackSelector.Parameters params = new DefaultTrackSelector.Parameters.Builder(context).build() ``` #minor-release PiperOrigin-RevId: 453215702 (cherry picked from commit 8816223)
-
Use a shared
keyForField
implementation in track selection parametersThe current setup with distinct, private `keyForField` implementations, leaves open the (theoretical) possibility of a clash in the `Bundle` keys used by the superclass and subclass. This change brings consistency with our only other extensible `Bundleable` type (`PlaybackException`). #minor-release PiperOrigin-RevId: 453385875 (cherry picked from commit a056f08)
Commits on Jun 9, 2022
-
Merge pull request #53 from ittiam-systems:rtp_opus
PiperOrigin-RevId: 453490088 (cherry picked from commit ade3452)
-
Clarify that
ShuffleOrder
must be consistent in both directions#minor-release PiperOrigin-RevId: 453622964 (cherry picked from commit 2c2be2d)
-
Audio passthrough: handle unset audio format channel count
With HLS chunkless preparation, audio formats may have no value for channel count. In this case, the DefaultAudioSink will either query the platform for a supported channel count (API 29+) or assume a max channel count based on the encoding spec in order to decide whether the audio format can be played with audio passthrough. Issue: #10204 #minor-release PiperOrigin-RevId: 453644548 (cherry picked from commit b3b57bc)
-
Add COMMAND_SET_MEDIA_ITEM to Player.Commands
Some Player implementations have no playlist capability but can still set a MediaItem for playback. Examples are a MediaController connected to a legacy MediaSession, ExoPlayer up to 2.12 or MediaPlayer. To indicate this capability, we need an allowed command in addition to COMMAND_CHANGE_MEDIA_ITEMS that just allows to set a single item that replaces everything that is currently played. #minor-release PiperOrigin-RevId: 453879626 (cherry picked from commit 2056152)
-
Merge pull request #69 from ittiam-systems:rtp_amr_test
PiperOrigin-RevId: 453905355 (cherry picked from commit 8a31e33)
-
Fix bug: playback is frozen with HLS chunkless preparation
This change fixes a bug where the player is frozen with HLS chunkless preparation because the audio stream wrappers are not marked as master timestamp sources before preparation. #minor-release PiperOrigin-RevId: 453941815 (cherry picked from commit 9174841)
-
Minor fix: remove final from methods of final class
#minor-release PiperOrigin-RevId: 453408087 (cherry picked from commit 527db57)
-
DefaultTrackSelector: Constrain audio channel count
The track selector will select multi-channel formats when those can be spatialized, otherwise the selector will prefer stereo/mono audio tracks. When the device supports audio spatialization (Android 12L+), the DefaultTrackSelector will monitor for changes in the platform Spatializer and trigger a new track selection upon a Spatializer change event. Devices with a `television` UI mode are excluded from audio channel count constraints. #minor-release PiperOrigin-RevId: 453957269 (cherry picked from commit 9f3c595)
Commits on Jun 13, 2022
-
Ensure
DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION
is always executed`codecDrainAction` is set to `DRAIN_ACTION_NONE` in 3 places in `MediaCodecRenderer`: * The constructor (so there's no prior state to worry about) * `updateDrmSessionV23()`: Where `mediaCrypto` is reconfigured based on `sourceDrmSession` and `codecDrmSession` is also updated to `sourceDrmSession`. * `resetCodecStateForFlush()`: Where (before this change) the action is unconditionally set back to `DRAIN_ACTION_NONE` and so any required updated implied by `DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION` is not done. This change ensures that `flushOrReleaseCodec()` handles `DRAIN_ACTION_FLUSH_AND_UPDATE_DRM_SESSION` before calling . This probably also resolves Issue: #10274 #minor-release PiperOrigin-RevId: 454114428 (cherry picked from commit c736a72)
-
Use correct placeholder PlayerID value in test
The default constructor is only allowed to be called on API < 32 and the test should use the defined UNSET constant to be API independent. #minor-release PiperOrigin-RevId: 454568893 (cherry picked from commit 0ed5321)
Commits on Jun 14, 2022
-
Merge pull request #10322 from DolbyLaboratories:dev-v2-multichannel
PiperOrigin-RevId: 454641746 (cherry picked from commit 1c373d5)
-
Spatializer: Assume linear channel count for E-AC3 JOC streams
#minor-release PiperOrigin-RevId: 454884692 (cherry picked from commit 6dc4b39)
Commits on Jun 15, 2022
-
Suppress lint errors
RestrictedApis
in lib-media2PiperOrigin-RevId: 454939082 (cherry picked from commit d1fbef8)
-
Make HttpDataSourceTestEnv require API 19
PiperOrigin-RevId: 454945333 (cherry picked from commit 4759472)
-
Add
many
quantity for fr an fr-CASee https://issuetracker.google.com/208178382 PiperOrigin-RevId: 454949204 (cherry picked from commit 6fd777c)
-
Add lint base to make gradle lint run without errors
PiperOrigin-RevId: 454951844 (cherry picked from commit 8b65c6a)
-
Merge pull request #9915 from dburckh:avi
PiperOrigin-RevId: 455094147 (cherry picked from commit 1ca382d)
-
#minor-release PiperOrigin-RevId: 455128997 (cherry picked from commit 499d3f9)
-
Update initial bitrate estimates
#minor-release PiperOrigin-RevId: 455140203 (cherry picked from commit 05b69a7)
Commits on Jun 16, 2022
-
Merge pull request #63 from ittiam-systems:rtp-h263
PiperOrigin-RevId: 455347182 (cherry picked from commit e220f53)
-
Version bump to exoplayer:2.18.0 and media3:1.0.0-beta01
#minor-release PiperOrigin-RevId: 455350486 (cherry picked from commit 209d308)
-
Add lint base xml file for string.xml files
Fixing lint errors in the string.xml files makes no sense because these are overridden with the next automated string import. Adding a lint-baseline.xml instead for the ui module. See https://issuetracker.google.com/208178382 #minor-release PiperOrigin-RevId: 455354304 (cherry picked from commit 495480a)
-
#minor-release PiperOrigin-RevId: 455361427 (cherry picked from commit 87420fc)
-
-
#minor-release PiperOrigin-RevId: 455372269 (cherry picked from commit 71ae88f)
Commits on Jun 17, 2022
-
Add lint baseline for spurious API-level warnings
The API 32 SDK has incorrect versioning metadata for Spatializer. It reports the whole class has only been present since API 33 (which is surely impossible given it's present in the API 32 SDK): https://issuetracker.google.com/234009300 The metadata seems to be correct in the API 33 SDK, so this baseline will no longer be needed when we bump to `compileSdkVersion = 33`.