forked from google/ExoPlayer
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Dev v2 #2
Merged
Merged
Dev v2 #2
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PiperOrigin-RevId: 364590789
PiperOrigin-RevId: 364598601
PiperOrigin-RevId: 364600438
PiperOrigin-RevId: 364607555
It's copied from BundleCompat in androidx.core. PiperOrigin-RevId: 364682379
Before this change, calling read after reaching the end of input in an Ogg file would cause an IllegalStateException. PiperOrigin-RevId: 364758873
PiperOrigin-RevId: 364779790
PiperOrigin-RevId: 364810286
PiperOrigin-RevId: 364821216
Issue: #8705 PiperOrigin-RevId: 364821429
PiperOrigin-RevId: 364836973
PiperOrigin-RevId: 364861539
The exo_controls_background view is supposed to fill its parent, and so previously used match_parent to do this. However, if the parent uses wrap_content for its own dimensions, the constraints being specified become somewhat ambiguous. The parent is supposed to be sizing itself to wrap its children, and one of the children is supposed to be sizing itself to match the parent. Intuitively for this case, you'd hope that the layout logic would size the parent to wrap its other children, and that the match_parent child would then fill the parent with its determined size. That's not what happens, and instead the parent ends up expanding to occupy all of the space available to it. This commit sets the exo_controls_background view's dimensions to be 0dp in the layout, to stop it from influencing the size of the parent. It's then expanded to fill the parent in code. Issue: #8726 #minor-release PiperOrigin-RevId: 364868301
PiperOrigin-RevId: 364871094
All Player methods should throw NotSupportedException. Making it abstract prevents the compiler catching non implemented methods. PiperOrigin-RevId: 364974387
The BasePlayer implementation of add/remove Listener knows about Components. As those are removed from the Player interface, the implementation of those methods needs to be moved down in Player implementations. This commit makes no functional change. PiperOrigin-RevId: 364985291
The hacky workaround for APIs 29/30 doesn't work on API 31. Instead, we can use the onDisplayInfoChanged callback, that is accessible from API 31. PiperOrigin-RevId: 364997282
PiperOrigin-RevId: 365044658
Fix WebViewSubtitleOutput to respect this (CanvasSubtitleOutput already does). Issue: #8704 PiperOrigin-RevId: 365534018
A TrackGroup must contain the same content in all Formats (except for the quality, encoding etc). Verify that the language and role flags are the same and log an error if don't match. Don't throw to avoid breaking existing use cases that just happen to work by chance. PiperOrigin-RevId: 365539240
PiperOrigin-RevId: 365556167
The extended onPositionDiscontinuity callback can be used to improve some listener classes: - Listening to onTimelineChanged to detect discontinuities is no longer needed. - Listening to onSeekStarted is no longer needed as the start position is part of the onPositionDiscontinuty callback. - The exact old position is also useful for media time history logging. As a side effect, removing onSeekStarted handling from PlaybackStatsListener fixes Issue: #8675 that was caused by the special EventTime handling for onSeekStarted. PiperOrigin-RevId: 365558959
If the player is created on a background thread (which is allowed as the only exception to the access-on-one-thread-only rule), it may happen that a callback on the main thread tries to access the player before the constructor even finished. This is dangerous and can cause exceptions due to uninitialized variables. To solve this, we can make sure that every player access is blocked until the constructor finished. Blocking is safe because the constructor itself is not doing any blocking work or acquiring locks. The thread verification method is already called on every entry point to the player, so we can reuse the same method for checking. PiperOrigin-RevId: 365792949
PiperOrigin-RevId: 365794941
This is generally not supported by our classes. A similar change for audio was made in aa2beb0. PiperOrigin-RevId: 365795371
Aims to achieve visibility parity with MediaCodecRenderer#onQueueInputBuffer. Allows measuring the time when the codec queue the first input buffer in the codec. Which means the Codec has been initialized and is about to start decoding. It also allows measuring how long it takes for the Codec to render its first frame. PiperOrigin-RevId: 365906756
PiperOrigin-RevId: 365992439
We remove other source related listeners if a MediaSource is removed from the playlist or the player/source is released. This isn't currently done for the DRM listener. #minor-release PiperOrigin-RevId: 370482571
Release is a life cycle operation that should only be called when the player is no longer needed. It's linked to the player lifecycle and thus very different from prepare/stop. As a result, it should not be in the same command. Additionally it's not clear if remote players will ever need to call release, as the player creator is best candidate to release it. As a result the release operation doesn't have a use case for a command. A release command can be added later if a need is identified. PiperOrigin-RevId: 370649214
The ForwardingPlayer implements the Player interface and forwards all operations to another Player instance. Apps will be able to override methods of ForwardinPlayer in order to modify and/or suppress specific Player funcionalities. This commit introduces the ForwardingPlayer which simply forwards all Player operations to another Player instance. In follow-up changes, the ForwardingPlayer will be extended so that it eventually reaches the feature-set offered by ControlDispatcher. PiperOrigin-RevId: 370653167
Allow ExoPlayer to open URIs starting with rtsp:// PiperOrigin-RevId: 370653248
PiperOrigin-RevId: 370660058
Previously loadingFinished will never be set to true because it started in false, and we are and'ing it with `canceled`. #minor-release PiperOrigin-RevId: 370662456
Some RTSP servers do not include the RANGE attribute for live contents. #minor-release PiperOrigin-RevId: 370662587
1. Clarify intention of getAdGroupIndexForPositionUs and getAdGroupIndexAfterPositionUs. Both methods are used for very specific but different purposes and encode the logic of which ads should be played at which time, so it's helpful to clarify this in the documentation as well. 2. Change one usage getAdGroupIndexForPositionUs to use the already existing nextAdGroupIndex. This is also more in line with the intended usage as clarified in step 1. 3. Update MediaPeriodQueueTest for updateQueuedPeriods to only look for duration changes in future periods, not in the current one, because that's not handled MediaPeriodQueue for ads and the test is just passing by chance now. Also remove wrong advancePlaying() calls that are already implicitly included in the preceding enqueueNext() call. 4. Fix a minor bug where post-roll ads are not checked whether they are played already before using them as the next ad group. Also added a test covering this case. #minor-release PiperOrigin-RevId: 370664131
#minor-release PiperOrigin-RevId: 370673852
Deferred the addition of error codes to ease the review process. PiperOrigin-RevId: 370687238
Add the onMediaMetadataChanged event to onEvents. PiperOrigin-RevId: 370738521
PiperOrigin-RevId: 370739641
PiperOrigin-RevId: 370740311
PiperOrigin-RevId: 370875532
Session pre-fetching caused this ordering assertion to no longer be always true. It should have been removed in 795ddfe #minor-release PiperOrigin-RevId: 370880530
#minor-release PiperOrigin-RevId: 370881618
PiperOrigin-RevId: 370897451
PiperOrigin-RevId: 370902227
Rating class should be in the same module as MediaMetadata. Tested: $ ./gradlew --stacktrace :exo-library-common:tDUT $ ./gradlew --stacktrace :media2-session:tDUT $ ./gradlew --stacktrace :media2-session-vct-current:cAT PiperOrigin-RevId: 370902917
PiperOrigin-RevId: 371068549
Move VideoSize in the common module and have the Player return it. `Listener` and `AnalyticsListener` `onVideoSizeChanged` are updated with the old method deprecated. `VideoRendererEventListener.onVideoSizeChanged` was also migrated to `VideoSize` but the old method is removed, not deprecated. This is because: - apps calling/listening to this method is a rare and niche use-case. - it would introduce hard to diagnostic issues where if only the caller or the callee is updated to use the new method, the event will be lost. This doesn't occur with the other 2 listeners as the caller is always in ExoPlayer library and was updated to call both the old and new methods. VideoSize is used everywhere except in `Format` as this would lead to too much refactoring and backward compatibility breakage for little gain. #minor-release PiperOrigin-RevId: 371087419
Before, Looper.myLooper().getThread() could throw an NPE if the current thread didn't have any looper. #minor-release PiperOrigin-RevId: 371097485
PiperOrigin-RevId: 371102614
PiperOrigin-RevId: 371109726
PiperOrigin-RevId: 371135534
This change adds an API in the ForwardingPlayer to disable commands. This is affecting what Player.isCommandAvailable() returns as well as what is being advertised from the EventListener.onAvailableCommandsChanged() callback. For the callback case, the ForwardingPlayer needs to intercept the callback. It does so by wrapping registered EventListener and Listener instances, which resulted in some boiler-plate code. In addition, there is logic on the wrapped listeners to avoid triggering a queued callback if all listeners have been removed in the meantime. This includes the case where new listeners are added while callbacks scheduled for the removed listeners are still pending. PiperOrigin-RevId: 371139703
PiperOrigin-RevId: 371170769
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Update the fork.