diff options
author | John Grossman <johngro@google.com> | 2012-08-02 17:08:54 -0700 |
---|---|---|
committer | John Grossman <johngro@google.com> | 2012-08-08 11:28:15 -0700 |
commit | 2c3b2da3049627264b7c6b449a1622f002210f03 (patch) | |
tree | f99fadbfef22ff3b7709a505623371c22e39566c /services/audioflinger/FastMixer.cpp | |
parent | ee578c0330319f04a48bccbdb26b53fea0388d04 (diff) | |
download | frameworks_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.cpp | 7 |
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; |