Bring in changes to audio flinger made to support timed audio tracks
and HW master volume control.
Change-Id: Ide52d48809bdbed13acf35fd59b24637e35064ae
Signed-off-by: John Grossman <johngro@google.com>
A regression was introduced by the change enabling per device volume:
music volume will not be completely silenced even if volume is shown at 0.
The problem is that when media volume goes to zero, silent mode is entered and
AudioService sends one message per stream/per connected device to the audiosystem
handler to mute volume on each stream. As those messages were sent with the
SENDMSG_NOOP attribute, some of them where lost.
Change-Id: Ic665b1e9dcaf09506a4ec19bf3fe6997d4b071fd
o The size of each input buffer should be less than or equal to kMaxBufferSize
o related-to-bug: 5977032
Change-Id: I04343169aac3df56694aad4ba7967ec45337ad7e
Inserts of directories can be done in bulk as long as they're inserted before
the files contained within. Extend MediaInserter to accommodate giving priority
treatment to directories.
Bulk deleting of entries can be further sped up (by a factor of ~3 in my tests)
by deleting entries in database order. Switch the file cache to use
LinkedHashMap instead of HashMap to allow iterating over the cache in database
order. Also use bindArgs to allow for better caching of sql statements.
Change-Id: Ieb9ffc4e866c6cd505bf795eb80ff5d03ffc56bd
Add support for modifying the playback rate of a MediaPlayer
by altering the sample rate of its AudioTrack.
The playback rate is expressed in permille, where 1000 is the
playback at normal speed.
Change-Id: I981d060ab32f7bae7a767e82c60c88ae635dceed
The use case for master mute is to toggle it on and off from a
KEYCODE_VOLUME_MUTE event, so this was unnecessary and prevented unmuting
in certain cases
Bug: 5724755
Signed-off-by: Mike Lockwood <lockwood@google.com>
This allows Music2 and other media apps to control master volume without changing their code
Bug: 5567694
Signed-off-by: Mike Lockwood <lockwood@android.com>
Unconditional delete for raw pointers.
Use "if (sp != 0)" not "if (sp.get() != 0)" or "if (sp != NULL)".
Use "if (raw != NULL)" not "if (raw)".
Change-Id: I531a8da7c37149261ed2f34b862ec4896a4b785b
Still needs integration with Settings (for persistence) and VolumePanel UI.
Change-Id: I9eca92c4b1ef2df2564411006a35753ab9618dce
Signed-off-by: Mike Lockwood <lockwood@android.com>
o optimize to reduce the size of the size of the ctts box
o change the type for the time offset field in ctts table entry from int32_t to uint32_t according to the mp4 file spec
o also moved away from MediaDebug and used ADebug instead.
o related-to-bug: 4232183
Change-Id: I19364303728da64359c63169eec7487508c1d0f8
Deleting entries from the database in bulk greatly speeds up the media
scanner in some cases; removing 31k entries used to take about 2 hours,
now it takes about 15 minutes.
Change-Id: Ia8f3fd6d828289e3d67178e9ad10399ded8d70d2
Other:
- add a comment to nextUniqueId
- made ThreadBase::mId const, since it is only assigned in constructor.
Change-Id: I4e8b7bec4e45badcde6274d574b8a9aabd046837