In the native audio policy management, the default stream type
for volume is STREAM_MUSIC, i.e. any player by default is
considered a "media" player. Do the same for audio attributes
with regards to suppressible behaviors.
Bug: 74052135
Test: ZenModeHelperTest + see bug
Change-Id: I8f65044807fd3e745f21e031a0aa01a5e6f74cd2
"ImageReader" and "ImageWriter" must pass information about the
specific buffer scaling mode.
Bug: 76022384
Test: Manual using application,
Camera CTS
Change-Id: I116f00cbf3b1487d8e44661e8fd15e2aa16e6e0d
Query the extractor for the exif data offset and length,
if it's available, read the exif block from the file.
Otherwise, set image dimension and rotation only.
bug: 76149934
Change-Id: I85f24b526fb356a9227941e20807fc96369c8536
PlaybackState can be null and it's annotated as @Nullable in other
places. So we'd better to fix the annotation.
Bug: 77532207
Test: Run CtsMediaTestCases
Change-Id: I8974c6c99d9d188934f74775977631fb7b37e5d2
Here's the comments from the review
- RemoteUserInfo needs to override .hashCode() as well
- Verify package name and the UID in the RemoteUserInfo
- Docs: Document how to get RemoteUserInfo
- Docs: Document that RemoteUserInfo is only valid on thread that the
command is being called from
* It's already documented in the
MediaSession#getCurrentControllerInfo() and
MediaBrowserService#getCurrentBrowserInfo().
Bug: 77507337
Test: Run following CtsMediaTestCases
- MediaBrowserTest
- MediaBrowserServiceTest
- MediaControllerTest
Change-Id: If37560a7bc59d1ef5517ec1f3e0a8b74c2bb2980
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