Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c940c382 authored by Marco Nelissen's avatar Marco Nelissen Committed by Android (Google) Code Review
Browse files

Merge "Track pid for each session"

parents 240abcc4 d457c970
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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 {
+7 −3
Original line number Diff line number Diff line
@@ -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
+2 −2
Original line number Diff line number Diff line
@@ -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;

+2 −2
Original line number Diff line number Diff line
@@ -115,7 +115,7 @@ AudioRecord::~AudioRecord()
            mAudioRecord.clear();
        }
        IPCThreadState::self()->flushCommands();
        AudioSystem::releaseAudioSessionId(mSessionId);
        AudioSystem::releaseAudioSessionId(mSessionId, -1);
    }
}

@@ -266,7 +266,7 @@ status_t AudioRecord::set(
    mMarkerReached = false;
    mNewPosition = 0;
    mUpdatePeriod = 0;
    AudioSystem::acquireAudioSessionId(mSessionId);
    AudioSystem::acquireAudioSessionId(mSessionId, -1);
    mSequence = 1;
    mObservedSequence = mSequence;
    mInOverrun = false;
+4 −4
Original line number Diff line number Diff line
@@ -435,19 +435,19 @@ int AudioSystem::newAudioSessionId()
    return af->newAudioSessionId();
}

void AudioSystem::acquireAudioSessionId(int audioSession)
void AudioSystem::acquireAudioSessionId(int audioSession, pid_t pid)
{
    const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger();
    if (af != 0) {
        af->acquireAudioSessionId(audioSession);
        af->acquireAudioSessionId(audioSession, pid);
    }
}

void AudioSystem::releaseAudioSessionId(int audioSession)
void AudioSystem::releaseAudioSessionId(int audioSession, pid_t pid)
{
    const sp<IAudioFlinger>& af = AudioSystem::get_audio_flinger();
    if (af != 0) {
        af->releaseAudioSessionId(audioSession);
        af->releaseAudioSessionId(audioSession, pid);
    }
}

Loading