- 16 Jul, 2021 22 commits
-
-
Amend release note for https://github.com/google/ExoPlayer/commit/46bc49a4f6e8194ddb28e7b17eb775157c3e241d. PiperOrigin-RevId: 380766548
claincly committed -
Issue: #9086 PiperOrigin-RevId: 380756562
olly committed -
The problem occurs when the primary media playlist URL switches from one whose latest snapshot has not yet got the ended tag, to one whose latest snapshot already has the ended tag. In this case: - We trigger a redundant load of the ended playlist. - When the redundant load completes, MediaPlaylistBundle.processLoadedPlaylist detects that the playlist is unchanged from the one it already has, and so doesn't call onPlaylistUpdated. - PrimaryPlaylistListener.onPrimaryPlaylistRefreshed is never called with the new primary. Hence the externally visible primary is still the one that hasn't ended. HlsMediaSource therefore thinks the event hasn't ended, which in turn prevents the player from transitioning to the ended state. This commit detects when the new primary already has the ended tag. In this case, we call onPrimaryPlaylistRefreshed directly and remove the unnecessary playlist load. Issue: #9067 #minor-release PiperOrigin-RevId: 380680532
olly committed -
The glitches were introduced in: https://github.com/google/ExoPlayer/commit/6c31e34528 The problem is that Listener.onEvents is called in a later looper iteration than the listener methods that were previously used. This created a gap on the main thread between the UI component dispatching a seek operation to the player, and onEvents being called to update the progress bar's position. At the start of this gap the progress bar is rendering the new position, but its position member variable is still set to the old position. If the progress bar is re-drawn by another message on the main thread within the gap, it will briefly show the old position until onEvents is called. There are multiple possible fixes to this, and the best one is probably to modify ListenerSet to remove the gap. That's high risk though, so for now we fix the flicker by always updating the progress immediately after the seek is dispatched, in addition to when onEvents is called. Issue: #9049 PiperOrigin-RevId: 380678388
olly committed -
#minor-release PiperOrigin-RevId: 380655806
olly committed -
Issue: #9061 PiperOrigin-RevId: 380640601
olly committed -
This softens the language around suppressing individual test methods. There are some legitimate cases where this is needed, e.g. ByteArrayDataSourceContractTest has to suppress all the tests related to non-existent resources because it's not possible to simulate that case. #minor-release PiperOrigin-RevId: 380570017
ibaker committed -
Some server will wrongly insert duplicated attributes. We used to treat this as a unrecoverable error, but it is better to treat the duplicated attributes in an "over-writable" fashion like HashMaps. Issue: #9080, Issue: #9014 PiperOrigin-RevId: 380547079
claincly committed -
#minor-release PiperOrigin-RevId: 380531272
ibaker committed -
Also change to explicitly track the provisioning session, which makes the code easier to reason about than always using the zero'th element of the list. PiperOrigin-RevId: 380181453
ibaker committed -
PiperOrigin-RevId: 379935363
christosts committed -
Issue: #8960 PiperOrigin-RevId: 379922704
christosts committed -
#minor-release PiperOrigin-RevId: 379913814
ibaker committed -
Issue: #9004 PiperOrigin-RevId: 379516815
olly committed -
Note that this removes a workaround for malformed content, in which the track_ID is set incorrectly. It's unclear there was sufficient reason to implement that workaround, and so it's preferable to remove it, rather than implementing the concept of unrecognized tracks, which would be needed to keep it and to also fix this issue. Issue: #9056 PiperOrigin-RevId: 379506261
olly committed -
The Widevine H264 samples in the demo app now log this from the EventLogger: ``` [X] Track:0, id=1, mimeType=video/avc, bitrate=772315, codecs=avc1.42c01e, drm=[widevine,cenc], res=320x142, fps=24.0, supported=YES ``` And the VP9 ones log: ``` [X] Track:0, id=1, mimeType=video/x-vnd.on2.vp9, bitrate=588256, codecs=vp9, drm=[widevine], res=320x142, fps=23.809525, supported=YES ``` #minor-release PiperOrigin-RevId: 379498332
ibaker committed -
PiperOrigin-RevId: 379440699
Oliver Woodman committed -
PiperOrigin-RevId: 378895355
Oliver Woodman committed -
Issue: #8246 PiperOrigin-RevId: 378606475
olly committed -
Issue: #9032 PiperOrigin-RevId: 378605169
olly committed -
It is the current public stable version and it brings in @DoNotInline. PiperOrigin-RevId: 378119413
aquilescanta committed -
In Android 12 mutability flags have to be set on PendingIntents. If they are not, and the app targets Android 12, then the app will be crashed by the system. PiperOrigin-RevId: 373427591
olly committed
-
- 14 Jun, 2021 1 commit
-
-
r2.14.1
Ian Baker committed
-
- 11 Jun, 2021 1 commit
-
-
#minor-release PiperOrigin-RevId: 378844770
olly committed
-
- 10 Jun, 2021 11 commits
-
-
#minor-release PiperOrigin-RevId: 373351014
olly committed -
Oliver Woodman committed
-
PiperOrigin-RevId: 378665771
olly committed -
PiperOrigin-RevId: 377106891
olly committed -
Oliver Woodman committed
-
RtspMediaSource uses the timeline update paradigm from ProgressiveMediaPeriod. PiperOrigin-RevId: 378150758
claincly committed -
The size of rtspLoaderWrappers must match the number of tracks exposed by the RTSP session (a track is exposed if its media description entry appears in DESCRIBE's SDP response). When retrying with TCP, the old code will start loading all exposed RTSP tracks, regardless of whether they are selected. The fixed code will only start loading selected tracks. #minor-release PiperOrigin-RevId: 377931030
claincly committed -
The current code does not catch the IAE thrown when building a MediaDescription or SessionDescription. This CL catches the IAE and propagates it as a ParserException. Issue: #9014. PiperOrigin-RevId: 377544439
claincly committed -
The old version's retry logic will not work if using authentication. Specifically, we use the same authentication parameters from the previous session, and the RTSP server will reject such parameter. In this fix, we reset the authentication info on retry. Further, we retry the last request on receiving a 401 Unauthorized, rather than sending out another DESCRIBE request. #minor-release PiperOrigin-RevId: 377539711
claincly committed -
#minor-release PiperOrigin-RevId: 377476603
claincly committed -
Related to Issue: #8941. RTSP message body's format is not regulated by the RTSP spec, meaning it can use either CRLF or LF as its line terminator. The old code assumes every line ends with CRLF (RTSP message and the message body); the new code will rely on the Content-Length information to receive the bytes for the message body. #minor-release PiperOrigin-RevId: 377475565
claincly committed
-
- 07 Jun, 2021 2 commits
-
-
Also added test cases covering this. PiperOrigin-RevId: 374218514
tonihei committed -
PiperOrigin-RevId: 373343326
Oliver Woodman committed
-
- 06 Jun, 2021 3 commits
-
-
olly committed
-
`SurfaceTexture` provides a transform matrix with each buffer. Previously gldemo ignored this but it is important to apply it to have the video render properly. The transformation matrix from the surface texture includes flipping so this change removes the hard-coded flipping from `a_texcoord`. Issue: #8992 #minor-release PiperOrigin-RevId: 377271389
andrewlewis committed -
#minor-release PiperOrigin-RevId: 377269770
olly committed
-