Commit Graph

8878 Commits

Author SHA1 Message Date
shubang
1dc13378a2 Tuner API: make DvrPlayback.attach/detachFilter no-ops
Will mark them @deprecated or @removed in next version

Bug: 155435894
Test: make
Change-Id: If5bf3604ed10721f80162d54951eb38bb8084646
2020-05-27 08:18:58 +00:00
TreeHugger Robot
f49fa1a9ea Merge "Add support for TvInputManager.acquireTvInputHardware CTS" into rvc-dev 2020-05-27 04:39:45 +00:00
shubang
491eaba9be Tuner FW: fix filter type check.
Java subtype and HAL subtype don't match, which lead to a bug in
configure();

Other minor fixes.

Bug: 157278203
Test: make; cts;
Change-Id: I791d3a06c68499cf359fd718d2ca24a20ac35796
2020-05-27 00:07:12 +00:00
Jean-Michel Trivi
7c7016071a Fix volume key handling for key press repeat
The original code for translating volume key presses into CEC
commands was sending the equivalent of a key up / key down for
each call to adjustSuggestedStreamVolume. This behavior caused
CEC commands to pile up in HdmiControlService, and a repeated
key press (user keeping finger on volume button on remote) would
cause volume to still change on the CEC device handling volume
even after the key was released.
  The fix consists in changing how PhoneWindowManager communicates
with AudioService, by passing the key event directly, so AudioService
can communicate the key up / key down information to the CEC
library, which already deals with repeated commands on the CEC bus.

Bug: 137311120
Test: connect DUT to CEC TV or receiver capable of handling vol cmds,
  keep pressing on vol key, verify releasing key stops volume
  changes on TV/receiver.

Change-Id: I7a75af651b6b424129515a8991b5afb15c62dba3
Merged-In: I7a75af651b6b424129515a8991b5afb15c62dba3
(cherry picked from commit 12ba113894ec8ad7c24913a0a09ea70047d25353)
(cherry picked from commit 7e58c9145d71ba92053ad6629f910456566cfea9)
2020-05-25 10:22:38 +02:00
TreeHugger Robot
7b42f2d3e5 Merge "Tuner JNI: fix filter.read and DvrSettings" into rvc-dev 2020-05-22 00:53:38 +00:00
shubang
e8cb82c545 Tuner JNI: fix filter.read and DvrSettings
and some minor changes

Test: make; cts;
FIX: 157083380
Change-Id: I9dcd25594ab27f31bc417eefbb6424bec49fc27f
2020-05-20 18:51:06 -07:00
Jean-Michel Trivi
803c3158b1 AudioService: permission for volume adjustment to lowest values
Define an attenuation threshold under which the
MODIFY_AUDIO_SETTINGS permission is required to adjust volume.
  Verify permission at the interface of audio service, and
propagate this information so its used when getting a valid
index during a volume adjustment or set.
  Make the audio service dump display the min index when it
differs from the normal min index.
  Enforcement is only for STREAM_ALARM.

Bug: 137015603
Test: use POC app in bug, verify ALARM volume not at 1 with \
      adb shell dumpsys audio
Change-Id: I7ccb50e314bb0e27ba25346eab9cdd3e4dd1dceb
2020-05-20 08:57:50 -07:00
Henry Fang
d026dffb65 Merge "Added 1st atom for Tuner Metrics" into rvc-dev 2020-05-19 02:44:27 +00:00
Gopalakrishnan Nallasamy
123e60ed82 MediaMuxer:Maintain proper state after stop()
MediaMuxer.java: move to stop state even if nativeStop() throws
exception.
android_media_MediaMuxer.java: revert recent change, throw
only runtime exception for any error as it used to be. Log error now.

Bug: 156649746

Test: atest android.media.cts.MediaMuxerTest
      atest android.media.cts.MediaRecorderTest
      atest android.mediav2.cts.MuxerTest

Change-Id: I82e16fcb065a40f25036bbad181798f1fd36132b
2020-05-18 16:45:16 +00:00
Eric Laurent
bf01a79a83 Merge "AudioService AudioDeviceBroker: fix speakerphone control" into rvc-dev 2020-05-16 03:58:21 +00:00
Eric Laurent
3aad0adc9f AudioService AudioDeviceBroker: fix speakerphone control
Add a list of clients for speakerphone mode requests similar
to Bluetooth SCO clients. This allows to keep track of requests
by different apps in case of overlap or concurrency and to apply
the most relevant mode according to current audio mode owner.

Also:
- Restore requested speakerphone mode when SCO audio is disconnected
instead of returning to earpiece.

- Remove special check on permission while in call in
AudioService.setSpeakerphoneOn because the priority is now
managed by AudioDeviceBroker based on audio mode owner (the owner
for MODE_IN_CALL must have the modify phone state permission).

- Fix condition in AudioService.setMode() preventing from changing
mode while in call. Now allows releasing mode to NORMAL or
reapplying the same mode and just change mode owner.

- Add more information in dumpsys for AudioDeviceBroker and BtHelper.

Bug: 154464603
Test: test transitions between cell call and VoIP calls
Test: Test regressions with calls in speakerphone mode and Bluetooth
Test: AudioManagerTest#testRouting, NoAudioPermissionTest#testRouting

Change-Id: I0d288acf2373c96d52eb91a6ab7142cc3535c719
2020-05-15 16:15:23 -07:00
Yohei Yukawa
d5f402bd0b Have IMMS report IME UID to AudioService
This is a follow up CL to our previous CL [1], which enabled
AudioService to be notified about the UID of the currently used IME.

Although there is no change in the overall approach, with the help
from InputMethodManagerService AuditoService can be notified new IME
UIDs more quickly especially when IMEs are switching to other ones
(e.g. due to user switching or profile switching).

 [1]: I11e17b13513627c88ccb8e4db66c5359e9ee7f7b
      ed4e8c3fab

Bug: 147037345
Test: use voice input with Gboard 9.5.0 during a simulated RTT call.
Change-Id: I44e3331a7bad6d36227f7e2d0523dd14d933b6a1
2020-05-15 10:23:32 -07:00
Amy Zhang
5f8498bcf1 Add support for TvInputManager.acquireTvInputHardware CTS
1. Add a test api in TvInputManager to add hardware device for testing
2. Add Shell permission for TV_INPUT_HARDWARE
3. Add TUNER_RESOURCE_ACCESS permission for TvInput Framework.

Test: atest android.media.tv.cts
Bug: 155114656
Change-Id: I227f13cbf14532d8732729412ae9c2518755ef02
2020-05-14 17:37:52 -07:00
Henry Fang
e316ab61e6 Added 1st atom for Tuner Metrics
Metrics review request b/155199791

This Cl follows up http://ag/c/11203604/8

bug: 154661158
Test: Manual
Change-Id: I7d41a71c724b7f5395d213dc63000739e55b4a43
2020-05-15 00:16:33 +00:00
Alan Stokes
b3d4b64c0d Grant SYSTEM_ALERT_WINDOW during screen capture.
While an app has an active screen capture MediaProjection, enable the
SYSTEM_ALERT_WINDOW app op for it if it requests the permission and
the user hasn't explicitly allowed or denied it. This enables the app
to use TYPE_APPLICATION_OVERLAY windows to show custom UI on top of
what is being captured. Needed for live-streaming apps.

Test: Manual, using a hand-written fake recording app and a real one
Test: atest MediaProjectionTest
Bug: 148002116
Change-Id: I503f3223608627c80520e98be840f793efd53d2a
2020-05-12 14:17:21 +01:00
TreeHugger Robot
81fd503701 Merge "MediaRouter2: Fix getRoutes() returning an empty list" into rvc-dev 2020-05-12 07:42:33 +00:00
Hyundo Moon
ef682fd78b MediaRouter2: Fix getRoutes() returning an empty list
By doing this, calling getRoutes() after instantiation will not return
an empty list.

Bug: 156319555
Test: Passed CTS
Change-Id: I4e5158b89d54e06f36dc37a3ca345849f0c91440
2020-05-12 14:02:24 +09:00
Kyunglyul Hyun
ccb9587ae1 Make MediaRouter2Manager connect to the system ASAP
With this CL, some methods such as getAllRoutes, getActiveSessions
can be used without registering a callback.

Bug: 155042836
Test: atest mediaroutertest
Change-Id: Iba38d73a95c1d184bc89ff91d128b00109029d0a
2020-05-12 13:21:30 +09:00
Jiabin Huang
acc2acafe7 Merge "Support query encapsulation information." into rvc-dev 2020-05-08 18:26:31 +00:00
Kyunglyul Hyun
45512bbd54 Filter selectable/deselectable routes
Only selected routes can be deselectable and not selected routes
can be selectable from this CL.

Bug: 154918270
Test: Manually and atest mediaroutertest
Change-Id: I2e66d814190b003c935b21a744d24fa2b5d2c7ac
2020-05-08 17:36:33 +09:00
jiabin
52c3a741b0 Support query encapsulation information.
Add encapsulation info in AudioDevicePort. Instead of returning a size 0
array, query AudioDevicePort for getEncapsulationModes and
getEncapsulationMetadataTypes.

Test: atest EnumDevicesTest, manually
Bug: 155799506
Change-Id: I4eff64aeb135a75ad51c9b3618a34747be8920f1
2020-05-08 00:37:55 +00:00
Andy Hung
65c14feec9 Merge "AudioMetadata: Translate KEY_ATMOS_PRESENT for JNI" into rvc-dev 2020-05-07 03:28:15 +00:00
Kyunglyul Hyun
0de25056a2 Merge "Introduce APIs to deal with RCN case" into rvc-dev 2020-05-07 02:25:09 +00:00
Andy Hung
db7fd16f1f AudioMetadata: Translate KEY_ATMOS_PRESENT for JNI
Translate KEY_ATMOS_PRESENT from Key<Boolean> to Key<Integer>
for JNI handling.

Test: AudioMetadataTest#testFormatKeys
Bug: 155392886
Change-Id: I69abbc451cdc6dfd23bf3d5d3a146ba884b9026e
2020-05-06 15:54:06 -07:00
Kyunglyul Hyun
8a028947c3 Merge "Clean up MediaRouter2Manager" into rvc-dev 2020-05-06 11:52:20 +00:00
Kyunglyul Hyun
e2dbbf79f9 Introduce APIs to deal with RCN case
This CL does following:
 - MR2Manager#getRoutingSessionForMediaController is added
 - MR2Manager#getAvailableRoutesForRoutingSession is added
 - Add a workaround for provider to provide a routing session
   not requested by the user (RCN case)

Using the added methods, we exepect System UI to implement UX easily.

Bug: 154780833
Bug: 152582294
Test: It is tested manually with two demo APKs. MediaRoute2ProviderDemo
app is updated to enable the user to create a routing session w/o
MediaRouter2 clients and Sample Output Switcher is updated to use the
new APIs. With updated APKs, transfer from cast to cast (Variable
Volume1 -> Variable Volume2) is enabled.

Change-Id: I03c261c1779725f43933bacad429e1a22f602818
2020-05-06 17:44:34 +09:00
Kyunglyul Hyun
fa6f06da30 Clean up MediaRouter2Manager
This CL removes unnecessary APIs.

Bug: 155306249
Test: atest android.media.cts.MediaRoute2InfoTest
  android.media.cts.MediaRouter2Test
  android.media.cts.RouteDiscoveryPreferenceTest
  android.media.cts.RoutingSessionInfoTest
  android.media.cts.MediaRoute2ProviderServiceTest
  mediaroutertest;
  make -j42 RunSettingsLibRoboTests
Change-Id: I7ee6546deeaca8f5e9cb9b0d119ab6fff734ca1c
2020-05-06 16:17:54 +09:00
Amy Zhang
a2249444a7 Complete the acquireHardware API implementation in the TvInputHardwareManager
This CL:
1. Finish the logic in TIHM to utilize the TRM for a client priority check.
2. FInish the TRM isHigherPriority API to allow the TIHM to compare the
client priority.
3. Finish the TRM isForeground method to check if a process is
foreground or not.
3. Add unit test for TRM isHigherPriority.

Test: atest com.android.server.tv.tunerresourcemanager
Bug: 155339425
Change-Id: I3887ccad31195d3386f1fc6b3de3e641df91092f
2020-05-05 21:05:14 -07:00
Andrew Sapperstein
88d565e7e7 Update inner class constructor refs to use proper syntax.
Previously, we generally required fully qualified names for referring
to inner class constructors (like #Notification.Builder()) despite that
not being valid javadoc. Now, we properly support #Builder() syntax and
the old syntax will error.

Bug: 6963924
Test: make doc-comment-check-docs
Exempt-From-Owner-Approval: cherry-picked from master
Change-Id: Ib2e4360493275b79c72487ee1cb173bb5e0fd35f
Merged-In: Ib2e4360493275b79c72487ee1cb173bb5e0fd35f
(cherry picked from commit 4c4aa41272)
2020-05-01 18:33:15 +00:00
Andrew Sapperstein
8fe35e5f21 Fix broken @see tags in public documentation.
These were previously being suppressed by doclava but with this change,
all failures are fixed and the suppression logic has been removed.

To fix the issues, there were a few possible changes made:
- broken reference to a public API (such as incorrect parameters): fixed
- unnecessary @link inside an @see tag: fixed
- @see referring to an @hide or @SystemApi: reference removed
- broken references to inner class constructors
 - worked around by fully qualifying the constructor

Bug: 6963924
Test: make doc-comment-check-docs
Exempt-From-Owner-Approval: cherry-picked from master
Change-Id: Ifbdce2de96cdffa560bd90f549fa7184d1f9af85
Merged-In: Ifbdce2de96cdffa560bd90f549fa7184d1f9af85
(cherry picked from commit e0624c7a40)
2020-05-01 18:25:32 +00:00
James Wei
f545a3ac9e MTP: media info can not be retrieved via MTP#2
Under the new MtpStorageManager design,
media info like MP3 Track title, album and artist, Genre, etc
can not be retrieved via MTP
by Windows Media Player, Linux Rhythmbox and Some Car Kits

Bug: 112635346
Test: atest MtpTests
Test: atest MediaProviderTests
Test: Manual test: Windows Media Player
Change-Id: I57a947fe6d3a583a0990be5bd2b0678f39d948f2
2020-05-01 07:52:55 +00:00
TreeHugger Robot
ee6b90ef7f Merge "Tuner JNI: linearBlock and OnDestroyNotify" into rvc-dev 2020-04-30 00:52:35 +00:00
jiabin
fa7a0252b0 Reset audio port generation when having recording callback event.
In RecordingActivityMonitor, compare audio device type and address to
know if legacy remote submix is active, which requires querying audio
patches. When there is a recording callback event, the audio patches in
AudioManager may not be up to date. In that case, when getting a
recording callback event, reset audio port generation if the patch
handle is not found in the cached audio patches.

Test: repro steps in the bug
Bug: 144063329
Change-Id: Ife5c9a65243d2e85e4cd9480e3b415f8bfddc6f5
2020-04-29 09:59:53 -07:00
shubang
3aef4fe424 Tuner JNI: linearBlock and OnDestroyNotify
referred to ag/10877916 by Henry quxiangfang@

Bug: 139308734
Test: mmm
Change-Id: I7574d27cb1f582a5556e22eac4fff87335230b00
2020-04-27 13:18:46 -07:00
Kyunglyul Hyun
22d4e05e22 Correct SystemMediaRoute2Provider#requestCreateSession
It will call back onSessionCreated or onRequestFailed with
the correct arguments.

Bug: 152932787
Test: manually by cast -> phone multiple times via Output Switcher.
It includes the case that the target route changes (phone -> BT).

Change-Id: Icc324f3e7d6dfde71faa6d3bc919be383e7a5216
2020-04-27 21:44:55 +09:00
Ytai Ben-tsvi
f7d789b0ed Merge "Deliver internal server errors to the client" into rvc-dev 2020-04-25 01:34:06 +00:00
TreeHugger Robot
11ddcad881 Merge "AudioService: fix A2DP (dis)connection during media playback" into rvc-dev 2020-04-25 01:02:57 +00:00
Ytai Ben-Tsvi
458930753d Deliver internal server errors to the client
Due to a binder limitation (b/150808347), any unexpected exception
thrown by a binder service while processing an RPC call, will be
silently discarded and the client will get back a default-initialized
result parcelable (i.e. in most cases, won't know that anything wrong
happened).

We work around this issue by throwing a ServiceSpecificException,
which does get delivered, having a special code to designate an
internal error. Errors resulting from a HAL malfunctions will result
in a HAL reboot, which leads to recovery.

Bug: 154089179
Test: Manual verification of basic error recovery scenarios by
      injecting HAL error codes and crashes.
Change-Id: Ib5dbe08a362e545501c04204bebad5ab95f5d632
2020-04-24 16:39:36 -07:00
Phil Burk
abaa48139c Merge "audio: E_AC3 is also Dolby Digital Plus" into rvc-dev 2020-04-24 21:36:27 +00:00
Jean-Michel Trivi
e9e4a3de4a AudioService: fix A2DP (dis)connection during media playback
Fix issue with A2DP connection/disconnection during media
playback by modifying:
- how messages related to A2DP connection/disconnection are
  removed from the AudioDeviceBroker message handler: have
  .equals() be used when checking which object to remove,
  and correct which class is used for the messages in the
  queue:
    * MSG_IL_SET_A2DP_SINK_CONNECTION_STATE_*CONNECTED is
      using BtHelper.BluetoothA2dpDeviceInfo
    * MSG_L_A2DP_DEVICE_CONNECTION_CHANGE_EXT_CONNECTION
      is using BtDeviceConnectionInfo
- locking: use the AudioDeviceBroker main lock, mDeviceStateLock
  to synchronize posting events on the handler, and removing
  some of those messages to avoid race conditions the thread
  in which events are posted (e.g. BT's event thread) and the
  AudioDeviceBroker handler thread.

  Cleanup: annotation around audio formats from native defined
in AudioSystem, moved conversions to AudioSystem.

Bug: 142293357
Test: atest AudioDeviceBrokerTest
Change-Id: I2e8dc813354829fb1b2c7ca95ad395a14f8b70cf
2020-04-24 12:06:10 -07:00
TreeHugger Robot
53897fd7d1 Merge "media: fix MediaCodec operations using HardwareBuffer" into rvc-dev 2020-04-24 18:44:45 +00:00
Hyundo Moon
dc75d0436a Merge "MediaRouter2: Release controller when transfer result arrives" into rvc-dev 2020-04-23 11:27:16 +00:00
TreeHugger Robot
f24522ba3d Merge "RoutingSessionInfo: Modify toString() so that it can print uniqueId" into rvc-dev 2020-04-23 07:46:39 +00:00
Hyundo Moon
cacc4de46b MediaRouter2: Release controller when transfer result arrives
Previously when MediaRouter2#transferTo(route) is called, it directly
released current controller. This CL changes the release timing to
when the actual transfer result comes.

Also, this CL prevents a RoutingController instance from being passed
both to:
 - As 'oldController' in onTransfer()
 - As 'controller' in onStop()

These works make TransferCallback easy to use: when onStop() is called,
app can just stop playing media.

Bug: 154680146
Test: Passed CTS / Checked logs in onTransfer/onStop
      with output switcher
Change-Id: I4449021f98ca887252e05398356df9b53592c145
2020-04-23 16:11:26 +09:00
Hyundo Moon
18f8ac0ad2 RoutingSessionInfo: Modify toString() so that it can print uniqueId
Bug: 154778725
Test: Builds successfully
Change-Id: I6b0aacc45cf3297dae4ebad5f072c1484ef04426
2020-04-23 13:22:16 +09:00
TreeHugger Robot
42199418fd Merge "Tuner JNI: setLnb and close()" into rvc-dev 2020-04-22 23:25:35 +00:00
shubang
b3bfffeb97 Tuner JNI: setLnb and close()
Bug: 139308734
Test: mmm
Change-Id: I48ead59a638d83d2bfd9d8edabb0858715f0d473
2020-04-22 14:44:46 -07:00
Ytai Ben-Tsvi
d34d075175 Add OWNERS files to soundtrigger middleware
Bug: 154739107
Test: N/A
Change-Id: Ibbe7257a816af43fa604cb4c7782b7c792409e57
2020-04-22 19:01:18 +00:00
Andy Hung
6d5625c5ce Merge changes Ibca1d27b,I8cc6f5ce into rvc-dev
* changes:
  MediaMetrics: Update Audio Java logging
  MediaMetrics instrumentation
2020-04-22 17:04:27 +00:00
Andy Hung
6983695951 MediaMetrics: Update Audio Java logging
Convert to typed keys to ensure consistent spelling / usage.
Track volume state.
Track device state.

Test: media metrics dumpsys
Bug: 149850236
Merged-In: Ibca1d27baca3bea6c5c363c7ef0dbce04fe5debc
Change-Id: Ibca1d27baca3bea6c5c363c7ef0dbce04fe5debc
2020-04-21 23:51:42 -07:00