5805 Commits

Author SHA1 Message Date
Glenn Kasten
540c35f7aa Merge "Track volume cleanup" 2012-01-18 07:46:18 -08:00
Bryan Mawhinney
c14cc17972 Make sure seek triggers a reconnect if needed.
Previously, if we had disconnected at the high watermark,
the read immediately following a seek would fail, and would
not be retried, resulting in an error.

Change-Id: I45a53563fe17d6b54893815abc7750a7dfb0a124
2012-01-18 13:43:16 +00:00
Martin Storsjo
4054856dad stagefright aacenc: Add const declarations to some pointers
This avoids some compilation warnings.

Change-Id: Ia89ab94020a9f1ee4c1df48823fb89325cca7d36
2012-01-18 08:16:42 +02:00
Eric Laurent
1be4afecb7 Merge "audio framework: manage stream volume per device" 2012-01-17 17:35:03 -08:00
Glenn Kasten
0632bad8ba Track volume cleanup
Always read and write track volumes atomically. In most places this was
already being done, but there were a couple places where the left and
right channels were read independently.

Changed constant MAX_GAIN_INT to be a uint32_t instead of a float.
It is always used as a uint32_t in comparisons and assignments.
Use MAX_GAIN_INT in more places.

Now that volume is always accessed atomically, removed the union
and alias for uint16_t volume[2], and kept only volumeLR.

Removed volatile as it's meaningless.

In AudioFlinger, clamp the track volumes read from shared memory
before applying master and stream volume.

Change-Id: If65e2b27e5bc3db5bf75540479843041b58433f0
2012-01-17 16:25:17 -08:00
Glenn Kasten
cc2302d82e Move memcpy_to_i16_from_u8 to audio_utils
This will make it easier for this kind of code to be optimized
for each target architecture.

Change-Id: I9efd27d6c0175b00b9a784353244805cec63c0b8
2012-01-17 15:15:06 -08:00
Eric Laurent
9bc8358dda audio framework: manage stream volume per device
Improve volume management by keeping track of volume for each type
of device independently.
Volume for each stream (MUSIC, RINGTONE, VOICE_CALL...) is now maintained
per device.

The main changes are:
- AudioService now keeps tracks of stream volumes per device:
 volume indexes are kept in a HashMap < device , index>.
 active device is queried from policy manager when a volume change request
 is received
 initalization, mute and unmute happen on all device simultaneously
- Settings: suffixes is added to volume keys to store each device
volume independently.
- AudioSystem/AudioPolicyService/AudioPolicyInterface: added a device argument
to setStreamVolumeIndex() and getStreamVolumeIndex() to address each
device independently.
- AudioPolicyManagerBase: keep track of stream volumes for each device
and apply volume according to current device selection.

Change-Id: I61ef1c45caadca04d16363bca4140e0f81901b3f
2012-01-17 15:15:04 -08:00
Glenn Kasten
aa967521c3 Move fixed_fft to system/media/audio_utils
Change-Id: If8a03911434862a872539c313f54825ffb2cc672
2012-01-17 11:59:35 -08:00
Glenn Kasten
fb6b5bdcea Merge "Use audio_mode_t consistently" 2012-01-17 11:32:53 -08:00
Glenn Kasten
55fa4fb4a7 Rename Visualizer::mLock
This avoids confusion with parent class AudioEffect's mLock which is
protected.

Change-Id: I2ae0b0869fe3c606f682252973795b34477951d0
2012-01-17 10:06:38 -08:00
Glenn Kasten
8c17a2f088 Merge "Use size_t for frame size" 2012-01-17 07:27:46 -08:00
Glenn Kasten
3c6b9cca79 Merge "Use audio_stream_type_t consistently" 2012-01-17 07:25:36 -08:00
Glenn Kasten
dd3ca2e268 Merge "AudioTrack and AudioFlinger send level cleanup" 2012-01-17 07:18:26 -08:00
Dongwon Kang
a8854b2b74 MatroskaExtractor: to support MPEG4 and MP3 codec.
Change-Id: Ic7ffb3ed394b233336fbf2a7b2627ee27033a59e
2012-01-15 13:18:51 +09:00
Dongwon Kang
33faba0ac3 AVIExtractor: adding a H264 fourCC which is also specified in the reference.
(H264 code can be found avi file which is encoded with FFmpeg.)

Change-Id: Id9eccd4580443f42b2afa491c94ac2c2faa37f87
2012-01-15 12:06:40 +09:00
Glenn Kasten
4790bd8be8 AudioTrack and AudioFlinger send level cleanup
Add an API to control block for getting/setting send level.
This allow us to make the mSendLevel field private.

Document the lack of barriers.

Use 0.0f to initialize floating-point values (for doc only).

Change-Id: I59f83b00adeb89eeee227e7648625d9a835be7a4
2012-01-13 15:25:14 -08:00
Glenn Kasten
faf354dc7f Use size_t for frame size
except in the control block, where we don't have room.

In AudioFlinger::ThreadBase::TrackBase::getBuffer,
read the frame size from control block only once.

Change-Id: Id6c4bccd4ed3e07d91df6bbea43bae45524f9f4e
2012-01-13 14:58:44 -08:00
David 'Digit' Turner
d615f34b56 Merge "media/mtp: Add missing LOCAL_C_INCLUDES" 2012-01-13 14:32:50 -08:00
Jean-Baptiste Queru
134a683565 am c0ef548c: am d75961ee: am b4cee0f8: Merge "stagefright aacenc/amrwbenc: Remove trailing whitespace"
* commit 'c0ef548c748f0c3bc917eff7b50941f9cbe1df86':
  stagefright aacenc/amrwbenc: Remove trailing whitespace
2012-01-13 11:28:09 -08:00
Jean-Baptiste Queru
c0ef548c74 am d75961ee: am b4cee0f8: Merge "stagefright aacenc/amrwbenc: Remove trailing whitespace"
* commit 'd75961eecbfeb3f7e027a2a1f6011a26dd7d2d2d':
  stagefright aacenc/amrwbenc: Remove trailing whitespace
2012-01-13 11:25:09 -08:00
Martin Storsjo
d7bbc3d41a stagefright aacenc: Properly terminate a comment
This avoids a warning about /* within a comment.

Change-Id: I9079909734d35db5ab0fd54b46173d7a1848d0c9
2012-01-13 21:21:51 +02:00
Martin Storsjo
5ab5e003b7 stagefright aacenc: Fix an inline asm constraint
Output-only parameters should use =r or =&r constrains, never +r.

This avoids a warning about the variable 'result' being used
uninitialized.

This avoids loading the uninitialized value into the register,
before it is overwritten by the multiplication.

Change-Id: I0ef6179e133c35d290feb8e12bea180ecae11a05
2012-01-13 21:20:03 +02:00
Mans Rullgard
5433616a0e stagefright aacenc: Fix inline asm
- don't write input-only registers
- use temp variables instead of hardcoded regs
- don't build constants manually, specify as asm inputs
- remove unnecessary volatile qualifiers

Change-Id: I3b9bb2d30768bcf409dc478bde4489135eeb50d7
2012-01-13 21:16:12 +02:00
Mans Rullgard
e7e3c5c272 stagefright aacenc: Fix inline asm constraints
Output-only parameters should use =r or =&r constrains, never +r.

This fixes a lot of warnings about the variable 'result' being
used uninitialized.

Change-Id: Ie689fce8c6ecd874d4fc66e87687c67551d9ab6a
2012-01-13 21:16:08 +02:00
Martin Storsjo
84b5a370e3 stagefright aacenc: Zero-initialize a struct
This avoids using uninitialized data in some cases, according
to valgrind.

Change-Id: I2eb5242b93c4d83a1cf6a15f022ec9579e0742a4
2012-01-13 21:09:06 +02:00
Martin Storsjo
75261fa150 stagefright aacenc: Fix type definitions for 64 bit platforms
Also don't require LINUX to be defined, enable the MSVC typedefs
only within _MSC_VER.

This fixes a lot of warnings about dereferencing pointer 'winPtr'
breaking strict aliasing rules.

Change-Id: I4afbe0ed81295ebe6e5ee2c7f0fb0cc2dc83c89b
2012-01-13 21:05:56 +02:00
Martin Storsjo
51a50f01b5 stagefright aacenc: Don't address a Word32 with a Word16 pointer
Currently, a pointer to a Word32 is used as a pointer to Word16, which
doesn't work as intended on big endian architectures.

This change needs to be analyzed and tested properly so that it doesn't
cause issues with overflows in these variables. Another solution would be
to change all the scf arrays to 32 bit instead.

Change-Id: I53d9eb83bdaf8d3b1530eb5064dd10b08bce737a
2012-01-13 20:57:27 +02:00
Martin Storsjo
656bb978b3 stagefright amrwbenc: Make the mem_malloc function 64-bit safe
Change-Id: Iab0dbfdc6be09c62d353bee46596635686b784a6
2012-01-13 20:57:09 +02:00
Martin Storsjo
d24a8f7c0a stagefright aacenc: Make the bits to write in WriteBits unsigned
They shouldn't, as far as I know, ever be a signed value.

Change-Id: I64429c7c0b2b52bec768a04d3c3eb0eb252955fa
2012-01-13 20:56:54 +02:00
Martin Storsjo
17510c1b4e stagefright aacenc: Add missing newlines at the end of files
This avoids compiler warnings about missing newlines.

Change-Id: Ieb2bb7152d794dca47c629588879032d3ba65677
2012-01-13 20:56:42 +02:00
Martin Storsjo
9f26d4c4d1 stagefright aacenc: Simplify the definition of __inline
This reduces the amount of ifdefs needed, into something that
works on both gcc and MSVC. This removes one occurrance of the
LINUX ifdef, simplifying compiling on various platforms.

Change-Id: I1e2af6c2517410dc280197ba922df877cf7afbd5
2012-01-13 20:56:33 +02:00
Glenn Kasten
bc1d77b6cb Use audio_stream_type_t consistently
At native level it was a mixture of audio_stream_type_t, int, uint32_t,
and uint8_t.  Java is still int.  Also fixed a couple of hard-coded -1
instead of AUDIO_STREAM_DEFAULT, and in startToneCommand a hard-coded 0
instead of AUDIO_STREAM_VOICE_CALL.

Change-Id: Ia33bfd70edca8c2daec9052984b369cd8eee2a83
2012-01-13 10:20:14 -08:00
David 'Digit' Turner
3203f2af94 media/mtp: Add missing LOCAL_C_INCLUDES
One of the source files here is including <cutils/tztime.h> which
itself includes <bionic_time.h>, a private C library header used
to define the strftime_tz() extension (which used to be declared
in <time.h> but was moved there instead).

Add a missing C include path to let our code compile as usual.

Change-Id: I6aac2f1d3d15ad182679c81ff3f4febff74eb671
2012-01-13 14:21:42 +01:00
James Dong
b5c6ff5993 Merge "Separate sniffing from session initialization" 2012-01-12 16:56:58 -08:00
James Dong
d1ba6ed945 Separate sniffing from session initialization
This avoid lengthy/duplicate sniffing for drm plugins when a decrypt session is opened

o The change is backward compatibile in that no update is required
  for existing drm plug-ins if they do not plan to provide separate
  sniffer/extractor

related-to-bug: 5725548

Change-Id: I7fc4caf82d77472da4e2bc7b5d31060fb54fd84c
2012-01-12 16:25:12 -08:00
Glenn Kasten
1c66547ba2 Merge "Use audio_format_t consistently" 2012-01-12 10:30:28 -08:00
Glenn Kasten
accb114e59 Use audio_mode_t consistently
It was int or uint32_t.
Also make getMode() const.

Change-Id: Ibe45aadbf413b9158e4dd17f2b3bcc6355288d37
2012-01-12 09:52:37 -08:00
Marco Nelissen
3fbc0b2062 Merge "MediaScanner: Disable bulk insert for settings" 2012-01-12 07:49:23 -08:00
Mans Rullgard
62a62ef415 stagefright aacenc/amrwbenc: Remove trailing whitespace
This was applied in AOSP master earlier, in commit
b21611e5b0f1797e39e781d91ade023bac87637f, but when merged
into the Google internal tree in
88c2d4d26d79384f32a25bd775cf873cb678b12a, none of these
changes have been brought in. (The diff of this merge commit
and its first parent, d94b71d, is empty.)

Therefore, reapply the rest of these changes on the files
that still are present in the current version.

Change-Id: I645a9b9134769958a11808a06163123d28d83e46
2012-01-12 11:14:04 +02:00
Glenn Kasten
80f3fc2cb6 libmedia new can't fail on Android
Change-Id: Ie79dd5abb8078b35474bf0f1b3a6ff994a3a3360
2012-01-11 12:27:41 -08:00
Glenn Kasten
a89226c786 Merge "Fix race in AudioSystem::getInputBufferSize" 2012-01-11 11:40:27 -08:00
Glenn Kasten
c57b063192 Merge "Fix bug in JetPlayer::loadFromFile" 2012-01-11 11:39:06 -08:00
Glenn Kasten
1eac460122 Merge "Simplify range check for audio_mode_t" 2012-01-11 11:38:21 -08:00
Eric Laurent
cc598b2b8b am 05985a2e: am c15cf3d2: Merge "stagefright: limit audio gap for looped playback" into ics-mr1
* commit '05985a2e2ae5c21fbf69d2884c59ea475fce7f6d':
  stagefright: limit audio gap for looped playback
2012-01-11 11:14:30 -08:00
Glenn Kasten
f733831fc7 Merge "Declare IAudioTrack methods in binder opcode order" 2012-01-11 10:23:34 -08:00
Glenn Kasten
1ea8a35197 Merge "Fix missing tag in mediaserver ServiceManager: log" 2012-01-11 10:22:45 -08:00
Sungsoo Lim
6c4c155696 MediaScanner: Disable bulk insert for settings
Since the settings (notifications, ringtones, and alarms) request
rowId after inserting into DB, do not use bulk insert for them.
(Bulk insert does not return the rowId)

Change-Id: I8faf993f8ac2da96672594a1c92ddc917f964d6f
2012-01-11 11:34:20 +09:00
Glenn Kasten
81801adc14 Fix race in AudioSystem::getInputBufferSize
It was caching the recording parameters without a mutex.

Change-Id: Ic4b9f621cbc080d224c2233cf3ca3454fc0f19bd
2012-01-10 15:43:48 -08:00
Glenn Kasten
77b6aaf62d Fix bug in JetPlayer::loadFromFile
A long pathname would corrupt the heap due to incorrect use of strncpy.

Also was using hard-coded constant 256 instead of PATH_MAX.

Change-Id: Iba382bbb38624fbc41fec91449f9814f77d4ac0d
2012-01-10 15:43:24 -08:00
Glenn Kasten
01aaf2c401 Simplify range check for audio_mode_t
AudioSystem::setMode previously allowed negative modes, but these were
then rejected by AudioFlinger.

Now negative modes (including AUDIO_MODE_INVALID and AUDIO_MODE_CURRENT)
are explicitly disallowed.

Change-Id: I0bac8fea737c8eb1f5b6afbb893e48739f88d745
2012-01-10 15:42:32 -08:00