2418 Commits

Author SHA1 Message Date
Marco Nelissen
1632fae376 Make setServer() safe to call multiple times
This makes it safe to call setServer() multiple times with the same
server, different servers, or null.

b/13622801

Change-Id: Id04440df720f830e67106eb543653ace42430d97
2014-03-27 13:25:14 -07:00
Jean-Michel Trivi
dda1c4040c Continue refactoring MediaFocusControl
Rename MediaController to PlayerRecord.

Change-Id: Icf474b4107649f501341309bf7ec520aa1e71586
2014-03-25 17:25:25 -07:00
Jean-Michel Trivi
7d3168cef2 Continue refactoring of MediaFocusControl
Move RemoteControlClient death handler and remote playback state
 inside MediaController class.
Make MediaController data fields private. Document which accessors
 can be removed once the audio focus and media button receiver
 mechanisms are dissociated.

Change-Id: Icd14fb0d99bf74512c8f8552d124c0353ce1f06d
2014-03-25 16:27:23 -07:00
Jean-Michel Trivi
223fd631f6 Continue refactoring of MediaFocusControl
Close external access to MediaFocusControl event handler.

Change-Id: Id82718399806c246b5ac2cb3b49189286dcd8e89
2014-03-25 12:43:58 -07:00
Jean-Michel Trivi
de23f56360 Begin refactor of MediaFocusControl
Extract class that handles each entry in the remote control stack
  and move it to another file, MediaController.java.
Rename RemoteControlStackEntry to MediaController as each instance
  will not just encapsulate information about the corresponding
  (if any) RemoteControlClient.
This is just a CL for the renaming and extraction into a new file
  of existing code. Obvious required changes are labelled "FIXME".

Change-Id: Ifbdac1d70e4d279ab175eef03e9d792d44873c51
2014-03-25 10:47:58 -07:00
Jean-Michel Trivi
e10dd634e1 Merge "AudioTrack write from ByteBuffer updates position" 2014-03-21 16:49:55 +00:00
Jean-Michel Trivi
5d21f679c5 AudioTrack write from ByteBuffer updates position
Remove offset parameter.
Update buffer position when data is successfully written.

Bug 7919023

Change-Id: I1701532ef0a91e2ccecfc38b24de29bc4f64d035
2014-03-21 09:24:26 -07:00
Colin Cross
5e8ff02ec9 MediaHTTPConnection: use jlong to store native pointer
Change-Id: Ic4f391a8e658498e63c26ea2af4c7413ed387360
2014-03-19 17:28:42 -07:00
John Spurlock
1af30c7ac4 Add stream-level suppression to vibrate/audio services.
- Add new audio restriction layer to app-ops.  Restrictions add
additional constraints to audio operations at a stream-level.
Restrictions do not affect the persistable state, and are purely
additive: that is, they can only impose additional contstraints, not
enable something that has already been disabled.  Restrictions
also support a whitelisted set of exempt package names.

- Add new audio stream-level checks to app-ops.

- Implement a provisional OP_PLAY_AUDIO suppression to three
java entry points MediaPlayer, AudioTrack, & SoundPool.

- Enhance vibrator api to take stream information as an optional
hint - the constants correspond to AudioManager stream types.
OP_VIBRATE now supports the stream-level restriction check.

- Simplify Vibrator subclasses by adding default implementations
for two .vibrate calls.

- Migrate NoMan's zen-mode control to use the new app-ops
stream-level restriction mechanism.

Change-Id: Ifae8952647202f728cf1c73e881452660c704678
2014-03-19 15:32:51 -04:00
Mike Lockwood
92b53bc2dd MTP: Add support for some audio specific object properties
This stops Windows 7 from putting up the
"Your device might not be able to play or view this file" dialog
when copying MP3 files to the device.

Bug: 3195286
Change-Id: Ic5b3fb75309893caae1a4f4b56068a543847f1f7
2014-03-13 15:15:26 -07:00
RoboErik
4224e83642 Merge "Adds a TransportController and TransportPerformer to session" 2014-03-12 22:14:50 +00:00
RoboErik
8ae0f34db9 Adds a TransportController and TransportPerformer to session
This makes transport controls a primitive interface on sessions with
a way to create the performer, register callbacks, and send commands
and updates between controllers and performers. This still needs some
cleanup but has been tested with OneMedia.

Change-Id: I373d35f7ccc383b8421bd14044457467d80425f3
2014-03-12 15:09:42 -07:00
Mike Lockwood
5b568aa04a Merge "MTP: Add support for battery level device property" 2014-03-12 17:58:05 +00:00
Mike Lockwood
56c85244b9 MTP: Add support for battery level device property
Bug: 7342482

Change-Id: I810e55fe9695e2206816f57334ad14f65e9c641d
2014-03-12 08:46:47 -07:00
Jean-Michel Trivi
7ca2b89585 Merge "AudioTrack write method with data in ByteBuffer" 2014-03-11 17:12:59 +00:00
Jean-Michel Trivi
7ca0452fa6 AudioTrack write method with data in ByteBuffer
New write method with data in ByteBuffer. Allows blocking and
 non-blocking write.
If the ByteBuffer is not direct, the implementation uses the
 existing implementation with a byte array.

Bug 7919023

Change-Id: I6935e3e05783d7d7672614b194941a87abbb50cf
2014-03-11 01:34:03 +00:00
Lajos Molnar
7246fa5610 MediaPlayer: fix int overflow issue in MediaTimeProvider
Bug: 13394783
Change-Id: I228ded5cf198852fda867d136cd8b1aacd8b6584
2014-03-10 17:23:45 -07:00
Robert Shih
f0768d71bd Merge "MediaMuxer: added WebM filetype; open output file RW." 2014-03-10 19:02:34 +00:00
RoboErik
8fb4cf1ef4 Merge "Move Session apis to android.media.session" 2014-02-26 18:13:35 +00:00
RoboErik
2f5b057da7 Move Session apis to android.media.session
This is to make it easier to distinguish the new apis from the old
ones.

Change-Id: Ic5eaf65e8bd054a844f87b9118c4bb18f30ac8a7
2014-02-25 16:01:55 -08:00
Chong Zhang
8440a33b25 Merge "support time lapse/slow motion on SURFACE source" 2014-02-24 17:52:01 +00:00
Marco Nelissen
6e89ddc046 Add method to get redirected Uri
Change-Id: I32c35e1cae89ee1106e8eabff0a4673af8cf57cd
2014-02-21 12:00:42 -08:00
RoboErik
5f105a1efb Another javadoc fix
Change-Id: I7a569a1583f87153f68d492a7500ffceac2ed3ae
2014-02-19 17:33:14 -08:00
RoboErik
9524ed59a4 Fix build (bad javadoc reference)
Change-Id: Ifddab9f61fda81858ab429bbd2ec9d0821577c23
2014-02-19 17:07:18 -08:00
RoboErik
3328868544 Merge "Initial round of MediaSession APIs" 2014-02-20 00:25:10 +00:00
RoboErik
01fe661ae5 Initial round of MediaSession APIs
This is far from complete but puts the basic components in place
for an app to interact with media sessions.

Change-Id: Icfe313f90ad76ae56badbe42b0e43fc5f68db36f
2014-02-19 13:41:37 -08:00
Marco Nelissen
d5a579765e Fix regression
Don't crash if an item is inserted without a slash in its path.
b/13076381

Change-Id: I5cde2adaa038201e0692af3c8ca92540ce75f083
2014-02-18 16:06:38 -08:00
Chong Zhang
daa98ca8d7 support time lapse/slow motion on SURFACE source
- pass time between capture as us, in high fps case ms could
  be inaccurate

- add test cases in MediaRecorderTest for time lapse/slow motion

Bug: 13032650

Change-Id: I34ecc3b39e0519753f74ae42afcaeeddfff1666a
2014-02-14 15:53:25 -08:00
Andy McFadden
cdf1d1895a Update createInputSurface() doc
The Surface returned by MediaCodec#createInputSurface() is configured
for HW_VIDEO_ENCODER by the consumer.  Accessing the Surface through
Surface#lockCanvas() sets SW_READ_OFTEN | SW_WRITE_OFTEN, and some
devices choke on the combination.

Bug 11418094

Change-Id: Ic182802386146d19b1bdecdb894c5130c563a3ed
2014-02-14 20:54:18 +00:00
Andreas Huber
f8a0c47e90 Remove no longer needed http proxy handling code, it's obsolete now
since we started to use java's HTTPConnection instead of the native
implementation.

Change-Id: I32b08480593a859e0368dbbcf8da8f25c9e08ca9
2014-02-05 11:53:40 -08:00
Andreas Huber
cb1b23b5e6 Merge "FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code" 2014-02-05 17:13:07 +00:00
Andreas Huber
d2506a5063 FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code
Change-Id: I7f6cdcfd2a28846d36d89dd5180ef20a22b03af8
2014-02-04 14:45:28 -08:00
Marco Nelissen
93a5845d1a Cache media/nomedia paths
Instead of checking all the parents of every path for presence of
a .nomedia file every time a new entry is inserted, build a cache
of paths and use that when possible.

Change-Id: I5b912fd54473db8f96d3511cbc2715e0b69dd16b
2014-02-04 12:52:10 -08:00
Robert Shih
1797dc93fb MediaMuxer: added WebM filetype; open output file RW.
Files with RW access can be memory mapped.

Change-Id: Ic5df057e6661b062e834845a19b606c8d01a0608
2014-01-29 18:32:47 -08:00
Andreas Huber
329eec5349 Fix invocation of notification callback in case the callback is modified
from a separate thread.

Change-Id: I741c1f2f9c796ec977a742a69cedcca10c5218ad
2014-01-27 16:30:09 -08:00
Andreas Huber
aba671392d API that allows usage of MediaCodec APIs without polling.
Change-Id: Iebccdd3aec74a2cfa9ad0bf16c0c6006a3b72999
related-to-bug: 11990118
2014-01-27 10:52:18 -08:00
Andy Hung
bdf8db0828 Merge "Add "throws IOException" to MediaCodec factory methods" 2014-01-21 23:03:33 +00:00
Andy Hung
83511d2f49 Add "throws IOException" to MediaCodec factory methods
android.media.MediaCodec
(createByCodecName|createDecoderByType|createEncoderByType)
now explicitly throws IOException.

Requires changes to existing code for declaration compatibility.

Bug: 11364276
Change-Id: I105ecb7c4bd49bf803111253cd23bab161c988f9
Signed-off-by: Andy Hung <hunga@google.com>
2014-01-16 12:35:15 -08:00
Narayan Kamath
6bb5cb24b4 Resolved conflicts for merge of 28c6ec02 to master
Change-Id: Idf1cabf2694dfa13d928df944d346f5e051b6948
2014-01-16 15:49:59 +00:00
Narayan Kamath
24d63a8382 am bc0468e6: am 6f17adba: Merge "AArch64: Use long for pointers in media classes"
* commit 'bc0468e67626937300e9afd182656469463d96a1':
  AArch64: Use long for pointers in media classes
2014-01-16 07:34:43 -08:00
Glenn Kasten
0c5b62744b Merge "Unhide android.media.AudioTrack.setVolume(float)" 2014-01-15 17:58:53 +00:00
Ashok Bhat
075e9a19ce AArch64: Use long for pointers in media classes
For storing pointers, long is used in media classes,
as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: Idc4ca0124d03df7f9cef412488abafd020e5e774
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-15 13:09:27 +00:00
Glenn Kasten
4896cb59a4 Merge "Use AUDIO_SESSION_ALLOCATE instead of hard-coded 0" 2014-01-15 01:27:59 +00:00
Glenn Kasten
3e21cc8140 Unhide android.media.AudioTrack.setVolume(float)
Bug: 12534920
Change-Id: I7d7437f87f7002c42452011e347e89ddaa0bf6a5
2014-01-14 13:55:36 -08:00
Glenn Kasten
f634bc0ff5 Merge "Prepare for additional formats beyond 8-bit and 16-bit PCM" 2014-01-13 19:25:58 +00:00
Zhihai Xu
93899a5972 Merge "setAvrcpAbsoluteVolume is passed wrong unit parameter from AudioManager" 2014-01-11 01:11:45 +00:00
Zhihai Xu
2f4a2b139b setAvrcpAbsoluteVolume is passed wrong unit parameter from AudioManager
setAvrcpAbsoluteVolume is passed wrong unit parameter from AudioManager.
It cause maximize volume in Bluetooth speaker/device.
The volume expected by Bluetooth Avrcp should be from 0 to 15.
But the current volume parameter passed to Bluetooth Avrcp is from 0 to 150.
It is scaled by 10 times than the correct volume.
index = rescaleIndex(index * 10, streamType, streamTypeAlias);
Should divide the volume by 10 before pass to Bluetooth Avrcp.

bug:12495379
Change-Id: I0432f83ca4a0c134244d96b2eea14d7168e9a9ff
2014-01-10 16:44:39 -08:00
Glenn Kasten
fe834d30f4 Prepare for additional formats beyond 8-bit and 16-bit PCM
This CL does the same thing for AudioTrack,
that an earlier CL did for AudioRecord:
  > Change-Id: Ic3525f049e939bdf125d9f87ed39abd2690dcf9f

Pull out the common parts of that earlier CL and move them to new header
file android_media_AudioFormat.h.

Use the new function audioFormatToNative() to convert from Java
ENCODING_PCM_* to native AUDIO_FORMAT_*.

Use audio_bytes_per_sample() instead of hard-coding the size of various formats.

Use size_t for memory sizes.

Change-Id: I7992dd6a2c9500126a6d7ae5fc1ed9f3312962d6
2014-01-10 10:50:22 -08:00
Narayan Kamath
c975437ef3 am 1e3395c7: am 105b545e: am 0dce19ca: am 79ceb53a: am c58abeea: Merge "AArch64: Use long for pointers in MTP classes"
* commit '1e3395c7378a7dd293a2e8a8ac8fbf239adbad0c':
  AArch64: Use long for pointers in MTP classes
2014-01-07 13:10:19 +00:00
Narayan Kamath
819f2e1234 am 510616d2: am bec733af: am 23ebc24e: am 08467c57: am 9bc6acf2: Merge "AArch64: Use long for pointers in VideoEditor classes"
* commit '510616d215372e59e5e8c39b8de1125fc5b54c60':
  AArch64: Use long for pointers in VideoEditor classes
2014-01-07 13:10:14 +00:00