summaryrefslogtreecommitdiffstats
path: root/services/audioflinger/FastMixer.cpp
diff options
context:
space:
mode:
authorJohn Grossman <johngro@google.com>2012-08-02 17:08:54 -0700
committerJohn Grossman <johngro@google.com>2012-08-08 11:28:15 -0700
commit2c3b2da3049627264b7c6b449a1622f002210f03 (patch)
treef99fadbfef22ff3b7709a505623371c22e39566c /services/audioflinger/FastMixer.cpp
parentee578c0330319f04a48bccbdb26b53fea0388d04 (diff)
downloadframeworks_av-2c3b2da3049627264b7c6b449a1622f002210f03.zip
frameworks_av-2c3b2da3049627264b7c6b449a1622f002210f03.tar.gz
frameworks_av-2c3b2da3049627264b7c6b449a1622f002210f03.tar.bz2
AudioFlinger: fix timed audio
(cherry picked from commit e20ac92c564a2f4e8123885807abdf0a78de0dd7) > AudioFlinger: fix timed audio > > Addresses Bug 6900517. > > Finish up support for timed audio in the new FastMixer world. Pay special > attention to remaining lock-less and voluntary yield free on the FastMixer > thread. This fixes audio playback for Q on JB. > > Change-Id: Iaf815e58a1b1d0a0190051794bec8dc5c9231785 > Signed-off-by: John Grossman <johngro@google.com> Change-Id: I9bd687acc345a05867af48e71116690fdb0ce1b5 Signed-off-by: John Grossman <johngro@google.com>
Diffstat (limited to 'services/audioflinger/FastMixer.cpp')
-rw-r--r--services/audioflinger/FastMixer.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/services/audioflinger/FastMixer.cpp b/services/audioflinger/FastMixer.cpp
index 7652132..b89bf81 100644
--- a/services/audioflinger/FastMixer.cpp
+++ b/services/audioflinger/FastMixer.cpp
@@ -399,8 +399,13 @@ bool FastMixer::threadLoop()
ftDump->mUnderruns = underruns;
ftDump->mFramesReady = framesReady;
}
+
+ int64_t pts;
+ if (outputSink == NULL || (OK != outputSink->getNextWriteTimestamp(&pts)))
+ pts = AudioBufferProvider::kInvalidPTS;
+
// process() is CPU-bound
- mixer->process(AudioBufferProvider::kInvalidPTS);
+ mixer->process(pts);
mixBufferState = MIXED;
} else if (mixBufferState == MIXED) {
mixBufferState = UNDEFINED;