Commit Graph

6656 Commits

Author SHA1 Message Date
Jean-Michel Trivi
6d38a1b260 AudioAttributes: handle unknown usage like media
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
2018-04-09 21:24:25 +00:00
Andy Hung
8ec4be4be9 PlaybackParams: Add @TestApi annotation to access stretch mode
Required due to CTS access restrictions in P.

Test: CTS ParamsTest
Bug: 77723867
Change-Id: I68b5fbc2096d5d1cb01c60fe1028def5ecfe2959
2018-04-06 19:23:53 -07:00
Jean-Michel Trivi
d043c3aba0 AudioFocusRequest: getOnAudioFocusChangeListener in test API
Bug: 77651038
Test: CTS AudioFocusTest
Change-Id: I071057f1ed0ed6c56c16182a48191d763d408ae1
2018-04-06 16:59:21 -07:00
Mikhail Naganov
436ee82422 AudioPresentation: Replace @VisibleForTesting with @TestApi
This is to fix CTS tests failures.

Bug: 77715867
Test: make
Change-Id: I99a5ff8fab208a0e1f2e889cb7ad256e6ba08437
2018-04-06 13:30:28 -07:00
Andy Hung
320c1ade67 Merge "Add TestApi annotation to AudioEffect, AudioFormat, VolumeShaper" into pi-dev 2018-04-06 18:19:48 +00:00
TreeHugger Robot
893c5e0c70 Merge "media: Populate Image scaling mode in reader and writer" into pi-dev 2018-04-06 17:06:44 +00:00
Emilian Peev
750aec6f3b media: Populate Image scaling mode in reader and writer
"ImageReader" and "ImageWriter" must pass information about the
specific buffer scaling mode.

Bug: 76022384
Test: Manual using application,
Camera CTS

Change-Id: I116f00cbf3b1487d8e44661e8fd15e2aa16e6e0d
2018-04-06 13:01:45 +01:00
TreeHugger Robot
0c42369361 Merge "Extract exif data from mp4 extractor if available" into pi-dev 2018-04-06 05:13:33 +00:00
Andy Hung
3ce023b02e Add TestApi annotation to AudioEffect, AudioFormat, VolumeShaper
Test: AudioEffectTest
Test: AudioRecordTest
Test: AudioTrackTest
Test: AudioTrackSurroundTest
Test: AudioTrack_ListenerTest
Test: BassBoostTest
Test: EnvReverbTest
Test: EqualizerTest
Test: LoudnessEnhancerTest
Test: PresetReverbTest
Test: VirtualizerTest
Test: VisualizerTest
Test: VolumeShaperTest
Bug: 77652246
Bug: 77651563
Bug: 77652497
Change-Id: I3a95cb6834fac0cd0cb88ea3ed0ba028aeddb3f2
2018-04-05 20:28:33 -07:00
TreeHugger Robot
d8a6f0cd94 Merge "Add @TestApi for field needed for test" into pi-dev 2018-04-05 20:41:24 +00:00
Chong Zhang
2cc0a2eca9 Extract exif data from mp4 extractor if available
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
2018-04-05 11:25:45 -07:00
Marco Nelissen
a7de449356 Add @TestApi for field needed for test
Also update truncated comment.
Bug: 13249737
Bug: 77485791
Test: CTS

Change-Id: I1351a6ef28dfd7e881f32830c436315ffdbfffaa
2018-04-05 16:43:06 +00:00
Dongwon Kang
b9c661f79f Merge "Add OnMediaTimeDiscontinuity notification" into pi-dev 2018-04-05 16:33:39 +00:00
TreeHugger Robot
8a585a6f1f Merge "MediaController: Fix annotation of Callback#onPlaybackStateChanged()" into pi-dev 2018-04-05 10:03:22 +00:00
TreeHugger Robot
628f59aa45 Merge "MediaSessionManager: Apply API council review" into pi-dev 2018-04-05 05:25:15 +00:00
Jaewan Kim
532a992e9b MediaController: Fix annotation of Callback#onPlaybackStateChanged()
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
2018-04-05 11:13:38 +09:00
Jean-Michel Trivi
9a30362790 MediaCodecInfo: define AACObjectXHE profile level
Bug: 71430241
Test: CTS DecoderTest and DecoderTestAacDrc
Change-Id: I03ede882db420eeaa871991d1d5cba8955b2cdba
2018-04-04 14:16:40 -07:00
Dongwon Kang
2fab5bfb7b Add OnMediaTimeDiscontinuity notification
Test: MediaPlayerTest
Bug: 63934228
Change-Id: I1914f32867416c5c052b6ae3bfe23e597fb314e4
2018-04-04 09:54:14 -07:00
Jaewan Kim
03cba65b91 MediaSessionManager: Apply API council review
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
2018-04-04 19:13:59 +09:00
Hongwei Wang
1b322dd042 Adds comment how to deal with newly added audio usage
Bug: 77547740
Test: adb shell dumpsys media.audio_policy
Change-Id: If0d9f1d0ac2205900532cb9f761746ce4d164d32
2018-04-03 16:22:06 -07:00
TreeHugger Robot
1c967fe075 Merge "Updates MediaDrm developer docs" into pi-dev 2018-04-02 20:00:46 +00:00
Jeff Tinker
1e034fd2ed Updates MediaDrm developer docs
Distinguish between secure stops and secure stop ids

bug:76449152
Change-Id: I4ff26b645bd4a156738ba358de598e2ccb1b0584
2018-03-30 17:38:56 -07:00
TreeHugger Robot
d41d56e348 Merge "Dynamics Processing Effect" into pi-dev 2018-03-31 00:05:32 +00:00
Rahul Frias
1b7162ad3d Merge "Clarified app behavior on REQUEST_TYPE_NONE" into pi-dev 2018-03-30 20:33:24 +00:00
rago
1584bb80ce Dynamics Processing Effect
Fixing parameter integration with Dynamics Processing engine.

Bug: 64161702
Bug: 38266419

Test: manual testing and CTS tests
Change-Id: I0ff66d6fd60f2854aa93a45044cfa91c7ef344b3
2018-03-30 11:50:22 -07:00
TreeHugger Robot
cfe67aa575 Merge "Make back mic available when getting all available mic." into pi-dev 2018-03-30 16:59:41 +00:00
Rahul Frias
a0cbc6f6b0 Clarified app behavior on REQUEST_TYPE_NONE
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
2018-03-30 02:11:09 +00:00
Dongwon Kang
b814355d17 Merge "Unhide MediaPlayer#MEDIA_INFO_STARTED_AS_NEXT" into pi-dev 2018-03-30 01:25:59 +00:00
Dongwon Kang
2492c00ae3 Unhide MediaPlayer#MEDIA_INFO_STARTED_AS_NEXT
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
2018-03-29 15:14:26 -07:00
TreeHugger Robot
5fa492f9b6 Merge "Rename MediaDrm security levels" into pi-dev 2018-03-29 05:18:32 +00:00
TreeHugger Robot
7a3593d0b6 Merge changes from topic "MediaSessionManager_isTrustedForMediaControl" into pi-dev
* changes:
  MediaBrowserService: Create getCurrentBrowserInfo()
  MediaSession: Create getCurentControllerInfo()
  MediaSessionManager: Add isTrustedForMediaControl()
2018-03-29 04:50:59 +00:00
Hyundo Moon
c2f557a49e MediaBrowserService: Create getCurrentBrowserInfo()
Bug: 65739365
Test: Ran MediaBrowserServiceTest
Change-Id: I629d74bcf9a08a2271463fecbacc2d998dce4387
2018-03-29 11:28:28 +09:00
Hyundo Moon
b1e344eaab MediaSession: Create getCurentControllerInfo()
Bug: 65739365
Test: Ran MediaControllerTest
Change-Id: I05c9179546d826e8fabb4fd4e4e03837dd4685ff
2018-03-29 11:25:03 +09:00
Jaewan Kim
b0e32b0856 MediaSessionManager: Add isTrustedForMediaControl()
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
2018-03-29 11:19:20 +09:00
Jeff Tinker
cbbab8339c Rename MediaDrm security levels
API review requested that MediaDrm security
levels be prefixed with a common string.

bug:76449152
bug:74831432
Change-Id: I2b4d5ed2c881f736659f29aa76c556a79d1335f4
2018-03-28 17:16:50 -07:00
Jean-Michel Trivi
26ef7344c9 Merge "MediaPlayer subtitle data / time discontinuity interfaces" into pi-dev 2018-03-28 20:30:02 +00:00
Jean-Michel Trivi
aabf284cbb MediaPlayer subtitle data / time discontinuity interfaces
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
2018-03-28 11:35:14 -07:00
jiabin
9697c6c561 Make back mic available when getting all available mic.
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
2018-03-28 08:23:19 -07:00
Clément Julliard
a7d2de4868 Relax constraints on valid ImageReader usage flags
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
2018-03-27 13:48:27 -07:00
Jerry Zhang
bb54f62d1a Merge "Guard against null server" into pi-dev 2018-03-27 17:54:21 +00:00
Jaewan Kim
51e33d1948 Merge changes from topics "session2_seekcompleted", "session2_pullout", "session2_fastforward" into pi-dev
* changes:
  MediaPlayerBase: Add PlayerEventCallback#onSeekCompleted()
  MediaSession2: Pull out Command/CommandGroup from the MediaSession2
  MediaController2: Add fastForward() / rewind()
2018-03-27 08:39:45 +00:00
TreeHugger Robot
30d648ab7a Merge "ExifInterface: Remove casting int[] to long[]" into pi-dev 2018-03-27 07:57:14 +00:00
Jaewan Kim
598265bd86 MediaPlayerBase: Add PlayerEventCallback#onSeekCompleted()
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
2018-03-27 16:51:51 +09:00
Jaewan Kim
3b15124ecc MediaSession2: Pull out Command/CommandGroup from the MediaSession2
Bug: 74648408
Test: Build
Change-Id: I0a3d1ab6320c7b276e7b1defdccf9fa371ae02c0
2018-03-27 16:48:26 +09:00
Jaewan Kim
ab715ec20b MediaController2: Add fastForward() / rewind()
Following CLs are included
  - Add MediaController2#fastForward() / rewind()
  - Add MediaSession2.SessionCallback#onFastForward() / rewind()

Bug: 74724709
Test: Build
Change-Id: I0dd2b6c21931df937006ae26011ea9538720afee
2018-03-27 16:48:26 +09:00
TreeHugger Robot
72e895fd9f Merge "Remove unneeded context" into pi-dev 2018-03-27 07:17:24 +00:00
Jin Seok Park
473201868c ExifInterface: Remove casting int[] to long[]
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
2018-03-27 14:58:52 +09:00
Jerry Zhang
02a005703a Merge "Revert "Add additional context to MtpDatabase"" into pi-dev 2018-03-27 02:49:30 +00:00
Jerry Zhang
df101a4596 Merge "Write descriptors for Mtp in UsbService" into pi-dev 2018-03-27 02:49:02 +00:00
Christofer Åkersten
6823d81d8c Remove unneeded context
Bug: 76001644
Test: compile
Change-Id: Ib6d581650ff22d90da2bdc9ad295eab595aefb25
2018-03-27 11:33:17 +09:00