olly
9b4a3701d4
Clean up ExoMediaDrm reference counting documentation
...
PiperOrigin-RevId: 280106092
2019-11-15 05:15:24 +00:00
bachinger
69e51505e4
use getPeriodByUid when searching for subsequent period of seek timeline
...
Issue: #6641
PiperOrigin-RevId: 279963739
2019-11-15 05:15:08 +00:00
aquilescanta
abe0330f39
Add a track type argument to DrmSessionManager.acquirePlaceholderSession
...
Issue:#4867
PiperOrigin-RevId: 279928345
2019-11-15 05:15:00 +00:00
aquilescanta
b84a9bed2c
Add a parameter object for LoadErrorHandlingPolicy methods
...
PiperOrigin-RevId: 279928178
2019-11-15 05:14:51 +00:00
ibaker
ddb70d96ad
Require an end timecode in SSA and Subrip subtitles
...
SSA spec allows the lines in any order, so they must all have an end time:
http://moodub.free.fr/video/ass-specs.doc
The Matroska write-up of SubRip assumes the end time is present:
https://matroska.org/technical/specs/subtitles/srt.html
This will massively simplify merging issue:#6595
PiperOrigin-RevId: 279926730
2019-11-15 05:14:43 +00:00
ibaker
b43db3bceb
Clarify SSA and SubRip docs in MatroskaExtractor
...
The handling of times wasn't really clear to me, hopefully this more
exhaustive documentation helps a bit.
Also assert the end timecode is the 'correct' length for the format.
PiperOrigin-RevId: 279922369
2019-11-15 05:14:35 +00:00
kimvde
2faef48302
Add CRC-8 method in Util
...
PiperOrigin-RevId: 279911378
2019-11-15 05:14:27 +00:00
andrewlewis
b477d8b68a
Don't check channels for E-AC3 JOC passthrough
...
PiperOrigin-RevId: 279841132
2019-11-15 05:14:04 +00:00
olly
e49f1f8a61
Rollback of 844c023b65
...
*** Original commit ***
Add CRC-8 method in Util
***
PiperOrigin-RevId: 279733541
2019-11-15 05:13:56 +00:00
kimvde
844c023b65
Add CRC-8 method in Util
...
PiperOrigin-RevId: 279727618
2019-11-15 05:13:48 +00:00
kimvde
13cf2360c8
Compute format maxInputSize in FlacReader
...
Use the maximum frame size as the maximum sample size if provided.
PiperOrigin-RevId: 279722820
2019-11-15 05:13:39 +00:00
andrewlewis
be03c08410
Add test for becoming noisy handling
...
To trigger receiving the broadcast it's necessary to idle() the shadow
main looper, which has to be done from the test thread. Therefore this
change removes the send broadcast action and instead sends the broadcast
from the test thread.
PiperOrigin-RevId: 279660935
2019-11-15 05:13:23 +00:00
olly
266c13913a
Fix spurious regex simpliciation
...
Android Studio claims this escaping isn't required, but now it's removed this code crashes due to a malformed regex.
PiperOrigin-RevId: 279501823
2019-11-15 05:13:14 +00:00
tonihei
71f7ab1c57
Workaround for pre-M platform bug when instantiating CaptioningManager.
...
PiperOrigin-RevId: 279286802
2019-11-15 05:13:06 +00:00
olly
a9ef9c46c8
Bump version to 2.11.0
...
Note: Release notes are not final.
PiperOrigin-RevId: 279125474
2019-11-15 05:12:58 +00:00
kimvde
d1da3d925b
Fix FLAC bit rate computation
...
PiperOrigin-RevId: 279088193
2019-11-15 05:12:34 +00:00
olly
6f9baffa0c
Suppress warnings emitted by Checker Framework version 2.11.1
...
More information:
https://docs.google.com/document/d/16tpK6aXqN68PvTyvt4siM-m7f0NXi_8xEeitLDzr8xY/edit?usp=sharing
Tested:
tap_presubmit: http://test/OCL:278683723:BASE:278762656:1573036487314:924e1b0b
Some tests failed; test failures are believed to be unrelated to this CL
PiperOrigin-RevId: 279034739
2019-11-15 05:12:01 +00:00
bachinger
5c2806ecca
Playlist API: add Playlist and PlaylistTest
...
PiperOrigin-RevId: 278875587
2019-11-15 05:11:53 +00:00
bachinger
cd2c1f2f24
Playlist API: Add setMediaItem() and prepare()
...
PiperOrigin-RevId: 278867153
2019-11-15 05:11:45 +00:00
olly
4570cd37c5
Testutils: Add missing Javadoc + Misc cleanup
...
PiperOrigin-RevId: 278835106
2019-11-15 05:11:36 +00:00
olly
0a27d7b482
Don't use DRM prior to API level 18
...
PiperOrigin-RevId: 278660557
2019-11-15 05:11:26 +00:00
Stanislav Ionascu
6d9c707255
Detect Dolby Vision profile 7
...
In official documentation dvProfile 7 uses dvhe as the codec type.
2019-11-14 08:30:30 +01:00
olly
87003b30fc
Bump version to 2.10.7
...
PiperOrigin-RevId: 278658259
2019-11-05 18:36:21 +00:00
aquilescanta
efc7f55616
Make DefaultDrmSession package private
...
PiperOrigin-RevId: 278639779
2019-11-05 18:36:04 +00:00
christosts
7cc3943b4f
Experimental API to skip MediaCodec.stop()
...
Add experimental API on MediaCodecRenderer to skip calling
MediaCodec.stop() before the call to MediaCodec.release().
PiperOrigin-RevId: 278621032
2019-11-05 16:18:46 +00:00
olly
9842ea7f22
Move classes that don't belong in testutils out of testutils
...
PiperOrigin-RevId: 278401000
2019-11-05 16:18:24 +00:00
olly
d587def451
Fix Javadoc broken due to lack of import
...
PiperOrigin-RevId: 278399475
2019-11-05 16:18:16 +00:00
kimvde
165ff55502
Fix inverted arguments in FlacReader format creation
...
PiperOrigin-RevId: 278332587
2019-11-05 16:18:01 +00:00
kimvde
bd61b63ebc
Remove unnecessary exceptions in method signature
...
PiperOrigin-RevId: 278327151
2019-11-05 16:17:46 +00:00
olly
880b879e8c
Suppress warnings emitted by Checker Framework version 2.11.1
...
More information:
https://docs.google.com/document/d/16tpK6aXqN68PvTyvt4siM-m7f0NXi_8xEeitLDzr8xY/edit?usp=sharing
Tested:
TAP train for global presubmit queue
http://test/OCL:278152710:BASE:278144052:1572760370662:22459c12
PiperOrigin-RevId: 278241536
2019-11-05 16:17:39 +00:00
olly
7e070683a3
Expose getMetrics() in ExoV1 and ExoV2 FrameworkMediaDrm classes.
...
PiperOrigin-RevId: 278054214
2019-11-05 16:17:31 +00:00
ibaker
922991da88
Add @NonNullApi to text packages with no blacklisted files
...
PiperOrigin-RevId: 277969385
2019-11-05 16:17:24 +00:00
kimvde
5d46d4f74f
Add parameter names to Format creation
...
PiperOrigin-RevId: 277963928
2019-11-05 16:17:16 +00:00
olly
8dcd1e53bc
Remove or suppress warnings where we use our own deprecated APIs
...
PiperOrigin-RevId: 277928790
2019-11-05 16:17:01 +00:00
ibaker
2106e5f328
Annotate webvtt package with @NonNullApi
...
PiperOrigin-RevId: 277916734
2019-11-05 16:16:30 +00:00
ibaker
616f4774e1
Remove WebvttCueParser from null-checking blacklist
...
PiperOrigin-RevId: 277916639
2019-11-05 16:16:22 +00:00
ibaker
129efa2ebf
Remove WebvttCssStyle from null-checking blacklist
...
PiperOrigin-RevId: 277916508
2019-11-05 16:16:15 +00:00
ibaker
2139973e2c
Remove WebvttParserUtil from null-checking blacklist
...
PiperOrigin-RevId: 277916279
2019-11-05 16:16:07 +00:00
ibaker
5407c31726
Remove WebvttSubtitle from null-checking blacklist
...
PiperOrigin-RevId: 277916113
2019-11-05 16:16:00 +00:00
tonihei
5b80b4b523
Update initial bitrate estimates.
...
PiperOrigin-RevId: 277911191
2019-11-05 16:15:52 +00:00
ibaker
b972fd1f27
Remove WebvttCue from null-checking blacklist
...
PiperOrigin-RevId: 277910909
2019-11-05 16:15:45 +00:00
kimvde
ab2bfcc1b9
Fix typo in WavHeader class
...
PiperOrigin-RevId: 277910360
2019-11-05 16:15:37 +00:00
andrewlewis
656556b828
Clean up naming for GLSurfaceViews
...
PiperOrigin-RevId: 277896757
2019-11-05 16:15:29 +00:00
kimvde
242a0053c9
Add method to read more than 32 bits in ParsableBitArray
...
PiperOrigin-RevId: 277766372
2019-11-05 16:15:22 +00:00
kimvde
32dcd80b4a
Improve ParsableBitArray unit tests
...
PiperOrigin-RevId: 277744735
2019-11-05 16:15:14 +00:00
olly
f55083ab48
Minor DRM documentation tweaks
...
PiperOrigin-RevId: 277729887
2019-11-05 16:14:59 +00:00
olly
d596fcd9ba
Remove unnecessary warning suppressions
...
PiperOrigin-RevId: 277709114
2019-11-05 16:14:39 +00:00
ibaker
a7b242998a
Fix subtitle parsing regex suggestions
...
Suggested by Android Studio's Inspect Code
SO seems to think there's a performance difference for the | change:
https://stackoverflow.com/questions/22132450/why-is-a-character-class-faster-than-alternation
PiperOrigin-RevId: 277707341
2019-11-05 16:14:30 +00:00
tonihei
f960f8a575
Forward suppression state to new playback stats sessions.
...
The value is stateful and new sessions need to be informed of the current state
PiperOrigin-RevId: 277701955
2019-11-05 16:14:11 +00:00
bachinger
01a4cf98d5
add default methods isSingleWindow and getInitialTimeline to MediaSource interface
...
PiperOrigin-RevId: 277695826
2019-11-05 16:14:03 +00:00
aquilescanta
df251ad1be
Add tests for SampleQueue isReady
...
PiperOrigin-RevId: 277691935
2019-11-05 16:13:56 +00:00
aquilescanta
2d530478ee
Make FormatHolder be entirely populated by SampleMetadataQueue
...
This should not introduce any functional changes.
PiperOrigin-RevId: 277691550
2019-11-05 16:13:48 +00:00
ibaker
f5377d9b11
Encode WebVTT size computation in WebvttCue.java
...
Relevant part of the spec:
https://www.w3.org/TR/webvtt1/#processing-cue-settings
PiperOrigin-RevId: 277523694
2019-11-05 16:13:25 +00:00
ibaker
d29d452617
Switch (Mp4)WebvttDecoderTest to use Truth's Expect
...
This means multiple failures are all logged, instead of the test
stopping when the first assertion fails. Makes tests like this with
lots of independent assertions much easier to work with.
I limited the expect to a single assertCues() call, otherwise
the error message gets very long and is hard to read, but I
still think this is an improvement.
PiperOrigin-RevId: 277523300
2019-11-05 16:13:18 +00:00
ibaker
b3f94e3768
Update WebvttCue to use defaults from the spec
...
Cue's UNSET and null values should be used when the source data
doesn't specify *and* the spec doesn't provide a clear default.
In the WebVTT case, the defaults are clear, so we use them
explicitly.
PiperOrigin-RevId: 277522899
2019-11-05 16:13:10 +00:00
aquilescanta
18e1c3eb1c
Rename the option allowPlaceholderSessions to preferSecureDecoders
...
PiperOrigin-RevId: 277477784
2019-11-05 16:12:46 +00:00
andrewlewis
aeefb79a86
Fix MediaCodecUtil nullability annotations
...
PiperOrigin-RevId: 277462799
2019-11-05 16:12:38 +00:00
andrewlewis
d3933e5cac
Recreate Opus decoder for stream change
...
The framework opus decoder discards some samples after a call to
flush(). Because we flush a decoder that is being retained across an
input format change, this means that the start of audio gets truncated
when transitioning to a new opus stream. See also
https://android.googlesource.com/platform/frameworks/av/+/refs/heads/android10-release/media/libstagefright/codecs/opus/dec/SoftOpus.cpp .
Avoid this by recreating opus decoders instead of flushing them. It
seems fine to do this for all opus decoders as reinitialization should
be cheap, OEM-provided implementations may also discard samples and
playback shouldn't be interrupted on reinitialization due to the
downstream AudioTrack buffer.
PiperOrigin-RevId: 277458759
2019-10-30 08:52:05 +00:00
aquilescanta
8138424d92
Replace usages of SampleQueue.hasNextSample with isReady
...
PiperOrigin-RevId: 277259448
2019-10-30 08:51:42 +00:00
aquilescanta
81b8396b3e
Move peek result constants into SampleMetadataQueue
...
PiperOrigin-RevId: 277253308
2019-10-30 08:51:27 +00:00
aquilescanta
9eb93a35c0
Fix a bunch of typos
...
PiperOrigin-RevId: 277056574
2019-10-30 08:50:57 +00:00
ibaker
7277df3547
Remove @NonNull where it's implied by @NonNullApi
...
Also remove it from all tests, these aren't covered by the null-checker
Covered by the following package-info.java files:
- j/c/g/a/exoplayer2/ext/mediasession/package-info.java
- j/c/g/a/exoplayer2/package-info.java
- j/c/g/a/exoplayer2/offline/package-info.java
- j/c/g/a/exoplayer2/video/package-info.java
- j/c/g/a/exoplayer2/ui/package-info.java
PiperOrigin-RevId: 277038916
2019-10-30 08:50:42 +00:00
aquilescanta
b68a698806
Make SampleQueue populate FormatHolder.drmSession
...
Also add unit tests for SampleQueue read for samples with
DRM requirements.
PiperOrigin-RevId: 277037826
2019-10-30 08:50:34 +00:00
samrobinson
e025371429
Fix memory leak and calling listener when disabled in AudioBecomingNoisyManager.
...
PiperOrigin-RevId: 277030401
2019-10-30 08:50:26 +00:00
samrobinson
ff82a13279
Add player release check to enabling audio focus & audio becoming noisy handling.
...
PiperOrigin-RevId: 276679790
2019-10-30 08:50:18 +00:00
ibaker
719a704dee
Rollback of 665627c384
...
*** Original commit ***
Rollback of bf01ff0f60
*** Original commit ***
Use Float.NaN for Cue#DIMEN_UNSET
Float.MIN_VALUE is very close to zero:
"A constant holding the smallest positive nonzero value of type float"
https://developer.android.com/reference/java/lang/Float.html#MIN_VALUE
Float.NaN more clearly conveys this is an invalid number,
and will also more clearly carry over if we do maths on it a...
***
PiperOrigin-RevId: 276674142
2019-10-30 08:50:10 +00:00
samrobinson
ea77defd38
Clarify naming & comments for distinction between Format and MediaFormat.
...
PiperOrigin-RevId: 276673410
2019-10-30 08:50:03 +00:00
aquilescanta
620b9110bf
Document error handling in the Extractor interface
...
PiperOrigin-RevId: 276660235
2019-10-30 08:49:47 +00:00
samrobinson
bcf46431dd
Verify application thread when setting handle audio becoming noisy.
...
PiperOrigin-RevId: 276491102
2019-10-30 08:49:32 +00:00
ibaker
d898122ec5
Mark WebvttCue constructors private
...
Everyone should use the Builder.
PiperOrigin-RevId: 276468354
2019-10-30 08:49:24 +00:00
samrobinson
b99203dada
Post AudioFocusManager.onAudioFocusChange events to eventHandler.
...
PiperOrigin-RevId: 276452333
2019-10-30 08:49:09 +00:00
ibaker
3a84b787b1
Add missing IntDef annotations in WebvttDecoderTest
...
Also change the type of endTime to long to match startTime
PiperOrigin-RevId: 276448131
2019-10-30 08:49:01 +00:00
tonihei
881fcf829a
Add some missing @Nullable to Format
...
PiperOrigin-RevId: 276366002
2019-10-30 08:48:53 +00:00
olly
665627c384
Rollback of bf01ff0f60
...
*** Original commit ***
Use Float.NaN for Cue#DIMEN_UNSET
Float.MIN_VALUE is very close to zero:
"A constant holding the smallest positive nonzero value of type float"
https://developer.android.com/reference/java/lang/Float.html#MIN_VALUE
Float.NaN more clearly conveys this is an invalid number,
and will also more clearly carry over if we do maths on it accidentally.
***
PiperOrigin-RevId: 276315786
2019-10-30 08:48:45 +00:00
ibaker
bf01ff0f60
Use Float.NaN for Cue#DIMEN_UNSET
...
Float.MIN_VALUE is very close to zero:
"A constant holding the smallest positive nonzero value of type float"
https://developer.android.com/reference/java/lang/Float.html#MIN_VALUE
Float.NaN more clearly conveys this is an invalid number,
and will also more clearly carry over if we do maths on it accidentally.
PiperOrigin-RevId: 276277784
2019-10-30 08:48:38 +00:00
samrobinson
2cf98ecffe
Posts AudioBecomingNoisyManager listener events to eventHandler.
...
PiperOrigin-RevId: 276084113
2019-10-30 08:48:30 +00:00
ibaker
dbbbcab6cb
Add assertWithMessage calls to WebvttDecoderTest
...
With lots of int comparisons close together, this makes the error
messages much clearer and saves having to manually match up line
numbers.
Also make every @Test just throw Exception
PiperOrigin-RevId: 276079806
2019-10-30 08:48:23 +00:00
samrobinson
82d3e1e8ab
Rename format to mediaFormat for clarity.
...
PiperOrigin-RevId: 276036585
2019-10-30 08:48:15 +00:00
ibaker
62e3ac3e9e
Update parseStbl to handle edit lists & gapless info
...
Without this, a subtitle track empty edit list used to offset the start of
subtitles is ignored.
Also the current code seems to depend on the order in which
we parse the tracks (audio first means we have gapless info when we parse
video track, while video first we wouldn't).
It's not clear why we can't handle both edit lists & gapless info
PiperOrigin-RevId: 276029744
2019-10-30 08:48:00 +00:00
andrewlewis
51e4f7b260
Fix supplemental data handling with dropped frames
...
PiperOrigin-RevId: 276024935
2019-10-30 08:47:52 +00:00
olly
dbfc101e04
Remove no-op enabling of multi-session
...
PiperOrigin-RevId: 275856697
2019-10-30 08:47:21 +00:00
bachinger
3bb97f4bbf
deliver player messages only once when at start position
...
ISSUE: #6550
PiperOrigin-RevId: 275842161
2019-10-30 08:47:13 +00:00
bachinger
e6e2dcc58d
Rollback of 36f8bd78f7
...
*** Original commit ***
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/11 ...
***
PiperOrigin-RevId: 275813737
2019-10-30 08:46:42 +00:00
ibaker
93f2dd8deb
Switch test usages of ConditionVariable#block(timeout) to CountDownLatch
...
ConditionVariable.block(timeout) doesn't work in Robolectric, because it
relies on the system clock which doesn't advance.
PiperOrigin-RevId: 275798281
2019-10-30 08:46:33 +00:00
samrobinson
694ccf424b
Added an ICY header workaround for unseekable MP3 streams.
...
Issue:#6537
PiperOrigin-RevId: 275477266
2019-10-18 17:43:21 +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
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
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
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
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
ibaker
fc95d07a94
Remove HlsChunkSource from null-checking blacklist
...
PiperOrigin-RevId: 274789337
2019-10-15 23:08:00 +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
olly
d36abf966e
Fix broken Javadoc
...
PiperOrigin-RevId: 274564800
2019-10-14 14:18:49 +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
olly
b71b9f7c58
Bump version to 2.10.6
...
PiperOrigin-RevId: 274534626
2019-10-14 13:57:41 +01:00