Merge cherrypicks of ['googleplex-android-review.googlesource.com/30830005'] into 25Q1-release.

Change-Id: Ib84b3d6b46e42ef6822b788ecc4ce53730084608
diff --git a/services/audioflinger/Tracks.cpp b/services/audioflinger/Tracks.cpp
index 78ba24d..c9b578f 100644
--- a/services/audioflinger/Tracks.cpp
+++ b/services/audioflinger/Tracks.cpp
@@ -367,7 +367,8 @@
             .set(AUDIO_TRACE_OBJECT_KEY_FLAGS, trackFlagsAsString())
             .set(AUDIO_TRACE_OBJECT_KEY_FORMAT, IAfThreadBase::formatToString(mFormat))
             .set(AUDIO_TRACE_OBJECT_KEY_FRAMECOUNT, static_cast<int64_t>(mFrameCount))
-            .set(AUDIO_TRACE_OBJECT_KEY_PID, static_cast<int32_t>(mClient->pid()))
+            .set(AUDIO_TRACE_OBJECT_KEY_PID, static_cast<int32_t>(
+                    mClient ? mClient->pid() : getpid()))
             .set(AUDIO_TRACE_OBJECT_KEY_SAMPLE_RATE, static_cast<int32_t>(sampleRate()));
     if (const auto thread = mThread.promote()) {
         trace // continue in alphabetical order