8647 Commits

Author SHA1 Message Date
Dongwon Kang
993f81e238 TIF: fix a race condition when TvInputManager is initialized
Currently, TvInputManagerService notifies the initial state of each
input via TvInputManagetCallback#onInputStateChanged after TvInputManager
is created. However, this is racy because the client may call methods
like getTvInputState() before the initialization.

This patch makes sure that the client gets the control when the initialization
finishes completely.

Bug: 18419452
Change-Id: I5d8141c20984013e68f2809120710c670557c9ad
2014-12-02 09:30:57 +09:00
John Spurlock
21d68f4808 Merge "Volume: Improve inline volume controls used in settings." into lmp-mr1-dev 2014-12-01 17:06:14 +00:00
Wally Yau
da39290460 Set stream volume to max when userMasterVolume is set to true.
When useMasterVolume is set, we don't want to apply the volume
attenuation twice, once at the stream mixer and once at the master
volume control. It should only be applied once at the master volume
control.

Change-Id: Id5b1cf97571733515b5680c638f11cde8824cfc0
Fixed: b/18460548
2014-11-28 12:40:30 -08:00
John Spurlock
bcc1087af4 Volume: Improve inline volume controls used in settings.
- Make the system internal ringer mode change signal available to
   other system components via a standard intent, instead of a
   volume-controller-only binder call.
 - Update sysui to use new intent for icon policy.
 - Add proper muting state to the volumizer, to look more like
   the associated volume panel slider.
 - Add basic ringer mode state tracking for the notification-ring
   slider setting.

Bug: 17899613
Change-Id: Ie2df52edb070055ef59c74039162a0e785d2fdbb
2014-11-28 15:29:21 -05:00
Jinsuk Kim
bc3226e21d Merge "Do not perform forceVolumeControlStream in master volume mode" into lmp-mr1-dev 2014-11-26 21:27:19 +00:00
Ryan Lothian
1e88cf0796 Fix broken @see javadoc in android.media.* classes
This CL fixes all android.media.* javadoc that includes an "ERROR(...)"
message when rendered to HTML.

Bug: 18537403
Change-Id: Ic60f7cfe4cf4961da163d955387d65a5d2011905
(cherry picked from commit d550f9028ee7f52018fbed3cfd2d0b18d6a7c4f0)
2014-11-26 18:49:01 +00:00
Jinsuk Kim
57d766f533 Do not perform forceVolumeControlStream in master volume mode
The method should be no-op when in master volume mode.

Bug: 18250921

Change-Id: Iaab806db935ef97aa1124c3447e228d3eaef7584
2014-11-26 17:02:18 +09:00
Andy Hung
f32d06d855 Merge "Allow set loop and position before write for static AudioTracks" into lmp-mr1-dev 2014-11-26 02:04:45 +00:00
Eric Laurent
e511ddce43 Merge "AudioService: use FEATURE_LEANBACK instead of FEATURE_TELEVSION." into lmp-mr1-dev 2014-11-25 22:28:17 +00:00
Lajos Molnar
3ed95fe258 Merge "media: add support for 160-byte image info in MediaCodec" into lmp-mr1-dev 2014-11-25 22:09:36 +00:00
John Spurlock
661f2cf458 VolumeZen: Introduce internal vs external ringer mode.
Stabilize mapping between ringer-mode=silent and zen=priority
by keeping track of two ringer modes:
 - Internal ringer mode: Used for underlying stream muting
 - External ringer mode: Reported to clients

The mapping between external ringer mode + zen is:
 - normal = all
 - vibrate = all
 - silent = priority (read-write) or none (read)

Changes include:
 - Remove "zen check" from audio service, back to audio
   service having no knowledge of zen.
 - Maintain a new external ringer mode in audio service,
   this is the ringer mode reported through AudioManager
   to callers, also mapped to the change intent.
 - Introduce a "ringer mode delegate" to the local
   audio manager interface, responsible for observing
   external / internal mode changes, and making changes
   if necessary.
 - Internal ringer mode changes are still interesting
   to the volume dialog, wire up a callback through
   the existing IVolumeController interface.
 - On devices without vibration, the mapping is the same
   but since no ringer mode change is possible, disable
   the icon toggle and remove the mute icon when volume=0.
 - On devices with vibration, volume down presses should
   pulse the vibrate icon (and vibrate) as a hint that this
   is as low as the device can go using the keys.  Since
   the mechanics are similar to the existing zen=none hint,
   pull into shared helper.
 - Log ringer mode changes to the zen log, include calling
   package information for issue diagnosis.
 - Include whether vibration is supported in the audio service
   dump.
 - Update the status bar icon policy to use the internal ringer
   mode, not the external mode (for vibrate icon).
 - Update the "Muted by <x>" logic, include current suppressor
   in dumpsys, ensure suppression icon is enabled & !clickable,
   regardless of zen mode.

Bug: 17884168
Bug: 15471679
Bug: 16824970
Change-Id: Ia7d3bb23ce6d1e37b24fb6521d1c1ab9bb8f60c0
2014-11-25 13:20:46 -05:00
Lajos Molnar
5037f945cd media: add support for 160-byte image info in MediaCodec
Some 64-bit compilers now create 160-byte image structures.

Bug: 18513091
Change-Id: I355714affaac0fde0b03578d13ab8f373dd5aa81
2014-11-24 21:54:27 -08:00
Andy Hung
78bfa6322b Allow set loop and position before write for static AudioTracks
Allow setPlaybackHeadPosition and setLoopPoints in STATE_NO_STATIC_DATA
for consistency with other setters and older Android versions (JB).

Bug: 18217633
Change-Id: Id8ada3056540c4dfcb89f8afa887159e48db0263
2014-11-24 17:29:52 -08:00
RoboErik
d9bb296b56 Merge "Delay calling onConnected until a session is set in MediaBrowser" into lmp-mr1-dev 2014-11-24 23:04:59 +00:00
RoboErik
d64c425f32 Delay calling onConnected until a session is set in MediaBrowser
This will delay all calls to onConnected from the MediaBrowserService
until a session token has been set. This also requires making it an
exception to try setting the session twice.

bug:18052336
Change-Id: Iecf186c53364183e1696af83a855c8db3294a5d0
2014-11-24 12:35:20 -08:00
Jean-Michel Trivi
958876fe55 Add support for audio focus locking
New API for a registered AudioPolicy to lock/unlock the audio
  focus stack and prevent any new grant of focus, similar to
  the way phone calls behave.

Bug 16010554

Change-Id: If34a58ca9bd43d5479e94a2a7b540750b4c6efe9
2014-11-24 10:46:12 -08:00
Lajos Molnar
a4fcb62a22 media: fix isSupportedFormat for integer frame rate
Bug: 18473065
Change-Id: I670cc043d3cb117c26921cb639ff9eecc8f14b0a
2014-11-20 16:17:43 -08:00
Jean-Michel Trivi
09ff91255e Merge "Convert record channel mask for dynamic mix" into lmp-mr1-dev 2014-11-20 22:02:15 +00:00
Jean-Michel Trivi
8dc1031453 Convert record channel mask for dynamic mix
When creating the AudioRecord instance for a dynamic mix, convert
  the output channel mask of the mix to an input channel mask
  to be used by the AudioRecord instance through which the
  mixed audio is rerouted.

Bug 16009464

Change-Id: I3addbe85339f6f06b69acc3f9b8e2a765e5d7305
2014-11-20 12:53:23 -08:00
Jae Seo
f66f3052a7 Merge "TIF: implement gatherTransparentRegion() and dispatchDraw() in TvView." into lmp-mr1-dev 2014-11-20 19:03:03 +00:00
Jae Seo
52bfa3328f Merge "TIF: enhance documentation for TvInputManager.getAvailableStreamConfigs()" into lmp-mr1-dev 2014-11-20 18:52:16 +00:00
RoboErik
ac4af18bbb Merge "Handle volume events on master volume devices correctly" into lmp-mr1-dev 2014-11-20 17:59:14 +00:00
RoboErik
b9c87fb403 Scale bitmaps in metadata sent to the system
This scales down any MediaMetadata bitmaps that are sent to the system
through MediaSession.

bug:18114918
bug:18084448
Change-Id: Ib7b040cd8245108ad2dd56afe2499290d2b49f51
2014-11-19 17:27:43 -08:00
Dongwon Kang
5f3cb4a584 TIF: implement gatherTransparentRegion() and dispatchDraw() in TvView.
Background: because the hole-punching code lives only in SurfaceView,
the overlay view can be covered by the application if the TV input
changes the position of SurfaceView via Session.layoutSurface().
This change punches a hole as large as TvView so that the underlying
overlayview can be shown properly.

Bug: 18420642
Change-Id: If9a829367083ce2002a4c4a4e4a4bbb623f7ad96
2014-11-19 20:27:55 +09:00
Eric Laurent
0b03f9909b AudioService: use FEATURE_LEANBACK instead of FEATURE_TELEVSION.
Bug: 18271714.
Change-Id: I2fa6f44ef991aec5a980d70f698813468e7540c6
2014-11-18 18:08:02 -08:00
RoboErik
519c7744b5 Handle volume events on master volume devices correctly
We weren't passing volume events to the master volume correctly on
devices that only use a master volume. This fix checks if the device
only has a master volume and adjusts the master volume instead of the
stream's volume if that's the case.

bug:18305790
Change-Id: Iec35e0a7dc59e6d73c9dfc88da324660bb15b1f3
2014-11-18 11:00:34 -08:00
Jae Seo
3a9a53cb75 Merge "TIF: make the tune request handling more efficient" into lmp-mr1-dev 2014-11-18 18:01:47 +00:00
John Spurlock
95ef08b348 Volume: Don't allow ringer volume of 0 exiting ringer mode.
For any device with vibration, not only voice-capable devices.

Bug: 18423530
Change-Id: I0f1a7df884d675e6bc6854dcf044426c07f3d2f7
2014-11-18 10:51:39 -05:00
Dongwon Kang
c918172508 TIF: make the tune request handling more efficient
- Clear the pending tune operations to handle consecutive tune requests
  efficiently.
- Add time out for onTune() to make developers not to handle whole tune
  process in the onTune() method.

Bug: 18179595
Change-Id: I571e55b78d7c4d17c7237c5ce70203941bec2130
2014-11-18 15:49:08 +09:00
Jeff Sharkey
628d2606f7 Merge "Move ringtone redirection to MediaPlayer." into lmp-mr1-dev 2014-11-13 22:16:15 +00:00
Jeff Sharkey
3b566b8470 Move ringtone redirection to MediaPlayer.
Way back in API 1 we defined Settings.System.DEFAULT_NOTIFICATION_URI
which redirects through SettingsProvider before finally ariving at
the real underlying ContentProvider, usually MediaStore.

With new SELinux rules, we're no longer allowing the system_server
to hold open FDs to shared storage devices, which causes these
proxied openFile() calls to fail.

To work around this, teach MediaPlayer to resolve the final ringtone
Uri without going through the system.

Bug: 18226181
Change-Id: I40c68617c952c0bb3e939e5084f5b68a35e31ae3
2014-11-13 13:52:41 -08:00
Jean-Michel Trivi
136f54153e Merge "Support for delayed audio focus" into lmp-mr1-dev 2014-11-13 18:47:34 +00:00
Mike Lockwood
9c803fa526 MTP: Update JNI for new packet getters
Bug:18113092
Change-Id: I5d7473af1b57235fbc078c297a309e4a301c9fbd
2014-11-13 09:40:42 -08:00
Wonsik Kim
90e733385d TIF: enhance documentation for TvInputManager.getAvailableStreamConfigs()
Bug: 18283466
Change-Id: Ibb5d45c02a327e0b3e837ad3ec3603fa1623ff7b
2014-11-12 05:45:03 +00:00
Jean-Michel Trivi
fd6ad747e6 Support for delayed audio focus
New internal API for an audio focus requester to always enter
 the audio focus stack even if audio focus can't be granted
 immediately (e.g. during a phone call).
Remap the "no delay" interface to the new "requestAudioFocus"
 method signature and AIDL.

Bug 16010554

Change-Id: Iff91ddb0beb411cca1f8cf98300a9afc4178dc7f
2014-11-11 17:07:45 -08:00
Chong Zhang
00795e9edd Merge "return error MEDIA_ERROR_UNSUPPORTED when Range request fail" into lmp-mr1-dev 2014-11-11 18:33:21 +00:00
Chong Zhang
8976a0954c return error MEDIA_ERROR_UNSUPPORTED when Range request fail
Bug: 18235751
Change-Id: I4631daf50bb76b70dd740c45b628294ad1aa45e1
2014-11-10 19:32:28 -08:00
Dan Stoza
d17793ea2a Merge "Add a BufferItem parameter to onFrameAvailable" into lmp-mr1-dev 2014-11-07 19:44:34 +00:00
Jason Parks
220b65d21d am 94c3e3bf: Merge "Fix NPE for CTS." into lmp-sprout-dev
* commit '94c3e3bfcfe8d91283560082c737cb62e8d06742':
  Fix NPE for CTS.
2014-11-07 00:05:47 +00:00
RoboErik
b1d52e1d20 Merge changes If4c38bfe,Id9878186 into lmp-mr1-dev
* changes:
  Update metadata artwork and uri docs
  skip MediaController callbacks if it's been unregistered
2014-11-06 21:20:19 +00:00
Jason Parks
de709869ae Fix NPE for CTS.
The effect list can be empty and will return null
from native code. This fixes the CTS crash.

Bug: 18256010
Change-Id: Ifa552efc9de216993427115c001c7071c90403f1
2014-11-06 14:08:52 -06:00
RoboErik
a13846ddf3 Update metadata artwork and uri docs
This updates the Javadoc on the bitmap and uri fields to strongly
suggest Uris be used for high res artwork and strongly suggest Uris
use the content: style and support EXTRA_SIZE.

Change-Id: If4c38bfec20d049473457784b1b56fa4d78abe5e
2014-11-06 10:55:06 -08:00
Jeff Tinker
fc4e6f70f6 Merge "Add missing secure stop methods" into lmp-mr1-dev 2014-11-06 02:33:23 +00:00
Eric Laurent
e43bf0821b Merge "AudioEffect JNI: use new max preprocessing constant" into lmp-mr1-dev 2014-11-05 22:02:54 +00:00
RoboErik
3e0cfcda31 skip MediaController callbacks if it's been unregistered
This gives slightly better gaurantees around when an app will receive
a callback. As long as they remove a callback on the same thread calls
get posted on they won't receive any callbacks after the remove.

bug:18104724
Change-Id: Id9878186f005bf0b35c0380cd35f8fd7e67d1d90
2014-11-05 13:07:38 -08:00
Andrew Solovay
fbc3bdec7a am 56576838: am d9ceae8f: Merge "docs: Removed broken link to non-existent method." into lmp-docs
automerge: 8d7d7b4

* commit '8d7d7b448f2df7e4fdff6a3ca890b32b83075ead':
  docs: Removed broken link to non-existent method.
2014-11-05 20:22:24 +00:00
Eric Laurent
b27a8a5bcc AudioEffect JNI: use new max preprocessing constant
Bug: 18226810.
Change-Id: Ica5677da247268306b34dfce38f25394586817fd
2014-11-05 12:20:49 -08:00
Andrew Solovay
8d7d7b448f am 56576838: am d9ceae8f: Merge "docs: Removed broken link to non-existent method." into lmp-docs
* commit '56576838a8e8c4f44f8df13cc40295a918540b86':
  docs: Removed broken link to non-existent method.
2014-11-05 18:52:27 +00:00
RoboErik
9af44ddf03 Merge "Post volume requests to the handler thread in MediaSession" into lmp-mr1-dev 2014-11-05 18:29:32 +00:00
RoboErik
5604a85ac6 Merge changes Ia3bc5b0d,I26e662ff into lmp-mr1-dev
* changes:
  Add extras to the PlaybackState
  Add setRatingType to MediaSession
2014-11-05 18:26:00 +00:00