9803 Commits

Author SHA1 Message Date
krocard
dd99d23621 Remove unnecessary AudioTrack alias
Those aliases were introduced when the class
was also called AudioTrack.

PiperOrigin-RevId: 333499360
2020-09-25 16:32:18 +01:00
krocard
f37d79a4dd Callback when sleeping for offload and existing from it
#exo-offload

PiperOrigin-RevId: 333497538
2020-09-25 16:32:09 +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
kim-vde
a92ccb0184 Merge pull request #7968 from DolbyLaboratories:dev-v2-channelConfiguration
PiperOrigin-RevId: 333485323
2020-09-25 16:31:49 +01:00
tonihei
66636f9ec0 Switch SntpClient to time.android.com and allow to set host.
PiperOrigin-RevId: 333480727
2020-09-25 16:31:38 +01:00
krocard
3be2463a94 Fix offload buffer full detection after setEndOfStream
This issue has been observed on a test app stress
testing setEndOfStream.

The issue has not been observed on ExoPlayer,
probably due to timing differences, but it is fixed
preventively.

#exo-offload

PiperOrigin-RevId: 333472136
2020-09-25 16:31:29 +01:00
ibaker
c76bc43de6 Delete sample_cbs.adts test asset
This seems to be an exact copy of sample.adts. Update the test to use
the same sample but just output to a different dump file.

PiperOrigin-RevId: 333469714
2020-09-25 16:31:20 +01:00
ibaker
d3639a2b20 Add Japanese subtitle examples to the demo app
These are from https://medium.com/google-exoplayer/improved-japanese-subtitle-support-7598fee12cf4

PiperOrigin-RevId: 333296789
2020-09-25 16:31:11 +01:00
andrewlewis
69ca49f939 Add support for 'mett' sample description
PiperOrigin-RevId: 333272292
2020-09-25 16:31:02 +01:00
tonihei
7b51797d4b Add availabilityTimeOffset to last available segment calculation.
This allows the player to load the unfinished segment of a low-latency
DASH stream.

PiperOrigin-RevId: 333077153
2020-09-25 16:30:52 +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
andrewlewis
a196fb0778 Remove unused MP4 atom type
PiperOrigin-RevId: 333051018
2020-09-25 16:30:34 +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
tonihei
12e887438b Add available segment logic to SegmentIndex
This allows to use the same logic from multiple places without duplicating
it, encapsulates in its logical place, and allows to change the available
segments based on the new availabilityTimeOffset value.

The overall effect of this change is a no-op.

PiperOrigin-RevId: 333044186
2020-09-25 16:30:15 +01:00
kim-vde
fb4b705cfe Merge pull request #7950 from friederbluemle:update-gradle-plugin
PiperOrigin-RevId: 333036751
2020-09-25 16:30:04 +01:00
ibaker
32194def67 Exclude PC devices from H.265 GTS tests
PiperOrigin-RevId: 333031399
2020-09-25 16:29:53 +01:00
tonihei
ebfeb2f77a Guava-ify f2c51560c2
PiperOrigin-RevId: 333031301
2020-09-25 16:29:44 +01:00
tonihei
f2c51560c2 Don't assume FakeSampleStream is ended without end of stream signal
PiperOrigin-RevId: 333029935
2020-09-25 16:29:34 +01:00
olly
cef3e3cac1 Cleanup layout XMLs to be consistent with others
PiperOrigin-RevId: 333023580
2020-09-25 16:29:25 +01:00
ybai001
1736e7cc85 Update MPEG-DASH AudioChannelConfiguration Parsing
Add support for schemeIdUri="urn:mpeg:mpegB:cicp:ChannelConfiguration".
https://dashif.org/identifiers/audio_source_metadata/ and clause 8.2 in ISO/IEC 23001-8.
2020-09-23 14:30:51 +08:00
ybai001
b4658ae6ff
Merge pull request #17 from google/dev-v2
Dev v2
2020-09-23 13:38:01 +08:00
olly
39f9eadefa Add blog posts to release notes
PiperOrigin-RevId: 332940209
2020-09-21 22:58:37 +01:00
ibaker
77d125b243 Use replace() instead of replaceAll() in SsaDecoder
We're not using regex so there's no need to use replaceAll()

PiperOrigin-RevId: 332865724
2020-09-21 22:58:28 +01:00
krocard
dc24274391 Recover from audio server crash while sleeping for offload
Without this patch, playback would be frozen indefinitely
until the user manually pauses and unpauses it.

This has the side effect of disabling offload until
the next stop due to the workaround of
disabling offload when it encounters a failure.

As an audio server crash is considered very
infrequent, especially in stable conditions like
an audio only playback, it is unlikely that disabling
offload is an issue.

PiperOrigin-RevId: 332857094
2020-09-21 22:58:19 +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
kimvde
4aa3a0482d Add unit tests for Transformer
PiperOrigin-RevId: 332416139
2020-09-21 22:57:47 +01:00
kimvde
cc10657c09 Fix dump file write directory
PiperOrigin-RevId: 332254072
2020-09-21 22:57:37 +01:00
Frieder Bluemle
48007f6d1c
Update Android Gradle plugin to 4.0.1 2020-09-19 23:49:04 -07:00
ibaker
f56db87c99 Add SDK_INT mapping from S -> 31
PiperOrigin-RevId: 332211266
2020-09-17 17:50:59 +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
Peter Bennett
efd5265e87 text: Fix handling of unbreakable-space in ssa subtitles
The character sequence \h is used for "unbreakable space".
Replace these sequences with space to avoid strings of \h
showing up on screen.
2020-09-17 11:21:30 -04:00
olly
744c57c87d More verbose instructions for consistency
PiperOrigin-RevId: 332015471
2020-09-16 17:00:52 +01:00
olly
f16f8e59ff Replace duration strings with plurals
PiperOrigin-RevId: 332014290
2020-09-16 17:00:42 +01:00
aquilescanta
a3cd36beb1 Update the FFmpeg extension readme to use symlinking
PiperOrigin-RevId: 332012857
2020-09-16 16:37:08 +01:00
aquilescanta
b866c5e424 Fix the FFmpeg extension build
Since gradle 4.0, CMake imported libraries are bundled in the APK, so
manually bundling them causes a duplication which breaks the build.

Issue: #7906
PiperOrigin-RevId: 332012375
2020-09-16 16:36:59 +01:00
christosts
7b5b8b2d79 Fix bug in offline DRM downloads
PiperOrigin-RevId: 331955966
2020-09-16 13:34:16 +01:00
tonihei
1bc99c2f03 Parse availabilityTimeOffset from DASH manifest.
This value is needed to figure out the last available segment for
low-latency live streaming. It may be present in each BaseURL tag
and each SegmentList or SegmentTemplate, with the latter one taking
precedence.

The value is saved as part of MultiSegmentBase where it will be used
to retrieve the last available segment index in future changes.

PiperOrigin-RevId: 331809871
2020-09-16 13:34:08 +01:00
olly
fa2a77107b Depend on robolectric 4.4, which has now been released
Issue: #7906
PiperOrigin-RevId: 331775990
2020-09-16 13:33:59 +01:00
olly
2f5d6a6541 Add missing release note
Issue: #7902
PiperOrigin-RevId: 331771187
2020-09-16 13:33:50 +01:00
olly
f387574140 Fix OOM-is-prevented test OOM-ing :)
This test is intended to check that DefaultLoadControl will cause
playback to fail as "stuck buffering" rather than OOM-ing, in the
case that its target buffer size is reached and playback still
hasn't started.

Unfortunately, the target buffer size is ~130MB, and when running
on some setups an OOM actually ends up happening before this much
memory is allocated.

This change makes the target buffer size much smaller to avoid the
problem.

PiperOrigin-RevId: 331748208
2020-09-16 13:33:42 +01:00
olly
6be879c21b Clean up experimental offload Javadoc
PiperOrigin-RevId: 331591005
2020-09-16 13:33:33 +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
b999977c9d Dev guide: Copy editing
Also changed the links that describe configuring the
player for ad insertion to link to the ads page.

PiperOrigin-RevId: 331349846
2020-09-13 00:02:32 +01:00
olly
5a009ab476 Remove references to cross-protocol redirects for Cronet
There's no option to enable them. This is probably a copy/paste error
from DefaultHttpDataSourceFactory.

PiperOrigin-RevId: 331334263
2020-09-12 21:05:18 +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
olly
bff7ac0dbe Clean up some lint warnings
PiperOrigin-RevId: 331162350
2020-09-11 17:31:03 +01:00
bachinger
99cdf2ca4d MediaItemify the IMA extension README and the ads page in dev guide
PiperOrigin-RevId: 331155539
2020-09-11 17:30:54 +01:00