diff options
author | Eric Laurent <elaurent@google.com> | 2013-09-27 18:48:26 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2013-09-30 12:05:38 -0700 |
commit | 59fe010bcc072597852454a2ec53d7b0a2002a3b (patch) | |
tree | b6b42e04a89ead77c9ecd9635a328686a8bb9863 /media/libmedia/IAudioTrack.cpp | |
parent | 5d6d86a4d102704f49b9235eaf282c428d7100b6 (diff) | |
download | frameworks_av-59fe010bcc072597852454a2ec53d7b0a2002a3b.zip frameworks_av-59fe010bcc072597852454a2ec53d7b0a2002a3b.tar.gz frameworks_av-59fe010bcc072597852454a2ec53d7b0a2002a3b.tar.bz2 |
fix volume and effect enable delay on offloaded tracks
Volume: add a method to wake up the mediaserver playback
thread when a volume command is received on an offloaded track.
Effects: call effect chain process on offloaded playback threads
asynchronously from writes to allow effect state updates while
waiting for async write callback.
Bug: 10796540.
Change-Id: Id2747ae88783575d1d7ffd6fc86fbd054ab2c739
Diffstat (limited to 'media/libmedia/IAudioTrack.cpp')
-rw-r--r-- | media/libmedia/IAudioTrack.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/media/libmedia/IAudioTrack.cpp b/media/libmedia/IAudioTrack.cpp index f0d75ba..3cd9cfd 100644 --- a/media/libmedia/IAudioTrack.cpp +++ b/media/libmedia/IAudioTrack.cpp @@ -41,6 +41,7 @@ enum { SET_MEDIA_TIME_TRANSFORM, SET_PARAMETERS, GET_TIMESTAMP, + SIGNAL, }; class BpAudioTrack : public BpInterface<IAudioTrack> @@ -182,6 +183,12 @@ public: } return status; } + + virtual void signal() { + Parcel data, reply; + data.writeInterfaceToken(IAudioTrack::getInterfaceDescriptor()); + remote()->transact(SIGNAL, data, &reply); + } }; IMPLEMENT_META_INTERFACE(AudioTrack, "android.media.IAudioTrack"); @@ -269,6 +276,11 @@ status_t BnAudioTrack::onTransact( } return NO_ERROR; } break; + case SIGNAL: { + CHECK_INTERFACE(IAudioTrack, data, reply); + signal(); + return NO_ERROR; + } break; default: return BBinder::onTransact(code, data, reply, flags); } |