9768 Commits

Author SHA1 Message Date
ibaker
f0ae8afd80 Separate the dump files from the test assets
This allows us to more easily create different dumps derived from the
same assets.

This moves media/source files from `assets/` to `assets/media/` and
dump files from `assets/` to `assets/extractordumps/` and
`assets/audiosinkdumps/` as appropriate. I intend to add
`assets/playbackdumps/` in a future CL.

PiperOrigin-RevId: 326986283
2020-08-17 16:13:53 +01:00
insun
333ccedf80 Improve error message and correct reference to proper layout
PiperOrigin-RevId: 326944292
2020-08-17 16:13:43 +01:00
olly
49bf83a169 Media2: Remove MediaSourceFactory + DataSourceCallback
- Applications should generally use DefaultMediaSourceFactory,
  or their own custom implementation if they need one. Having the
  media2 extension implement its own version directly doesn't seem
  that useful.
- Remove support for CallbackMediaItem. This type of MediaItem
  doesn't go cross-process, and it seems like there would never
  be a use case where an app would need to generate one locally.
  If an app needs to provide data from a custom source, it should
  hook into ExoPlayer's way of doing this (i.e., use a UriMediaItem
  with a custom scheme, and inject a custom DataSource that can
  handle this scheme).

PiperOrigin-RevId: 326914465
2020-08-17 16:13:34 +01:00
olly
42cf213aea Media2 tests: Simplify code
- Use ExoPlayer DataSource instrumentation to intercept reads
- Use ExoPlayer Resource URIs
- Use ExoPlayer DefaultMediaSourceFactory

PiperOrigin-RevId: 326912324
2020-08-17 16:13:25 +01:00
olly
94b66f4c24 Specify which function is triggering a TimeoutException
PiperOrigin-RevId: 326666629
2020-08-17 16:13:16 +01:00
andrewlewis
977f0d1ed0 Scale AudioTrack buffer size for AudioTrack speed adjustment
PiperOrigin-RevId: 326642908
2020-08-17 16:13:07 +01:00
samrobinson
eabc486b58 Keep AudioTrack on seek - experimental.
PiperOrigin-RevId: 326622573
2020-08-17 16:12:58 +01:00
jaewan
c2ac33af1b Clean up PlayerWrapper exception log
PlayerWrapper throws Exception if getters is called in the
STATE_IDLE. In that case, log may print 50+ lines of stack
traces. It's verbose and can be considered as serious issue.

This CL include folloing changes
  - Change to use ExoPlayer's log class
  - Adjust log level, because it would be consumed by caller
  - Leave log when the debug flag is turned on.

Another CL will remove exceptions between PlayerWrapper and
and SessionPlayerConnector, not to use Exception for ordinary
control flow as the Effective Java suggests.

PiperOrigin-RevId: 326614559
2020-08-17 16:12:48 +01:00
olly
cdf07f1745 Media2 tests: Clean up assets
Even after this change, it's unclear to me why we need so many
assets for these tests. Just doing a minimal pass for now though!

PiperOrigin-RevId: 326613941
2020-08-17 16:12:39 +01:00
insun
602d880841 Fix StyledControlView's minimal mode bug and setShow{*}Button bug
There were two bugs in StyledPlayerControlView:
- Center icons are shown when toggling control view in minimal mode.
- `StyledControlView#setShow{*}Button` methods and corresponding
  `set_show_*_button` attributes didn't work properly.

This CL fixes bugs by controlling the buttons' visibility in one place,
StyledPlayerControlViewLayoutManager.

PiperOrigin-RevId: 326567213
2020-08-17 16:12:30 +01:00
jaewan
e6bf7bd0ff Migrate to use Player's top level playlist API
Being specific, this includes following changes
  - Remove PlaylistManager and TimelinePlaylistManager
    and use Player's playlist API directly.
  - Replace ConcatenatingMediaSource uses with
    ExoPlayer MediaItem.
  - Replace PlaybackPreparer uses with Player#prepare()
  - Add MediaItemConverter for developers to customize
    converting AndroidX MediaItems to ExoPlayer MediaItems
    and vice-versa.
  - Add DefaultMediaItemConverter for providing default
    implementation of both MediaItemConverter
    and MediaSourceFactory.

Note that removing PlaylistManager loses the ability
to suppress individual playlist API. But decided to remove
for simpler API set. The feature can be added back later
via explicit request.

PiperOrigin-RevId: 326463492
2020-08-17 16:12:21 +01:00
samrobinson
1b9992cf7a Add a GTS test for MediaFormat change occurring at the correct time.
PiperOrigin-RevId: 326428782
2020-08-17 16:12:12 +01:00
olly
339e3f899d Clean up release notes for 2.12: UI, downloads, DRM
PiperOrigin-RevId: 326427225
2020-08-17 16:12:03 +01:00
olly
039af76b0e Clean up release notes for 2.12: Test utils, extensions and demo
PiperOrigin-RevId: 326425279
2020-08-17 16:11:53 +01:00
insun
454a38c366 Increase touch target size and margins between icons
PiperOrigin-RevId: 326423935
2020-08-17 16:11:44 +01:00
andrewlewis
61abe5951a Use consistent naming for 'offload scheduling enabled'
PiperOrigin-RevId: 326413842
2020-08-17 16:11:35 +01:00
aquilescanta
cde795ea98 Fix typo in DrmSessionManager's javadoc
PiperOrigin-RevId: 326413433
2020-08-17 16:11:26 +01:00
aquilescanta
fcb263a407 Make DrmSessionManager take a Format instead of DrmInitData
Skipping acquirePlaceholderSession which will be removed
in a following change.

PiperOrigin-RevId: 326402746
2020-08-17 16:11:17 +01:00
olly
6f7524521b Demo app: Update concatenation terminology to use "playlist"
PiperOrigin-RevId: 326401528
2020-08-17 16:11:08 +01:00
insun
cda35f6677 Make play/pause button to reflect getPlayWhenReady state
Previously, it refelects isPlaying() and it makes the button to seem
unresponsive when playback error occurs.

PiperOrigin-RevId: 326396570
2020-08-17 16:10:59 +01:00
andrewlewis
501f464217 Add support for using framework speed adjustment
AudioTrack.setPlaybackParams can be used to adjust playback speed.
This is preferable to application-level speed adjustment (currently
implemented in ExoPlayer) from API 23 because the speed change
occurs in the mixer, which means that the audio track buffer doesn't
need to drain out before the speed adjustment takes effect.

Issue: #7502
PiperOrigin-RevId: 326392301
2020-08-17 16:10:50 +01:00
insun
b95c984d16 Cleanup unused ui resources and code
PiperOrigin-RevId: 326390725
2020-08-17 16:10:40 +01:00
olly
a0088f068a Change getMaxInputSize visibility.
PiperOrigin-RevId: 326341905
2020-08-17 16:10:31 +01:00
olly
5220c70c5e Demo app: Rename drm_license_url to drm_license_uri
It's quite hard to document drm_force_default_license_uri when the
actual license URI uses "url" terminology. This brings the two in
line.

PiperOrigin-RevId: 326283162
2020-08-17 16:10:22 +01:00
olly
a7b1b56064 Demo app: Remove is_live from exolist.json
It's not used in the public exolist.json file. It's only use is to
disable the download icon for live content, but it's quite easy to
forget (there are live samples in our internal exolist.json files
that omit this property!).

It's better just to show a clear error message toast when the
download actually fails for this reason.

PiperOrigin-RevId: 326281649
2020-08-17 16:10:13 +01:00
olly
a8a32d6bec Demo app: Minor simplifications
- Simplify the ability to use placeholder DRM sessions to a boolean
- Remove unused IS_LIVE entry in the intent

PiperOrigin-RevId: 326280149
2020-08-17 16:10:03 +01:00
olly
da2f78505d Clean up release notes for 2.12: Move sections into a better order
PiperOrigin-RevId: 326221199
2020-08-17 16:09:55 +01:00
olly
099ea4b5b5 Clean up release notes for 2.12: DASH/SS/HLS/Extractors
PiperOrigin-RevId: 326220752
2020-08-17 16:09:46 +01:00
olly
93ceb78d0e Clean up release notes for 2.12: Text
PiperOrigin-RevId: 326218372
2020-08-17 16:09:37 +01:00
andrewlewis
a7a364d567 Remove unused local intent
PiperOrigin-RevId: 326216921
2020-08-17 16:09:28 +01:00
andrewlewis
6aeacd70bc Fix miscellaneous nits
PiperOrigin-RevId: 326208366
2020-08-17 16:09:19 +01:00
krocard
b02398ff75 Save input format in Configuration
This will allow for better exception
on AudioTrack error.

PiperOrigin-RevId: 326091883
2020-08-17 16:09:10 +01:00
olly
511a6c729e Increase flexibility of ISM URL handling
PiperOrigin-RevId: 326025335
2020-08-17 16:09:01 +01:00
andrewlewis
607e11718b Remove deprecated AudioSink methods
Also do some minor cleanup in DefaultAudioSink.

PiperOrigin-RevId: 326012441
2020-08-17 16:08:52 +01:00
olly
82b26357c9 Infer ISM content type from URL specified extension
PiperOrigin-RevId: 326012248
2020-08-17 16:08:43 +01:00
ibaker
443468d103 Clarify MediaItem.Builder javadoc
Make it clear that setUri sets PlaybackProperties.uri

Also capitalise all references to DRM, ID, URI and UUID

PiperOrigin-RevId: 326002853
2020-08-17 16:08:34 +01:00
ibaker
da4d55635c Create a DumpFileAsserts from the dumpfile logic in FakeExtractorOutput
Also use it to replace the same logic in CapturingAudioSink

PiperOrigin-RevId: 325969455
2020-08-17 16:08:24 +01:00
olly
361e5d9326 Demo app: Fix DRM support check for ClearKey
Issue: Issue: #7735
PiperOrigin-RevId: 325900705
2020-08-17 16:08:15 +01:00
tonihei
ad346fbdbe Fix FfmpegVideoRenderer tag
PiperOrigin-RevId: 325857202
2020-08-17 16:08:06 +01:00
krocard
19db6feddb Use message to set offload scheduling
The code was mutating boolean across threads.

PiperOrigin-RevId: 325826214
2020-08-17 16:07:57 +01:00
krocard
192c1e5dee Improve OnExperimentalOffloadSchedulingEnabled name
For consistency with onShuffleModeEnabledChanged.

PiperOrigin-RevId: 325820951
2020-08-17 16:07:48 +01:00
samrobinson
63faf51c7e Change experimental method naming of setReleaseTimeoutMs.
PiperOrigin-RevId: 325795609
2020-08-17 16:07:39 +01:00
samrobinson
78424efc90 Change experimental method naming for throwWhenStuckBuffering.
PiperOrigin-RevId: 325795485
2020-08-17 16:07:29 +01:00
samrobinson
69c2a76d01 Change experimental method naming of set*MediaCodecOperationMode.
PiperOrigin-RevId: 325790799
2020-08-17 16:07:20 +01:00
krocard
6c3a011dc3 Listener for offload scheduling
Let the app know when offload scheduling is enabled or disabled.

PiperOrigin-RevId: 325790017
2020-08-17 16:07:11 +01:00
samrobinson
9a0203e954 Change experimental method naming for blockUntilDelivered.
PiperOrigin-RevId: 325786522
2020-08-17 16:07:02 +01:00
samrobinson
eb9463454b Change setBandwidthAllocationCheckpoints naming.
PiperOrigin-RevId: 325786473
2020-08-17 16:06:53 +01:00
samrobinson
6db25cdab6 Change experimental method naming for allowMultipleAdaptiveSelections
PiperOrigin-RevId: 325784936
2020-08-17 16:06:43 +01:00
samrobinson
b956f85b45 Change experimental method naming for enableOffloadScheduling.
PiperOrigin-RevId: 325784822
2020-08-17 16:06:34 +01:00
ibaker
28697b9b9e Fix DefaultTrackSelector docs on select*Track methods
formatSupport is a 2-dimensional int array but it's documented as
being indexed by 3 things. This seems to be a copy-paste mistake in
e97b8347eb

selectAllTracks() takes a 3-dimensional array with the same
3-indexed documentation, which makes sense there.

Also rename formatSupports -> formatSupport for consistency.

PiperOrigin-RevId: 325779435
2020-08-17 16:06:25 +01:00