7278 Commits

Author SHA1 Message Date
olly
d12c7235f9 Bump targetSdkVersion to 29 for demo apps only
PiperOrigin-RevId: 283324612
2019-12-04 09:58:47 +00:00
andrewlewis
9b28e53238 Remove row VP9 multi-threading option
PiperOrigin-RevId: 283319944
2019-12-04 09:58:40 +00:00
olly
f14f0ce8ee Remove LibvpxVideoRenderer from nullness blacklist
PiperOrigin-RevId: 283310946
2019-12-04 09:58:33 +00:00
christosts
aceba835cc Enable MediaCodec asynchronous mode
Enable using MediaCodec in async mode. Expose experimental
API to enable/disable the feature.

PiperOrigin-RevId: 283309798
2019-12-04 09:58:27 +00:00
olly
b68d19bceb Add layer of indirection for drawables
This allows easy overriding of the resources by app developers

Issue: #6709
PiperOrigin-RevId: 283306121
2019-12-04 09:58:20 +00:00
olly
3065d51310 Provide instructions for building extensions using Windows PowerShell
PiperOrigin-RevId: 283296427
2019-12-04 09:58:13 +00:00
andrewlewis
a0736cfbf5 Remove AdsManager listeners on release
Issue: #6687
PiperOrigin-RevId: 283023548
2019-12-04 09:58:07 +00:00
olly
1536a2ceea Rollback of e26a61b903
*** Original commit ***

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: 282903626
2019-12-04 09:58:00 +00:00
olly
69a2cb862f Fix release notes
PiperOrigin-RevId: 282837404
2019-11-27 22:47:00 +00:00
olly
7a2575c3dd Fix release notes
PiperOrigin-RevId: 282836739
2019-11-27 22:46:52 +00:00
andrewlewis
a81149d962 Fix audio processor draining for reconfiguration
When transitioning to a new stream in a different format, the audio
processors are reconfigured. After this, they are drained and then
flushed so that they are ready to handle data in updated formats for the
new stream.

Before this change, some audio processors made the assumption that after
reconfiguration no more input would be queued in their old input format,
but this assumption is not correct: during draining more input may be
queued. Fix this behavior so that the new configuration is not referred
to while draining and only becomes active once flushed.

Issue: #6601
PiperOrigin-RevId: 282515359
2019-11-27 22:29:07 +00:00
andrewlewis
4799993d3b Remove redundant flush() calls from AudioProcessors
flush() is guaranteed to be called in all these cases anyway.

Also clarify documentation for AudioProcessor-specific methods that can
change the 'active' flag.

Issue: #6601
PiperOrigin-RevId: 282515255
2019-11-27 22:28:59 +00:00
andrewlewis
10f142b3ff Add AudioProcessor.AudioFormat
Issue: #6601
PiperOrigin-RevId: 282515179
2019-11-27 22:28:51 +00:00
andrewlewis
b7000e64e9 Always drain/flush AudioProcessors after configuration
This simplifies the contract of configure and is in preparation for
fixing a bug where more input can't be queued when draining audio
processors for a configuration change.

Issue: #6601
PiperOrigin-RevId: 282514367
2019-11-27 22:28:43 +00:00
olly
64569a3e5a Fix and clean up 2.11.0 release notes
PiperOrigin-RevId: 282227866
2019-11-24 16:02:26 +00:00
olly
f630ed1ab5 Fix incorrect Javadoc
PiperOrigin-RevId: 281976465
2019-11-22 16:58:42 +00:00
andrewlewis
abe3c8ce1d Fix check for E-AC3 JOC in DASH
Issue: #6636
PiperOrigin-RevId: 281972403
2019-11-22 16:58:33 +00:00
olly
66c206c71a Make placeholder sessions report their true state
Note that the renderer changes will all disappear when we remove
legacy injection of DrmSessionManager into renderers.

PiperOrigin-RevId: 281952601
2019-11-22 15:10:32 +00:00
ibaker
35237e658f Add SSA test file to the demo app
I wrote this myself

PiperOrigin-RevId: 281942685
2019-11-22 15:10:24 +00:00
olly
f3185d077f Improve WakeLock/AudioBecomingNoisy Javadoc
PiperOrigin-RevId: 281764207
2019-11-22 15:10:16 +00:00
olly
7c24ba0934 Simplify checking whether a sample can be read
PiperOrigin-RevId: 281763672
2019-11-22 15:10:09 +00:00
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
a7d962bf27 Downgrade targetSdkVersion back to 28
- The upgrade to version 29 made Robolectric version 4.3 fail.
- Upgrading Robolectric to 4.3.1 requires Java 9, which requires manual
  configuration in Android Studio.

PiperOrigin-RevId: 281753915
2019-11-22 15:09:54 +00:00
kimvde
922c0af152 Rollback of ca5b094916
*** Original commit ***

Upgrade Robolectric version

This fixes the issue reported in
https://github.com/robolectric/robolectric/issues/5207.

***

PiperOrigin-RevId: 281747261
2019-11-22 15:09:47 +00:00
andrewlewis
731b002e13 Add AV1 to supported formats
PiperOrigin-RevId: 281724630
2019-11-22 15:09:39 +00:00
kimvde
ca5b094916 Upgrade Robolectric version
This fixes the issue reported in
https://github.com/robolectric/robolectric/issues/5207.

PiperOrigin-RevId: 281720030
2019-11-22 15:09:32 +00:00
olly
5abb4ff8c1 Fix broken Enc/Clear playlist in media.exolist.json
- DRM properties need to be on individual playlist items.

PiperOrigin-RevId: 281718153
2019-11-22 15:09:24 +00:00
kimvde
b18650fdcf Expose metadata in FLAC extractor
PiperOrigin-RevId: 281538423
2019-11-22 15:09:17 +00:00
olly
f6853e4751 Bump targetSdkVersion to 29
- Enabling legacy storage for our demo app so that playing
  slideloaded media is still easy.
- Apps are still free to specify a lower targetSdkVersion

PiperOrigin-RevId: 281537041
2019-11-22 15:09:09 +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
olly
3515a5112d Release notes for 2.10.8
PiperOrigin-RevId: 281084720
2019-11-18 17:55:36 +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