audio: fix getFrame overflow after long-term playback

The aidl implementation of getFrameCount() encounters an overflow,
causing the audio position to become abnormal. Since the return
type of getFrameCount is long which size is 4 byptes, it will
encounter an overflow after 12.43 hours of continuous playback.

Bug: 387877971
Change-Id: I3bce2730e28ebfe3f2237cff94342aac2a2eb9ef
diff --git a/audio/aidl/default/include/core-impl/Stream.h b/audio/aidl/default/include/core-impl/Stream.h
index 304f9b7..d8bac82 100644
--- a/audio/aidl/default/include/core-impl/Stream.h
+++ b/audio/aidl/default/include/core-impl/Stream.h
@@ -146,8 +146,8 @@
     // locking because it only cleans MQ pointers which were also set on the Binder thread.
     void reset();
     // 'advanceFrameCount' and 'getFrameCount' are only called on the worker thread.
-    long advanceFrameCount(size_t increase) { return mFrameCount += increase; }
-    long getFrameCount() const { return mFrameCount; }
+    int64_t advanceFrameCount(size_t increase) { return mFrameCount += increase; }
+    int64_t getFrameCount() const { return mFrameCount; }
 
   private:
     // Fields are non const to allow move assignment.
@@ -165,7 +165,7 @@
     std::shared_ptr<IStreamOutEventCallback> mOutEventCallback;  // Only used by output streams
     std::weak_ptr<sounddose::StreamDataProcessorInterface> mStreamDataProcessor;
     DebugParameters mDebugParameters;
-    long mFrameCount = 0;
+    int64_t mFrameCount = 0;
 };
 
 // This interface provides operations of the stream which are executed on the worker thread.