summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2014-02-11 08:47:07 -0800
committerMarco Nelissen <marcone@google.com>2014-02-11 12:39:43 -0800
commitd457c970c8d08519cd77280a90b61ae1e342cfe3 (patch)
treef0f409db4d834b4d70b2244dd97dfa707496df50 /include
parent1d6fa7af1288b550faabe4ec2cf98684236723db (diff)
downloadframeworks_av-d457c970c8d08519cd77280a90b61ae1e342cfe3.zip
frameworks_av-d457c970c8d08519cd77280a90b61ae1e342cfe3.tar.gz
frameworks_av-d457c970c8d08519cd77280a90b61ae1e342cfe3.tar.bz2
Track pid for each session
so they can be properly freed. Change-Id: I6f389035bc29e74e7c367c1c6d0252b180f666b3
Diffstat (limited to 'include')
-rw-r--r--include/media/AudioSystem.h4
-rw-r--r--include/media/AudioTrack.h10
-rw-r--r--include/media/IAudioFlinger.h4
3 files changed, 11 insertions, 7 deletions
diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h
index dfc2066..fd86737 100644
--- a/include/media/AudioSystem.h
+++ b/include/media/AudioSystem.h
@@ -141,8 +141,8 @@ public:
static uint32_t getInputFramesLost(audio_io_handle_t ioHandle);
static int newAudioSessionId();
- static void acquireAudioSessionId(int audioSession);
- static void releaseAudioSessionId(int audioSession);
+ static void acquireAudioSessionId(int audioSession, pid_t pid);
+ static void releaseAudioSessionId(int audioSession, pid_t pid);
// types of io configuration change events received with ioConfigChanged()
enum io_config_event {
diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h
index 5a50280..d0df710 100644
--- a/include/media/AudioTrack.h
+++ b/include/media/AudioTrack.h
@@ -190,7 +190,8 @@ public:
int sessionId = AUDIO_SESSION_ALLOCATE,
transfer_type transferType = TRANSFER_DEFAULT,
const audio_offload_info_t *offloadInfo = NULL,
- int uid = -1);
+ int uid = -1,
+ pid_t pid = -1);
/* Creates an audio track and registers it with AudioFlinger.
* With this constructor, the track is configured for static buffer mode.
@@ -215,7 +216,8 @@ public:
int sessionId = AUDIO_SESSION_ALLOCATE,
transfer_type transferType = TRANSFER_DEFAULT,
const audio_offload_info_t *offloadInfo = NULL,
- int uid = -1);
+ int uid = -1,
+ pid_t pid = -1);
/* Terminates the AudioTrack and unregisters it from AudioFlinger.
* Also destroys all resources associated with the AudioTrack.
@@ -253,7 +255,8 @@ public:
int sessionId = AUDIO_SESSION_ALLOCATE,
transfer_type transferType = TRANSFER_DEFAULT,
const audio_offload_info_t *offloadInfo = NULL,
- int uid = -1);
+ int uid = -1,
+ pid_t pid = -1);
/* Result of constructing the AudioTrack. This must be checked for successful initialization
* before using any AudioTrack API (except for set()), because using
@@ -757,6 +760,7 @@ private:
sp<DeathNotifier> mDeathNotifier;
uint32_t mSequence; // incremented for each new IAudioTrack attempt
int mClientUid;
+ pid_t mClientPid;
};
class TimedAudioTrack : public AudioTrack
diff --git a/include/media/IAudioFlinger.h b/include/media/IAudioFlinger.h
index ea225ac..7f53bfc 100644
--- a/include/media/IAudioFlinger.h
+++ b/include/media/IAudioFlinger.h
@@ -180,8 +180,8 @@ public:
virtual int newAudioSessionId() = 0;
- virtual void acquireAudioSessionId(int audioSession) = 0;
- virtual void releaseAudioSessionId(int audioSession) = 0;
+ virtual void acquireAudioSessionId(int audioSession, pid_t pid) = 0;
+ virtual void releaseAudioSessionId(int audioSession, pid_t pid) = 0;
virtual status_t queryNumberEffects(uint32_t *numEffects) const = 0;