- 22 Nov, 2022 3 commits
- 16 Nov, 2022 11 commits
-
-
#minor-release PiperOrigin-RevId: 488885069
bachinger committed -
PiperOrigin-RevId: 488884403
tianyifeng committed -
`availableFrameCount` tracks the number of frames that is avilable on the `SurfaceTexture`, but haven't been used (by `updateTexImage()`) yet. Thus semantically this counter should only be decremented after calling `updateTexImage()`, not before it. Also reworded `getPendingFrameCount()` javadoc, "external texture" is an internal state that is not publicised anywhere. PiperOrigin-RevId: 488765174
claincly committed -
This is a simpler API to use than the prior tone mapping, HDR editing, and forceInterpretHdrAsSdr options PiperOrigin-RevId: 488742391
huangdarwin committed -
This better matches the callback name (onSurfaceSizeChanged) and probably cause less confusion with getVideoSize. PiperOrigin-RevId: 488669786
tonihei committed -
Util.getAudioTrackChannelConfig() maps a channel count to a channel mask that is passed to AudioTrack. The method expected that playback of 8-channel audio is possible from Android 5.1 and playback of 12-channel audio is only possible from Android 12L. However, there is no restriction on the upper number of channels that can be passed to the AudioTrack. google/ExoPlayer#10701 is an example where the audio decoder outputs 12 channels on an Android 10. This change removes the restrictions for 8 and 12 channels. Note, we still do not support playback of arbitrary number of channels as it would require further changes to DefaultAudioSink. #minor-release Issue: google/ExoPlayer#10701 PiperOrigin-RevId: 488659831
christosts committed -
When we currently trigger the iteration finished event during the release, we don't mark the event as triggered. This means that someone can trigger another release from within the callback, which then tries to resend the event. Issue: google/ExoPlayer#10758 #minor-release PiperOrigin-RevId: 488645089
tonihei committed -
Provides an API for applications to set AudioProcessors for use in Transformer. PiperOrigin-RevId: 488621242
samrobinson committed -
We currently skip this calculation entirely, but it can be added by calculating the window duration using the wrapped window's duration and the provided AdPlaybackState. Issue: google/ExoPlayer#10764 PiperOrigin-RevId: 488614767
tonihei committed -
AssetLoader will have multiple implementations and be customizable. We want to remove the responsibility of computing the progress from this class and centralize the logic in TransformerInternal. PiperOrigin-RevId: 488608890
kimvde committed -
PiperOrigin-RevId: 488412695
samrobinson committed
-
- 14 Nov, 2022 11 commits
-
-
Per documentation, eglCreateWindowSurface creates a new EGL window surface. getEglSurface suggests instead that a pre-existing surface is returned. https://registry.khronos.org/EGL/sdk/docs/man/html/eglCreateWindowSurface.xhtml PiperOrigin-RevId: 488377423
huangdarwin committed -
PiperOrigin-RevId: 488376715
ibaker committed -
Previously, tone-mapping was the default. PiperOrigin-RevId: 488362209
huangdarwin committed -
Also, update API level per the test now using API 31 PiperOrigin-RevId: 488359535
huangdarwin committed -
Add an HLG Pixel 7 Pro video and its associated format for testing. PiperOrigin-RevId: 488353926
huangdarwin committed -
PiperOrigin-RevId: 488310077
kimvde committed -
PiperOrigin-RevId: 487811903
samrobinson committed -
PiperOrigin-RevId: 487786326
huangdarwin committed -
Added new method to check if codec just functionally supports a format. Changed getDecoderInfosSortedByFormatSupport to use new function to order by functional support. This allows decoders that only support functionally and are more preferred by the MediaCodecSelector to keep their preferred position in the sorted list. UnitTests included -Two MediaCodecVideoRenderer tests that verify hw vs sw does not have an effect on sort of the decoder list, it is only based on functional support Issue: google/ExoPlayer#10604 PiperOrigin-RevId: 487779284
michaelkatz committed -
PiperOrigin-RevId: 487779266
ibaker committed -
PiperOrigin-RevId: 487539107
ibaker committed
-
- 10 Nov, 2022 15 commits
-
-
Also make order of streamStartPositionUs and streamOffsetUs consistent PiperOrigin-RevId: 487511633
kimvde committed -
The MediaControllerImplBase listener invocations currently use the class member state that can change if one of the listener method implementations changes the state recursively. Updating the listener invocations to use a final local variable ensures all listeners get consistent updates. PiperOrigin-RevId: 487503373
tonihei committed -
The tests in MediaControllerCompatCallbackWithMediaSessionTest don't follow this pattern very consistently at the moment. PiperOrigin-RevId: 487501913
tonihei committed -
Creating the PlaybackStateCompat from a media3 Player state is done already by the MediaSessionConnector (and used widely). The media3 session module should set the same states under the same circumstances to ensure compatiblity and consistency. PlaybackStateCompat changes made in media3 session: - Use STATE_STOPPED when player is ended instead of STATE_PAUSED - Use STATE_PLAYING when playback is suppressed temporarily. - Set the playback speed to 0 if the player is not playing. - Add extras for mediaId and user-set playback speed. Part of the problem was that Player.isPlaying() was used to check the state. Unfortunately, MockPlayer.isPlaying() is implemented in a way that makes it hard to test these changes, because the value is set independently of playbackState, playWhenReady and suppression reason. To be able to write consistent, logical tests, this change also removes the independent setting of isPlaying in MockPlayer to align it better with a real player. This requires to update some other tests to use alternative methods. PiperOrigin-RevId: 487500859
tonihei committed -
Without this the annotation isn't shown in javadoc (same in Dackka) No annotation: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.html#getSupportedTypes() Annotation present: https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/source/MediaSource.Factory.html#getSupportedTypes() #minor-release PiperOrigin-RevId: 487498450
ibaker committed -
#minor-release PiperOrigin-RevId: 487497923
ibaker committed -
It's not clear to me why presubmit didn't catch this, I briefly investigated but couldn't work it out - so I'm just going to fix it and move on. #minor-release PiperOrigin-RevId: 487497827
ibaker committed -
The connection to a legacy MediaSession may receive additional onSessionReady callbacks that are treated as additional state updates. We currently also set the "notifyConnected" flag for these updates even though we are connected already, causing an IllegalStateException. Fix the exception by not setting this flag. We can also remove the wording about "locked" updates since this class operates everything on a single application thread. Issue: androidx/media#49 PiperOrigin-RevId: 487487286
tonihei committed -
PiperOrigin-RevId: 487487259
kimvde committed -
#minor-release PiperOrigin-RevId: 487479366
christosts committed -
The player is still driving the transformation at this point. The transformer thread will be added in another CL. PiperOrigin-RevId: 487479148
kimvde committed -
These aren't caught by presubmit because the classes are annotated `@VisibleForTesting` and are therefore stripped out by Metalava. However Metalava doesn't run when we're generating javadoc for real. #minor-release PiperOrigin-RevId: 487476260
ibaker committed -
This involves reducing the visibility of methods/constructors that are already unusable outside the `androidx.media3.test.utils` package. #minor-release PiperOrigin-RevId: 487473005
ibaker committed -
This uses `@hide` on `protected final` methods to hide them from Dackka javadoc generation, since these methods are inaccessible to developers anyway. These symbols will still (currently) be included in artefacts distributed on Maven (because we don't run Metalava as part of generating these artefacts). In some cases I had to change the visibility/finality of methods to make them `protected final` before adding the `@hide` annotation (but the impact should be very low, since most of these methods were either already unusable by app developers, or they shouldn't have been used). #minor-release PiperOrigin-RevId: 487472907
ibaker committed -
This makes two fixes: 1. Remove `HlsSampleStreamWrapper.Callback` (package-private) from the list of interfaces implemented by `HlsMediaPeriod` (`public`) and move the implementation to a private inner class instead. This avoids Metalava complaining about a public class that inherits from a package-private type. 2. Reduce the visibility of `RtpPayloadFormat.isFormatSupported(MediaDescription)` from `public` to package-private. The `MediaDescription` type is already package-private, so this method was already unusable outside the package. #minor-release PiperOrigin-RevId: 487472781
ibaker committed
-