Fix overflow sanitizer in Visualizer_command.

There's an intended integer overflow in the Visualizer_command function.
This refactors it to use the builtin overflow-safe function.

 runtime error: unsigned integer overflow: 1664 - 4048 cannot be
 represented in type 'unsigned int'

Bug: 30969751
Test: Builds and boots.
Change-Id: I63a505f4b073480f52d0b073ec5e45c52212caa8
Merged-In: I63a505f4b073480f52d0b073ec5e45c52212caa8
(cherry picked from commit 612d8fcbc996ecd9e0c58f7e2b9fb07d004f29da)
diff --git a/media/libeffects/visualizer/EffectVisualizer.cpp b/media/libeffects/visualizer/EffectVisualizer.cpp
index c33f9f5..807f24d 100644
--- a/media/libeffects/visualizer/EffectVisualizer.cpp
+++ b/media/libeffects/visualizer/EffectVisualizer.cpp
@@ -594,7 +594,9 @@
                     deltaSmpl = CAPTURE_BUF_SIZE;
                 }
 
-                int32_t capturePoint = (int32_t)pContext->mCaptureIdx - deltaSmpl;
+                int32_t capturePoint;
+                //capturePoint = (int32_t)pContext->mCaptureIdx - deltaSmpl;
+                __builtin_sub_overflow((int32_t)pContext->mCaptureIdx, deltaSmpl, &capturePoint);
                 // a negative capturePoint means we wrap the buffer.
                 if (capturePoint < 0) {
                     uint32_t size = -capturePoint;