olly
ab8816214e
Simplify playback of clear samples without keys
...
- Move property to DrmSession; it feels like a more natural place
for it to go (and provides greater flexibility).
- Change flags to a boolean.
PiperOrigin-RevId: 281758729
2019-11-22 15:10:02 +00:00
kimvde
b18650fdcf
Expose metadata in FLAC extractor
...
PiperOrigin-RevId: 281538423
2019-11-22 15:09:17 +00:00
tonihei
f937fe9e2a
Replace all database.beginTransaction with beginTransactionNonExclusive
...
This ensures other database readers can continue reading while we do our
write transaction.
PiperOrigin-RevId: 281520758
2019-11-22 15:09:01 +00:00
olly
d8dcd2930c
Remove stray word in logging
...
PiperOrigin-RevId: 281510703
2019-11-22 15:08:53 +00:00
tonihei
809234bc4f
Mark all methods accessing SQLite databases as potentially blocking.
...
They are all marked with a JavaDoc comment and the @WorkerThread annotation
which is useful if apps are using threading annotations. All other public
methods in the same classes are marked with @AnyThread to avoid the impression
we forgot to annotate them.
PiperOrigin-RevId: 281490301
2019-11-22 15:08:46 +00:00
christosts
ca849a0679
Fix incorrent javadoc syntax
...
PiperOrigin-RevId: 281480582
2019-11-22 15:08:38 +00:00
christosts
f921d0d3e5
Ability to set timeout on release() and setSurface()
...
Add experimental APIs to set a timeout Player#release() and
PlayerMessage#blockUntilDeliver().
PiperOrigin-RevId: 281479146
2019-11-22 15:08:31 +00:00
aquilescanta
f6afbe6cb0
Make MediaLoadData a top level class
...
In order to reuse it in LoadErrorHandlingPolicy.
PiperOrigin-RevId: 281333287
2019-11-22 15:08:16 +00:00
ibaker
c8e5144494
Add testutils as test dep of library-core module
...
The current workaround seems to cause compilation errors inside the
testutils module in Android Studio. This seems to fix them.
This doesn't introduce a circular dependency because it's only
the tests in library-core depending on testutils.
PiperOrigin-RevId: 281318192
2019-11-22 15:08:08 +00:00
samrobinson
e26a61b903
Improve Format propagation within the MediaCodecRenderer.
...
For example, fix handling of pixel aspect ratio changes in
playlists where video resolution does not change.
Issue:#6646
PiperOrigin-RevId: 281276023
2019-11-22 15:08:00 +00:00
andrewlewis
dbd7e055e5
Reconfigure audio sink when PCM encoding changes
...
Note:
- Fixing this uncovers another bug in how audio processor draining
works, so the test playlist still doesn't play correctly after this
change.
- Once we reconfigure the audio sink based on the ExoPlayer Format
rather than the codec MediaFormat in a later change, this change can
be reverted.
Issue: #6601
PiperOrigin-RevId: 281264149
2019-11-22 15:07:52 +00:00
kimvde
774ccafa93
Remove TODO around optimizing sample data outputs in FlacExtractor
...
Preliminary measurement showed that the results were similar to the non-optimized
version.
PiperOrigin-RevId: 281255476
2019-11-22 15:07:44 +00:00
aquilescanta
95d0921114
Make LoadEventInfo a top level class
...
In order to reuse it in LoadErrorHandlingPolicy.
PiperOrigin-RevId: 281087397
2019-11-18 17:55:51 +00:00
aquilescanta
699dd3d27c
Deprecate public renderer constructors that take a DrmSessionManager
...
PiperOrigin-RevId: 281086336
2019-11-18 17:55:43 +00:00
kimvde
9b2917a9ae
Add Java FLAC extractor
...
Seeking, live streams support and exposure of vorbis and ID3 data
are not part of this commit.
Issue: #6406
PiperOrigin-RevId: 281083332
2019-11-18 17:55:28 +00:00
olly
0db1fc67fa
Cleanup key request parameters
...
- Make NonNull, which is already the case when using the manager builder.
- Better document PLAYREADY_CUSTOM_DATA_KEY, now that newPlayReadyInstance
is no more.
PiperOrigin-RevId: 281079288
2019-11-18 17:55:20 +00:00
aquilescanta
d984a8cdd3
Allow user to pick which track types to create placeholder sessions for
...
Issue:#4867
PiperOrigin-RevId: 281064793
2019-11-18 17:55:12 +00:00
olly
1ef345192c
Clean up non-trivial track selection deprecation
...
PiperOrigin-RevId: 281051893
2019-11-18 17:55:04 +00:00
andrewlewis
a5e14b4dae
Fix byte order for HDR10+ static metadata
...
The implementation of writing HDR10+ static metadata assumed that the
application would use default (big endian) byte order for this metadata but
MediaCodec expects the order to match the specification CTA-861.3.
PiperOrigin-RevId: 281050806
2019-11-18 17:54:56 +00:00
olly
1629a5afd3
Make some listener methods default
...
PiperOrigin-RevId: 281050034
2019-11-18 17:54:48 +00:00
olly
3e17080c02
Remove SimpleCache hacks that are no longer used
...
PiperOrigin-RevId: 281049383
2019-11-18 17:54:40 +00:00
olly
7f2827077c
Don't check rotated resolution for HEVC on LG Q7
...
Issue: #6612
PiperOrigin-RevId: 281048324
2019-11-18 17:54:32 +00:00
aquilescanta
82b218607f
Add Util.linearSearch
...
PiperOrigin-RevId: 281037183
2019-11-18 17:54:15 +00:00
ibaker
79b7af656b
Rollback of <unknown commit>
...
*** Original commit ***
Disable test coverage again
https://issuetracker.google.com/issues/37019591 causes local variables can't be found while debugging.
***
PiperOrigin-RevId: 280666758
2019-11-17 00:33:26 +00:00
olly
c0d3930816
Parse channel count and sample rate from ALAC initialization data
...
Also remove the "do we really need to do this" comment for AAC.
Parsing from codec specific data is likely to be more robust, so
I think we should continue to do it for formats where we've seen
this problem.
Issue: #6648
PiperOrigin-RevId: 280575466
2019-11-15 05:16:39 +00:00
Oliver Woodman
c613e502aa
Merge pull request #6650 from stanionascu:dev-v2-dv
...
PiperOrigin-RevId: 280573887
2019-11-15 05:16:29 +00:00
krocard
5579cc89c6
Propagate end of stream received from OnFrameRenderedListener
...
Previously the renderer EOS (aka last frame rendered), was reported as soon
as the last encoded frame was queued in the codec renderer.
This leaded to EOS reported too early.
PiperOrigin-RevId: 280456277
2019-11-15 05:16:19 +00:00
tonihei
c8e7ecd367
Merge consecutive segments for downloading.
...
This speeds up downloads where segments have the same URL with different
byte ranges. We limit the merged segments to 20 seconds to ensure the download
progress of demuxed streams is roughly in line with the playable media duration.
Issue:#5978
PiperOrigin-RevId: 280410761
2019-11-15 05:16:11 +00:00
aquilescanta
51711a0c97
Fix MediaDrm leaks in OfflineLicenseHelper
...
PiperOrigin-RevId: 280176216
2019-11-15 05:16:03 +00:00
ibaker
65b49a49f7
Fix parameter name mismatch in Playlist
...
PiperOrigin-RevId: 280167223
2019-11-15 05:15:56 +00:00
olly
0ff79c0e02
Support switching between Surface and VideoDecoderOutputBufferRenderer
...
Clear state for one mode when entering the other in both SimpleExoPlayer
and SimpleDecoderVideoRenderer. The latter is redundant for the case of
renderers that are used inside SimpleExoPlayer, but seems nice to have.
- Entering Surface mode means receiving a non-null Surface, SurfaceHolder
or TextureView in SimpleExoPlayer, or a non-null Surface in
SimpleDecoderVideoRenderer.
- Entering VideoDecoderOutputBufferRenderer means receiving a non-null
VideoDecoderOutputBufferRenderer in SimpleExoPlayer and
SimpleDecoderVideoRenderer.
PiperOrigin-RevId: 280155151
2019-11-15 05:15:48 +00:00
olly
bee6294813
Add clear methods for VideoDecoderOutputBufferRenderer
...
Also add some missing Nullable annotations.
PiperOrigin-RevId: 280150512
2019-11-15 05:15:40 +00:00
olly
7ca77c6002
Make DrmSession acquire/release consistent with ExoMediaDrm
...
This aligns the method naming and Javadoc. The only remaining
inconsistency I can see is that the initial reference count for
DrmSession is 0 rather than 1. Unfortunately I think it's not
trivial to get these aligned, because DefaultDrmSessionManager
relies on being able to do something between instantiation and
the DrmSession starting to open the session. In practice this
doesn't really matter, since DrmSessions will be obtained via the
manager, which does increment thee reference count to 1 to be
consistent with how ExoMediaDrm acquisition works.
PiperOrigin-RevId: 280136574
2019-11-15 05:15:32 +00:00
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
olly
4fd881a551
Suppress warnings emitted by Checker Framework version 3.0.0
...
More information:
https://docs.google.com/document/d/16tpK6aXqN68PvTyvt4siM-m7f0NXi_8xEeitLDzr8xY/edit?usp=sharing
Tested:
TAP --sample ran all affected tests and none failed
http://test/OCL:279845168:BASE:279870402:1573537714395:80ca701c
PiperOrigin-RevId: 279891832
2019-11-15 05:14:12 +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
0351177611
Handle new signaling for E-AC3 JOC in DASH
...
Issue: #6636
PiperOrigin-RevId: 279666771
2019-11-15 05:13:31 +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
ibaker
6286491621
Remove SubtitlePainter from null-checking blacklist
...
PiperOrigin-RevId: 279107241
2019-11-15 05:12:50 +00:00
kimvde
d1da3d925b
Fix FLAC bit rate computation
...
PiperOrigin-RevId: 279088193
2019-11-15 05:12:34 +00:00
olly
355ed11a3c
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 --sample ran all affected tests and none failed
http://test/OCL:278915274:BASE:278884711:1573074344615:a6701677
PiperOrigin-RevId: 279080514
2019-11-15 05:12:17 +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
kimvde
c8170e18d0
Update AndroidX Test versions to latest
...
Split the version of the sublibraries because their latest version
number is different. See
https://developer.android.com/jetpack/androidx/releases/test#1.2.0 .
PiperOrigin-RevId: 278585090
2019-11-05 16:18:38 +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
olly
5968c8345b
Remove auto-value dependency
...
PiperOrigin-RevId: 278398045
2019-11-05 16:18:09 +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
olly
c5c50078d7
Reset MediaSession shuffle/repeat modes if player is null
...
- This is for consistency with PlayerControlView.
- Also update PlayerNotificationManager notification if shuffle
mode changes. This is for consistency with what happens when
the repeat mode changes. By default the notification will be
unchanged, but custom implementations can extend and then
override createNotification, and given these modes change
infrequently it feels like we can just do this. The alternative
for achieving consistency would be to remove handling of repeat
mode changes.
Issue: #6582
PiperOrigin-RevId: 277925094
2019-11-05 16:16:45 +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
ibaker
f554dc4ea4
Increase 2 timeouts to reduce test flakiness
...
PiperOrigin-RevId: 277710160
2019-11-05 16:14:51 +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
andrewlewis
fbea71b0fe
Fix detection of Dolby Atmos in HLS
...
E-AC3 with JOC is signaled using the CHANNELS attribute for HLS:
https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specification_for_apple_devices/hls_authoring_specification_for_apple_devices_appendices
PiperOrigin-RevId: 277680300
2019-11-05 16:13:41 +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
tonihei
0c63362258
Add @Documented and JavaDoc to HlsMetadataType.
...
PiperOrigin-RevId: 277519718
2019-11-05 16:13:02 +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