2229 Commits

Author SHA1 Message Date
Alan Viverette
7fe420f31b Fix caption rendering
Fixed rendering of captions in regions and incorrect caption width
measurement. Removes minimum-difference line wrapping, since the
results weren't consistent with StaticLayout's rendering.

BUG: 10917766, 10822229
Change-Id: I55ef28cbf383fd6b945c0be62e440781288364f1
2013-09-25 12:35:00 -07:00
Jean-Michel Trivi
80e8a28c33 Merge "Fix artwork not received in RemoteController metadata update." into klp-dev 2013-09-24 23:37:22 +00:00
Lajos Molnar
566d6b6534 Merge "WebVttRenderer: allow BOM at beginning of a WebVTT file." into klp-dev 2013-09-24 18:37:12 +00:00
Lajos Molnar
283fe37aa2 WebVttRenderer: allow BOM at beginning of a WebVTT file.
This is part of the spec.

Change-Id: I61ccc259c0b9d3a2bc4273925665d107b0c89c62
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 10900755
2013-09-24 10:13:43 -07:00
Jean-Michel Trivi
6d298811ef Fix artwork not received in RemoteController metadata update.
Regardless of the artwork value, always update the metadata.

When updating the metadata, make sure the artwork is stored
 in the artwork field, not in the bundle of the MetadataEditor.

Bug 10862527

Change-Id: Iec83fd9bb358a91c852099b30bb6d307a52a034c
2013-09-23 18:34:23 -07:00
Jean-Michel Trivi
01b5743aee Public API for peak and RMS monitoring through the Visualizer effect
Public API to extend the capabilities of the Visualizer audio
  effect with measurements of peak and RMS values.

Bug 8413913

Change-Id: Ifc6646e013ec55fde3523fab685add1d043f1272
2013-09-23 16:41:53 -07:00
Jean-Michel Trivi
badca26cb2 Add audio level monitoring capabilities in Visualizer effect
Extend the visualizer audio effect with the capability to query
 peak and RMS values for the currently playing audio.
Values are expressed in mB and are retrieved as an array of
 int values in the native layer, and written directly as
 object fields for the JNI.

Bug 8413913

Change-Id: I808075a18e61f85c566544a2bdaae10e5c4a644b
2013-09-23 14:03:39 -07:00
Jean-Michel Trivi
1608f496a3 Merge "Public API for RemoteController" into klp-dev 2013-09-19 15:49:40 +00:00
Jean-Michel Trivi
a83487e8c6 Public API for RemoteController
Public API, under system|signature permission for access to
  currently playing metadata and playback state.
Public API for sending media key events.

Bug 8209392

Change-Id: I39b9309ca3fb1bc305492bad98740df0ae0842b2
2013-09-18 18:12:51 -07:00
Zhijun He
bf143ff195 Merge "ImageReader: disable NV21 support" into klp-dev 2013-09-18 17:49:30 +00:00
Zhijun He
4eda9f5359 ImageReader: disable NV21 support
Bug: 10787131
Change-Id: I5ff0a67144b5ec49eabde6129423a41c9597c2b8
2013-09-18 10:30:50 -07:00
Lajos Molnar
b84624571b Merge "Misc. media API changes" into klp-dev 2013-09-18 17:20:08 +00:00
Lajos Molnar
e23ce3b1fc Merge "Add CaptioningManager listener Subtitle support." into klp-dev 2013-09-18 16:46:39 +00:00
Jesse Hall
11c9201240 Merge "Fix ImageReader onImageAvailable synchronization" into klp-dev 2013-09-18 03:32:17 +00:00
Jean-Michel Trivi
f841d70155 Fix javadoc in RemoteControlClient and MediaMetadataEditor
Change-Id: Ibd333d9cb47e74c4ca1d8ec7bd950224d81783b0
2013-09-17 19:13:55 -07:00
Lajos Molnar
8a39021dfa Misc. media API changes
- MediaCodec.setParameter signature to take android.os.Bundle
- PARAMETER_KEY_VIDEO_BITRATE value
- comments for MediaFormat.KEY_LANGUAGE and createSubtitleFormat

Change-Id: I092e9830cb21df08b331854cbd28c758db06bc10
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 10461617
2013-09-17 19:05:37 -07:00
Jean-Michel Trivi
7ddd226e7c RemoteController class to expose IRemoteControlDisplay features
Wrap all the features of IRemoteControlDisplay.aidl in a
 new class, RemoteController, that implements the
 IRemoteControlDisplay interface.

The API functions to expose in the SDK are tagged with
 "CANDIDATE FOR API"

Bug 8209392

Change-Id: I597bcd503ac93e73889c9ae8b47b16c4fcb363bc
2013-09-18 01:47:25 +00:00
Jesse Hall
c395fffd90 Fix ImageReader onImageAvailable synchronization
This avoids a race where close() can return while there are still
onImageAvailable callbacks pending.

Bug: 10666923
Change-Id: Ic519b68f3132ceb7f95a9a42ebd1032c1638fbf5
2013-09-17 18:21:30 -07:00
Matthew Xie
c9d1d5f350 Adjust absolute volume only when the device is streaming music
The device has to be A2DP device
Remove AudioManager#avrcpUpdateVolume
bug 10681804

Change-Id: I2bc85e48fdff374638b984af593c6f1c4ddd3ee6
2013-09-17 23:48:19 +00:00
Jean-Michel Trivi
f03ceff2f5 Merge "Revise new public API for ratings in RemoteControlClient" into klp-dev 2013-09-17 22:35:08 +00:00
Jean-Michel Trivi
88183e67d4 Revise new public API for ratings in RemoteControlClient
Refactor RemoteControlClient.MetadataEditor to move functionality
 in new abstract class MediaMetadataEditor, so it can be also
 used on the "display" side of the RemoteControl functionality.
Compatibility of these changes has been tested against
 existing Play applications which use the RemoteControlClient API.

Move the new constants and method definitions related to the
 ratings feature to MediaMetadataEditor. This changes the
 yet-to-be-published ratings API, so this doesn't break
 compatibility.
Rating feature is handled by the new Rating class with a set
 of constructors that handle the different rating models.

Bug 8440498

Change-Id: I9b6dc2204bfc48594bad5cd6449d357f8a485da0
2013-09-17 15:13:00 -07:00
Lajos Molnar
d486f9656a Add CaptioningManager listener Subtitle support.
Update default track selection based on settings change.
Implement HLS track selection scheme.
This requires synchronization for subtitletrack and controller.

Change-Id: I8295956d264ab2016a83957ace37d9d7b1acde4c
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 10326117
2013-09-17 10:09:18 -07:00
Jean-Michel Trivi
c3c0b9921f Public API for LoudnessEnhancer audio effect
Follows the API style of the other audio effects

Bug 8413913

Change-Id: I1ee21b0af7d9fc565d9cdacd006684577eeb7b21
2013-09-16 18:07:02 -07:00
Jean-Michel Trivi
3fb53d8238 Merge "Loudness enhancer audio effect" into klp-dev 2013-09-17 00:52:19 +00:00
Igor Murashkin
5cf86aa756 Merge "media: Update ImageReader to remove MaxImagesAcquiredException" into klp-dev 2013-09-16 21:02:32 +00:00
Igor Murashkin
26cb5fd5ff Merge "media: Update ImageReader APIs" into klp-dev 2013-09-16 20:19:15 +00:00
Jean-Michel Trivi
d69e4e1422 Loudness enhancer audio effect
LoudnessEnhancer as android.media.AudioEffect subclass

Define UUID for loudness enhancer effect

Bug 8413913

Change-Id: If0ae6023f77ccf3aafbb55f2b3135b2ea1bb8365
2013-09-16 11:12:27 -07:00
Igor Murashkin
e3351f1942 media: Update ImageReader to remove MaxImagesAcquiredException
* acquiring images now throws IllegalStateException instead of
    MaxImagesAcquiredException

Bug: 10691447
Change-Id: I7ce68f990fb96703705b9181012a28633fea0b7a
2013-09-13 23:27:44 -07:00
Jeff Tinker
fff175aedc Merge "Part of corrections from KLP API Review: Media" into klp-dev 2013-09-14 00:16:34 +00:00
Jeff Tinker
b6f0f962d9 Part of corrections from KLP API Review: Media
b/10461617

Change-Id: Ic2e102c39428f7cef2923d00a67aec8c77cd108e
2013-09-13 15:32:08 -07:00
Igor Murashkin
5e712064df media: Update ImageReader APIs
Bug: 10461757
Change-Id: Ic04e4c41965e3d417b29004f3f08e0cd56b8f4cb
2013-09-12 16:57:57 -07:00
Lajos Molnar
24390c11b2 MediaFormat: add getInteger with default value convenience method
Change-Id: I58947a2f4a286fef74f74cb189469278056d4759
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 10326117
2013-09-12 15:35:31 -07:00
Lajos Molnar
9d48089595 Fix CalledFromWrongThreadException in MediaPlayer's subtitle support
Call selectTrack/setSubtitleWidget only from MP's looper or the
applications's event thread, which is the same for now (we only
support subtitles in VideoView.)

Change-Id: Ic1de923b801f28657f37e0330b95c321931a6960
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 10691837
Bug: 10326117
2013-09-12 15:35:31 -07:00
Lajos Molnar
03cd51cd17 Merge "MediaFormat.java: Add KEY_MAX_WIDTH and KEY_MAX_HEIGHT" into klp-dev 2013-09-12 00:19:17 +00:00
Eric Laurent
95a181397d Merge "Add HOTWORD as an AudioSource" into klp-dev 2013-09-12 00:15:31 +00:00
Chong Zhang
f8ca13b7a0 Pass subtitle track properties to SubtitleController
Bug: 10326117
Change-Id: I387406adf3e1bd835b031dd5fbd2e1cdeaf2fe87
2013-09-11 15:02:47 -07:00
Dianne Hackborn
95d785346b Fix issue #10688644: Java crash in com.android.phone:
java.lang.SecurityException: Operation not allowed

There was a situation I wasn't taking into account -- components
declared by the system has a special ability to run in the processes
of other uids.  This means that if that code loaded into another
process tries to do anything needing an app op verification, it will
fail, because it will say it is calling as the system package name but
it is not actually coming from the system uid.

To fix this, we add a new Context.getOpPackageName() to go along-side
getBasePackageName().  This is a special call for use by all app ops
verification, which will be initialized with either the base package
name, the actual package name, or now the default package name of the
process if we are creating a context for system code being loaded into
a non-system process.

I had to update all of the code doing app ops checks to switch to this
method to get the calling package name.

Also improve the security exception throw to have a more descriptive
error message.

Change-Id: Ic04f77b3938585b02fccabbc12d2f0dc62b9ef25
2013-09-11 09:59:47 -07:00
Eric Laurent
357263da0e Add HOTWORD as an AudioSource
- This is a low-priority source that can be preempted by others
- This is required for scenarios where someone wants an alway-on
  graceful microphone

Bug: 10640877.

Change-Id: Idb3577541103717cb713a7a93d3762ad2c2f4710
2013-09-10 18:03:10 -07:00
Zhijun He
82d11f8e94 Merge "MediaMuxer: Add setLocation API" into klp-dev 2013-09-10 19:41:11 +00:00
Glenn Kasten
d9f4e0cf2c Merge "AudioTrack.getTimestamp() return type is now boolean" into klp-dev 2013-09-10 16:36:23 +00:00
Zhijun He
cfd47481d1 MediaMuxer: Add setLocation API
This API could be used for camera recording when MediaMuxer is used to write
output media file.

Bug: 10594784
Change-Id: Ide2d6e1d87b246100a5def49bfb8646dc984a512
2013-09-10 07:52:25 -07:00
Glenn Kasten
596fb8e796 AudioTrack.getTimestamp() return type is now boolean
Change-Id: Ie231652dc0959343f0726dcb985b6715bfe014f6
2013-09-09 15:19:12 -07:00
Alan Viverette
013634cc44 Merge "Add WebVTT caption renderer" into klp-dev 2013-09-09 20:31:14 +00:00
Glenn Kasten
5e8f278f08 Unhide AudioTimestamp and getTimestamp
Change-Id: I56687f42f83c4be7dc3fd1baa81a13e71113f22e
2013-09-06 19:11:29 -07:00
Alan Viverette
d43daf361e Add WebVTT caption renderer
Currently missing support for region anchor points, robust layout
when snapping to lines, and vertical text.

BUG: 10260603
Change-Id: I3463b4aa0039442159144e66922d67f5dfee58ed
2013-09-06 18:06:23 -07:00
Lajos Molnar
9a4575c314 MediaFormat.java: Add KEY_MAX_WIDTH and KEY_MAX_HEIGHT
KEY_MAX_WIDTH and KEY_MAX_HEIGHT are optional video decoder
format keys.  Specify both to request seamless resolution-
change support from video decoders that support this feature.
You can check this via CodecCapabilities.isFeatureSupported.

The codecs use the MAX_WIDTH/HEIGHT values as hints for the
range of resolutions that needs to be supported.  Note,
however, that some codecs may require more memory just by
_preparing_ for larger maximum resolutions, whether or not
that resolution is actually used.

Change-Id: I00fe986ef894fec4bb39bceed081da0e88725d59
Signed-off-by: Lajos Molnar <lajos@google.com>
Related-to-bug: 7093648
2013-09-06 11:13:33 -07:00
Lajos Molnar
a67a4439ca MediaPlayer.MTP: fix issue when main thread had no looper
We fall back to using the application's main looper similarly to MP,
and even create our own looper if MP was created outside of an
application context.  Always creating our own looper is a waste
of resources.

Also resolved issue with MP.reset() when created outside of an
application context, and removed MP.MTP's unused getHandler().

Change-Id: I9c3b8a2f05a9e231ae9c008bc1a48d6b991cec1d
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 10634238
2013-09-06 08:53:20 -07:00
Glenn Kasten
04c58e9ec1 Merge "Java API for AudioTrack timestamps" into klp-dev 2013-09-04 22:29:19 +00:00
Glenn Kasten
948c2e6ff4 Java API for AudioTrack timestamps
This change adds android.media.AudioTimestamp and
android.media.AudioTrack.getTimestamp, with implementation, but hidden.

Change-Id: Ic314f04ff775baca05c57d19b5ea91133dbd0be1
2013-09-04 15:23:27 -07:00
Lajos Molnar
171c63db92 Merge "Add subtitle support to VideoView." into klp-dev 2013-09-04 21:32:43 +00:00