Modified AudioFlinger duplicating output thread so that audio tracks are not mixed until both outputs (A2DP and hardware) have exited standby mode. This avoids to have one output far ahead of the other and audio frames dropped because the compensation mechanism cannot keep up.
Also calculate the maximum wait time in OutputTrack::write() based the on smallest frame count of all output threads instead of the frame count of the thread the OutputTrack is connected to. This avoids starving the thread with the smallest frame count by waiting too long on the other thread.
Since the frame count was reduced on hardware output to reduce latency the difference between A2DP and hardware outputs frame counts had become problematic.
Also increased the number of overflow buffers to cope with bigger timing differences among outputs.
* changes:
docs: add "required" attribute to the <uses-feature> docs and add a note to the CAMERA permission stating that it enables the <uses-feature> for camera. This is an incrimental update for the 2.0.1 docs. More changes to come for the 2.1 docs to include more features
and add a note to the CAMERA permission stating that it enables
the <uses-feature> for camera.
This is an incrimental update for the 2.0.1 docs. More changes
to come for the 2.1 docs to include more features
* changes:
docs: update the Bluetooth guide with links to the sample app, scrub the sibling files, and revise the Bluetooth package summary to point to the BT dev guide.
This may fix the issue, but we have no repro steps so no way to
make sure.
What appeared to be going on was that the emergency dialer was
created, but still had the starting preview window above it. We
were stuck in this state because the preview window didn't have
the "hide lock screen" flag set, so the lock screen would never
be removed, and thus we would never take care of finishing the
show of the emergency dialer (because it was not visible) and
thus not remove the starting window.
The solution here is to simply propagate the lock flags up to the
starting window.
Change-Id: I6da9f6494537f0661d9d230664ebf745c293ea7d
Bluez sends SINK_STATE_CHANGE before onAgentAuthorize, so
we may be already in CONNECTING state. This will happen with
some A2DP kits which don't like us connecting and thus we will
never be able to connect to them.
Bug:2335345
Dr No: Hiroshi
* changes:
docs: fix some typos in the manifest docs samples and remove the "one or more of" phrase from the syntax snippet because it interferes with the syntax coloring.
Describes work-around for these problems: Sometimes you
can't view manifest files within Eclipse; you can't run
the GestureBuilder sample on the emulator or uninstall it
from the emulator.
Bug: 2315781
Change-Id: Ia36d8e74a9fccd106ce2cc5e9451846aacba9da4
AudioTrack was modified earlier to calculate minimum buffer size
based on the hardware reported latency. Previously, it was a
hard-coded value. As a result of this change, the minimum buffer
size is now variable based on hardware latency. On Passion, this
brought out a subtle rounding error in the buffer size calculation
in SoundPool. This can cause AudioTrack creation to fail based on
the requested sample rate. This fix calculates the total buffer
size first, and then does rounding before dividing by the number
of buffers.
* changes:
sdk doc change for esr: Add "resources" tab content. Fix links pointing to the old locations. Change Android.mk to output samples files to resources/samples. Misc other fixes.