summaryrefslogtreecommitdiffstats
path: root/media/libmedia/IAudioTrack.cpp
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2013-09-27 18:48:26 -0700
committerEric Laurent <elaurent@google.com>2013-09-30 12:05:38 -0700
commit59fe010bcc072597852454a2ec53d7b0a2002a3b (patch)
treeb6b42e04a89ead77c9ecd9635a328686a8bb9863 /media/libmedia/IAudioTrack.cpp
parent5d6d86a4d102704f49b9235eaf282c428d7100b6 (diff)
downloadframeworks_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.cpp12
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);
}