Indicated that when this request type is returned in response
to a getKeyRequest no license exchange is required and
the key is available for use.
Bug: 73750909
Test: javadocs change only. Compiled Sailfish.
Change-Id: I4f124158160bf7e74f0228788c7b24bcefbb5dd0
Expose a listener constant which is used with OnInfoListener() in
order to notify that the player instance started the playback since
previous player just completed the playback.
Bug: 76121592
Test: make offline-sdk-docs
Change-Id: I69ade8e9f6916bc653ea2831e3721dc7d171dc0e
The API checks whether an app is granted MEDIA_CONTENT_CONTROL
permisison or has enabled notification listener. Such apps can be
considered as the system component (e.g. Bluetooth) or equivalent (e.g.
Auto/Wearable companion app), so sessions shouldn't refuse connection
request from it.
It needs to be public because API for checking whether an app has an
enabled notification listener can only be called by the system service.
(see: NotificationManager.getEnabledNotificationListeners(int))
With the MediaSessionManager#isTrustedForMediaControl(),
MediaSessionService will query the information indirectly for a session
to tell an app is trusted.
Note that this isn't workaround for bypassing permission check of
NotificationManager API calls. It's indirectly available through
the android.provider.Settings.Secure with the *deprecated* key
ENABLD_NOTIFICATION_LISTENERS and it doesn't need any permission.
MediaSessionManager#isTrustedForMediaControl() is needed to avoid using
deprecated key for querying notification listeners.
Bug: 75500592
Test: Build
Change-Id: I8d1183aa946aa0d2ec35dbd7f31933d1c2717f99
API review requested that MediaDrm security
levels be prefixed with a common string.
bug:76449152
bug:74831432
Change-Id: I2b4d5ed2c881f736659f29aa76c556a79d1335f4
Expose in SDK the interfaces necessary to implement unbundled
subtitle support, which requires:
- exposing an interface to receive the encoded subtitle data
- exposing an interface while allows a renderer to synchronize
its rendering clock with the media time of the player.
Deprecate duplicated timed text constant, all timed text / sub
mime types are defined in MediaFormat.
Bug: 76121592
Test: make offline-sdk-docs
Change-Id: I42cc1d69069babb69a2feeba3f54da89889f4602
Remove the checkType of filtering back mic. Make getAddress() public in
AudioDeviceInfo to distinguish different built in mic.
Bug: 64038649
Test: run cts
Change-Id: I943b7f74f44db7068644f5ffa1b5410cbf567f11
The only allowed format - usage pairs are currently:
* PRIVATE with USAGE_GPU_SAMPLED_IMAGE
* PRIVATE with USAGE_VIDEO_ENCODE
* PRIVATE with USAGE_GPU_SAMPLED_IMAGE | USAGE_VIDEO_ENCODE
* Non-PRIVATE with USAGE_CPU_READ_RARELY
* Non-PRIVATE with USAGE_CPU_READ_OFTEN
This commit enable other cases, ie. PRIVATE with
GRALLOC_USAGE_HW_COMPOSER.
Bug: 77148005
Test: Manually tested it.
Change-Id: I414c25bc62d52a3573461df6cec4d88512509ec4
PlayerEventCallback#onSeekCompleted() will be called when the
MediaPlayerBase#seekTo() is completed. Following callbacks are also
added to listen the event.
- SessionCallback#onSeekCompleted()
- ControllerCallback#onSeekCompleted()
Bug: 74370608
Test: Build
Change-Id: Ib1ecd75f7e217ed9a927db3ab443073a1aef2074
This CL removes code that directly casts int[] to long[] and instead
iterates through the individual values and casts to int if necessary.
They are cast to integer because StripOffsets/StripByteCounts
Attributes can return either int[] or long[] values, but the maximum
length of a file that ExifInterface can handle is the maximum value
of integer, so it should be safe to cast the long values to integer
values.
Bug: 73091048
Test: Cts
Change-Id: I9f3b98204e0829a8a8a30927bb8c0a698c457654
If MtpService stops before MtpServer
shuts down, the server will be null,
so don't attempt to use it in that
case.
Bug: 76433619
Test: no errors
Change-Id: I6744cb78908e6a0663a4b60107d5c9c18dda62bb