1509 Commits

Author SHA1 Message Date
kimvde
908785b701 Parse TLEN duration in Mp3Extractor
Issue: #7949
PiperOrigin-RevId: 333733615
2020-09-25 16:34:46 +01:00
samrobinson
851ca20cc0 Add support for mp2 boxes.
Issue: #7967
PiperOrigin-RevId: 333709003
2020-09-25 16:33:52 +01:00
krocard
d97af76280 Retry after offload playback failure
Do that by adding a recoverable state to
the ExoPlaybackException marking when
it is needed to recreate the renderers.

PiperOrigin-RevId: 333507849
2020-09-25 16:32:46 +01:00
tonihei
294ae10ef1 Change default of throwsWhenUsingWrongThread to true
Apps can still opt out for now, but this option will be removed in
the future.

Issue: #4463
PiperOrigin-RevId: 333489424
2020-09-25 16:32:00 +01:00
tonihei
4c6c1a130f Tweak shrinking guide and update release notes.
The shrinking didn't mention that users of the existing
ProgressiveMediaSource need to pass in ExtractorsFactory.EMPTY to the
SimpleExoPlayer.Builder as well.

Also updated the release notes to mention the changed shrinking
guidance.

Issue: #7937
PiperOrigin-RevId: 333060452
2020-09-25 16:30:43 +01:00
tonihei
25e31743d3 Don't require the existence of the next period to wait for its stream.
We have a workaround for uneven sample stream durarions in playlists that
assumes a renderer allows playback if it's reading ahead or waiting for
the next stream.

652c2f9c18 changed this logic to no longer require to
wait until the next stream is prepared due to a change in how we advance
media periods in the queue. However, the code falsely still requires the
next stream to exist (even if it's not prepared). This can cause a stuck
buffering state when the difference in the duration of the streams is more
than what we buffer ahead because we never create the next stream in such
a case.

Note: DefaultMediaClock.shouldUseStandaloneClock has roughly the same logic
and also doesn't require the next stream to be present.

Also fix a test that seemed to rely on this stuck buffering case to test
stuck buffering detection. Changed the test to not read the end of stream
to ensure it runs into the desired stuck buffering case.

Issue:#7943
PiperOrigin-RevId: 333050285
2020-09-25 16:30:25 +01:00
olly
39f9eadefa Add blog posts to release notes
PiperOrigin-RevId: 332940209
2020-09-21 22:58:37 +01:00
bachinger
2f21b10442 Mention moving skipSilence in release note
Issue: #7939
PiperOrigin-RevId: 332838586
2020-09-21 22:58:09 +01:00
Oliver Woodman
cf3e61ae6f Merge pull request #7938 from bennettpeter:pullreq-ssa-subtitles
PiperOrigin-RevId: 332814223
2020-09-21 22:57:58 +01:00
ibaker
70ebe12ef9 Suppress Guava-related ProGuard/R8 warnings
I didn't copy-paste the whole of
https://github.com/google/guava/wiki/UsingProGuardWithGuava because
this line seems relevant based on our current usage.

Lots of that file seems to relate to classes that are strongly
discouraged on Android:
https://github.com/google/guava/wiki/Android#specifics

I've only added this to the `common` module, since everyone that uses
ExoPlayer must depend on that. This avoids duplicating this line into
every module that has a Guava dependency.

Also remove some other warning suppressions that are defined in both
`core` and `common`.

Issue: #7904
PiperOrigin-RevId: 332203086
2020-09-17 17:41:34 +01:00
olly
2f5d6a6541 Add missing release note
Issue: #7902
PiperOrigin-RevId: 331771187
2020-09-16 13:33:50 +01:00
christosts
7c8779111d Add release note entry for DRM-protected downloads
PiperOrigin-RevId: 331539036
2020-09-16 13:33:23 +01:00
olly
12a29e3026 Fix release notes
PiperOrigin-RevId: 331354102
2020-09-13 00:02:41 +01:00
olly
b3904faf30 Add playlist query methods to 2.12
PiperOrigin-RevId: 331242049
2020-09-12 21:05:08 +01:00
bachinger
91a491ea31 Add getMediaItemCount() and getMediaItemAt(int)
PiperOrigin-RevId: 331211708
2020-09-11 23:09:38 +01:00
andrewlewis
156166f57c Fix handling of empty ad groups at non-integer cue points
Issue: #7889
PiperOrigin-RevId: 331149688
2020-09-11 17:30:43 +01:00
kimvde
6abe6a676e Support android.resource URI scheme
Issue: #7866
PiperOrigin-RevId: 330736774
2020-09-09 17:43:15 +01:00
olly
312e260f71 Update release notes
- Remove SampleQueue changes (they're being picked up in 2.12, but
  are sufficiently minor to not warrant a release note)
- Update 2.12 estimated release date

PiperOrigin-RevId: 330409443
2020-09-09 09:41:22 +01:00
Oliver Woodman
442aa78196 Merge pull request #7814 from zubcoco:dev-v2
PiperOrigin-RevId: 330366909
2020-09-07 20:43:30 +01:00
andrewlewis
56e622a2e5 Fix release notes link
PiperOrigin-RevId: 329665766
2020-09-07 20:40:51 +01:00
andrewlewis
47561f200f Fix handling of incompatible VPAID ads
Issue: #7832
PiperOrigin-RevId: 329497598
2020-09-07 20:40:13 +01:00
olly
17b370d00c Allow upstream discards from the SampleQueue by time.
Add a SampleQueue method to discard from the write side of the queue by timestamp

PiperOrigin-RevId: 329303714
2020-09-07 20:39:46 +01:00
olly
e1c3da2a74 Set 2.12 release date & merge in some recent changes
PiperOrigin-RevId: 328747057
2020-08-27 22:30:28 +01:00
olly
94cff6ba50 Clean up release notes for 2.12: Core part 2
PiperOrigin-RevId: 328549736
2020-08-27 12:06:11 +01:00
olly
eba93b0d5e Clean up release notes for 2.12: Core part 1
PiperOrigin-RevId: 328549086
2020-08-27 12:06:01 +01:00
kim-vde
bcad98b9ff Merge pull request #7667 from willtrking:dev-v2-mkv-dovi
PiperOrigin-RevId: 328536503
2020-08-26 16:40:35 +01:00
andrewlewis
4b0e39e4b9 Add an event for the audio position advancing
Currently the audio renderer can become ready before the AudioTrack
actually has enough data to play something, which means that the
player may transition to the ready state before audio starts
playing. This makes the player's current state transition not very
useful for detecting when audio actually starts playing.

This change adds a new event to notify apps when the audio position
is increasing after a pause or seek/flush/reset event, and includes
an estimate of the system time at which audio playout started.

Issue: #7577
PiperOrigin-RevId: 327810040
2020-08-26 16:39:18 +01:00
olly
4c894c80ba Clean up release notes for 2.12: Analytics
PiperOrigin-RevId: 327791211
2020-08-21 12:55:37 +01:00
olly
505511a761 Clean up release notes for 2.12: Audio
PiperOrigin-RevId: 327790491
2020-08-21 12:55:37 +01:00
olly
185be99d61 Split trivial changes from 2.12 into a 2.11.8 release
PiperOrigin-RevId: 327599049
2020-08-21 12:51:05 +01:00
olly
d0d5e8ec8f Clean up release notes for 2.12: Start fixing core notes
PiperOrigin-RevId: 327203178
2020-08-21 12:48:48 +01:00
olly
7588c26b60 Remove support for cbc1 and cens encryptions schemes
PiperOrigin-RevId: 327199833
2020-08-21 12:48:39 +01:00
kimvde
99d245f7a6 Open source MetadataRetriever
Issue: #3609
PiperOrigin-RevId: 327176362
2020-08-18 08:12:05 +01:00
kimvde
103bb98dba Revert Copybara config to avoid error when syncing the dev-v2 branch.
PiperOrigin-RevId: 327013751
2020-08-17 16:20:03 +01:00
kimvde
10fa745fab Open source MetadataRetriever
Issue: #3609
PiperOrigin-RevId: 326991376
2020-08-17 16:14:12 +01:00
ibaker
5950557086 Add a release note about WebView-based subtitle output
Also re-word some existing subtitle notes

PiperOrigin-RevId: 326989276
2020-08-17 16:14:02 +01:00
olly
339e3f899d Clean up release notes for 2.12: UI, downloads, DRM
PiperOrigin-RevId: 326427225
2020-08-17 16:12:03 +01:00
olly
039af76b0e Clean up release notes for 2.12: Test utils, extensions and demo
PiperOrigin-RevId: 326425279
2020-08-17 16:11:53 +01:00
andrewlewis
501f464217 Add support for using framework speed adjustment
AudioTrack.setPlaybackParams can be used to adjust playback speed.
This is preferable to application-level speed adjustment (currently
implemented in ExoPlayer) from API 23 because the speed change
occurs in the mixer, which means that the audio track buffer doesn't
need to drain out before the speed adjustment takes effect.

Issue: #7502
PiperOrigin-RevId: 326392301
2020-08-17 16:10:50 +01:00
olly
da2f78505d Clean up release notes for 2.12: Move sections into a better order
PiperOrigin-RevId: 326221199
2020-08-17 16:09:55 +01:00
olly
099ea4b5b5 Clean up release notes for 2.12: DASH/SS/HLS/Extractors
PiperOrigin-RevId: 326220752
2020-08-17 16:09:46 +01:00
olly
93ceb78d0e Clean up release notes for 2.12: Text
PiperOrigin-RevId: 326218372
2020-08-17 16:09:37 +01:00
olly
361e5d9326 Demo app: Fix DRM support check for ClearKey
Issue: Issue: #7735
PiperOrigin-RevId: 325900705
2020-08-17 16:08:15 +01:00
andrewlewis
acc8453628 Add support for audio-only ad display containers
Issue: #7689
PiperOrigin-RevId: 325752377
2020-08-17 16:05:56 +01:00
christosts
a5e6e3054d Offline DRM in main demo app
PiperOrigin-RevId: 325413035
2020-08-07 19:04:09 +01:00
olly
6a54ddd217 FMP4: Correctly handle multiple sbgp and sgpd boxes
Find sbgp and sgpd boxes with grouping_type == seig in the case they don't
come first. Previoulsy we would only find them if they came first.

Issue: Issue: #7716
PiperOrigin-RevId: 325407819
2020-08-07 19:03:50 +01:00
olly
b9612bc338 Fix codec initialization data for Opus in MP4
PiperOrigin-RevId: 325327466
2020-08-07 19:03:40 +01:00
krocard
5342576e73 Use bypass for PCM if AudioTrack supports it
Codec bypass is now enabled for all formats
audio track supports.

PiperOrigin-RevId: 324987842
2020-08-07 19:01:35 +01:00
claincly
ea01489c8b Added float output mode for Opus extension
The working of libOpus is different from ffmpeg. With ffmpeg, the decoder can
be configured to output floating point PCM. While in libOpus, floating samples
are acquired by calling a different function. This is the reason the new JNI
functions and the logic in OpusDecoder/LibopusAudioRenderer is added to
support float output.

PiperOrigin-RevId: 324661603
2020-08-07 18:59:50 +01:00
christosts
f4287ed070 Add a builder for DownloadRequest
PiperOrigin-RevId: 324616617
2020-08-07 18:59:30 +01:00