7917 Commits

Author SHA1 Message Date
tonihei
16a6946f3e Replace @MonotonicNonNull with @Nullable for final variables.
@MonotonicNonNull is not useful if the variable is final, because it's only
assigned once and guaranteed to keep it's current nullability in the same
way as @MonotonicNonNull ensures it's kept non-null after checking.

This way, the workarounds can also be removed.

PiperOrigin-RevId: 275428656
2019-10-18 17:42:43 +01:00
andrewlewis
39d5f14343 Don't propagate empty supplemental data
PiperOrigin-RevId: 275425267
2019-10-18 17:42:35 +01:00
olly
701b013cdd Rollback of 9f0fd870e7
*** Original commit ***

Port Exo v1 work around for frame synchronization issue in KitKat to Exo v2.

***

PiperOrigin-RevId: 275372272
2019-10-18 17:42:27 +01:00
olly
64786c6ce4 Refactor GlViewGroup to ViewRenderer
GlViewGroup doesn't work properly as an actual ViewGroup. For example,
it doesn't support addition of child views after instantiation. This
change turns the class into a renderer, which is also more consistent
with other classes in the package.

PiperOrigin-RevId: 275322295
2019-10-18 17:42:19 +01:00
bachinger
0c0a67bb93 Fail at preparation when trying to download live content.
PiperOrigin-RevId: 275293735
2019-10-18 17:42:11 +01:00
bachinger
36f8bd78f7 Rollback of 4ad4e3e4fc
*** Original commit ***

Rollback of 3b22db33ba

*** Original commit ***

add top-level playlist API to ExoPlayer

Public design doc:
https://docs.google.com/document/d/11h0S91KI5TB3NNZUtsCzg0S7r6nyTnF_tDZZAtmY93g

Issue: #6161

***

***

PiperOrigin-RevId: 275276158
2019-10-18 17:42:03 +01:00
ibaker
9ec2d2fb36 Remove HlsMediaSource from null-checking blacklist
PiperOrigin-RevId: 275233915
2019-10-18 17:41:54 +01:00
olly
b0d0914ce5 Round impossible H264 resolutions up to valid values for capabilities check
If an odd resolution is impossible in the specification itself, then we know
that the caller is passing invalid data. Round up on the assumption it's a
rounding error so that playback can proceed.

Issue: #6551
PiperOrigin-RevId: 275226813
2019-10-17 13:21:27 +01:00
olly
d874656e8a Round impossible H264 resolutions up to valid values for capabilities check
If an odd resolution is impossible in the specification itself, then we know
that the caller is passing invalid data. Round up on the assumption it's a
rounding error so that playback can proceed.

Issue: #6551
PiperOrigin-RevId: 275226813
2019-10-17 11:52:50 +01:00
krocard
9af8511aef Introduce tunneling checkbox in test app
It makes observing differences without and with tunneling
much faster than recompiling.

PiperOrigin-RevId: 275216567
2019-10-17 11:52:42 +01:00
ibaker
0d5b3c0fa4 Remove HlsMasterPlaylist from null-checking blacklist
PiperOrigin-RevId: 275052534
2019-10-17 11:52:34 +01:00
Oliver Woodman
23f545a0a4 Merge pull request #6528 from julioz:log-param
PiperOrigin-RevId: 275014741
2019-10-16 14:02:21 +01:00
samrobinson
841b3a8bc7 Add AUDIO_BECOMING_NOISY handling to SimpleExoPlayer.
Feature enabled through the SimpleExoPlayer.setHandleAudioBecomingNoisy.

PiperOrigin-RevId: 274988924
2019-10-16 14:02:11 +01:00
ibaker
e63d3b4b61 Add HlsSampleStreamWrapper#assertPreparationComplete
This gives a clear way to ensure all the preparation-related @MonotonicNonNull
fields have been set to something.

PiperOrigin-RevId: 274988280
2019-10-16 14:02:03 +01:00
tonihei
40dbe10b12 Align PlaybackSuppressionReason java doc with method doc.
Same change as done in c49388aca2.

PiperOrigin-RevId: 274894288
2019-10-15 23:10:47 +01:00
tonihei
03e3ceaedb Align PlaybackSuppressionReason java doc with method doc.
Same change as done in c49388aca2.

PiperOrigin-RevId: 274894288
2019-10-15 23:08:45 +01:00
olly
7dede17d97 Make GvrPlayerActivity call its subclass to instantiate a player
It's more explicit and simpler than having the subclass call up into
the activity.

PiperOrigin-RevId: 274881350
2019-10-15 23:08:38 +01:00
olly
a2900992c3 Remove dead code
PiperOrigin-RevId: 274848191
2019-10-15 23:08:30 +01:00
olly
5e538a2a28 Clean up GvrPlayerActivity
PiperOrigin-RevId: 274845045
2019-10-15 23:08:23 +01:00
olly
34c531764e Remove filter for intents that aren't handled
PiperOrigin-RevId: 274834663
2019-10-15 23:08:15 +01:00
tonihei
a95f0643b9 Set isLive flag in CastTimeline based on MediaInfo.
Issue:#2668
PiperOrigin-RevId: 274793644
2019-10-15 23:08:08 +01:00
ibaker
fc95d07a94 Remove HlsChunkSource from null-checking blacklist
PiperOrigin-RevId: 274789337
2019-10-15 23:08:00 +01:00
ibaker
0ba91811d1 Break the inheritance of FullSegmentEncryptionKeyCache
Use composition instead.

This makes the null-handling more explicit & complete (previous implementation
tried to prevent null values, but didn't override all mutation methods
e.g. replace(), putIfAbsent() etc.)

PiperOrigin-RevId: 274778513
2019-10-15 23:07:53 +01:00
kimvde
f133766b40 Improve ffmpeg build instructions
- Simplify the supported formats configuration by moving it to a
  separate variable, therefore avoiding updating the COMMON_OPTIONS
  variable in the ffmpeg build command.
- Move the ffmpeg build command to a shell script.

PiperOrigin-RevId: 274778232
2019-10-15 23:07:45 +01:00
olly
bc75b9904c Fix test coverage failure for G3 exoplayer
Generates a manifest to have Google3InstrumentationTestRunner in order to fix the error in Zapfhahn (service to measure test coverage)

PiperOrigin-RevId: 274754720
2019-10-15 23:07:38 +01:00
kimvde
a10fea30c9 Enable setOutputSurfaceWorkaround for some devices
The corresponding devices are Wiko FEVER l5460 and Huawei Honor 8X.

Issue:#6503
PiperOrigin-RevId: 274753710
2019-10-15 23:07:30 +01:00
ibaker
3eea797069 Rollback of fdfe631850
*** Original commit ***

Remove null-ness of muxedCaptionFormats list

Pre-work for removing HlsMasterPlaylist and HlsPlaylistParser from null-checking
blacklist.

***

PiperOrigin-RevId: 274591502
2019-10-15 23:07:23 +01:00
ibaker
fdfe631850 Remove null-ness of muxedCaptionFormats list
Pre-work for removing HlsMasterPlaylist and HlsPlaylistParser from null-checking
blacklist.

PiperOrigin-RevId: 274585117
2019-10-15 23:07:15 +01:00
bachinger
ce6252151a disable download button for live content in demo app
PiperOrigin-RevId: 274585052
2019-10-15 23:07:07 +01:00
Oliver Woodman
79da5219e5 Fix release notes. Toggle publish to false. 2019-10-14 17:16:28 +01:00
Oliver Woodman
55ff555188 Fix DashManifestParserTest in release branch 2019-10-14 17:14:41 +01:00
olly
a9a1cb7791 Fix diverged root build.gradle files
PiperOrigin-RevId: 274568961
2019-10-14 14:58:15 +01:00
aquilescanta
6457a4ab80 Register cast module
PiperOrigin-RevId: 274568660
2019-10-14 14:58:08 +01:00
olly
c32ad60e0b Fix diverged root build.gradle files
PiperOrigin-RevId: 274568961
2019-10-14 14:48:29 +01:00
aquilescanta
c996391b83 Register cast module
PiperOrigin-RevId: 274568660
2019-10-14 14:48:21 +01:00
ibaker
e670b1d0f6 Remove HlsMediaChunk from null-checking blacklist
PiperOrigin-RevId: 274566133
2019-10-14 14:35:42 +01:00
olly
657b47cd04 Fix broken Javadoc
PiperOrigin-RevId: 274564800
2019-10-14 14:19:52 +01:00
olly
d36abf966e Fix broken Javadoc
PiperOrigin-RevId: 274564800
2019-10-14 14:18:49 +01:00
olly
32b0474d57 Clean up playback suppression
PiperOrigin-RevId: 274561876
2019-10-14 14:11:31 +01:00
olly
0cda57aa5a Bump version to 2.10.6
PiperOrigin-RevId: 274534626
2019-10-14 14:10:28 +01:00
olly
c49388aca2 Clean up playback suppression
PiperOrigin-RevId: 274561876
2019-10-14 13:58:11 +01:00
ibaker
eb677eb4b9 Add a Util.nullSafeArrayAppend and use it in HlsSampleStreamWrapper
I could do this with nullSafeArrayConcat but this saves allocating a throw-away
single-element array.

PiperOrigin-RevId: 274545815
2019-10-14 13:58:04 +01:00
ibaker
498a23e328 Add null-checker annotations to HlsSampleStreamWrapper
PiperOrigin-RevId: 274545728
2019-10-14 13:57:56 +01:00
ibaker
6ebcac3883 Remove DefaultHlsExtractorFactory from null-checking blacklist
PiperOrigin-RevId: 274537528
2019-10-14 13:57:48 +01:00
olly
b71b9f7c58 Bump version to 2.10.6
PiperOrigin-RevId: 274534626
2019-10-14 13:57:41 +01:00
andrewlewis
d52f06e611 Clean up surface on setting renderer
If a surface was previously passed to the player then an output buffer
renderer was set, we would remove surface callbacks but not clear the
surface on renderers that accept MSG_SET_SURFACE.

PiperOrigin-RevId: 274532266
2019-10-14 13:57:33 +01:00
andrewlewis
c02f3dd4ff Handle legacy DASH audio channel configuration
Issue: #6523
PiperOrigin-RevId: 274160232
2019-10-13 12:44:29 +01:00
olly
5a6fdaad72 Don't set a playback suppression reason for permanent audio focus loss
It's documented to be for temporary loss only (i.e. the case where
externally reported playWhenReady is still true)

PiperOrigin-RevId: 274129922
2019-10-13 12:42:52 +01:00
olly
ce01c79e01 Add a javadoc explanation for ProgressiveDownloader that explains that it tries to skip downloading already cached bytes.
download calls through to CacheUtil#cache, which handles skipping already downloaded bytes.

It is useful for callers to know that ProgressiveDownloader has this behavior - otherwise, they might reimplement the logic themselves.

I hope this behavior is something that can be part of the public API :)

PiperOrigin-RevId: 274202995
2019-10-13 12:41:55 +01:00
andrewlewis
1c66010b4a Add MediaFormat on video frame metadata listener
This is useful for apps that want to access HDR metadata that MediaCodec puts
in its output format.

PiperOrigin-RevId: 274169985
2019-10-13 12:41:47 +01:00