audio: Modify the AudioServerShmemSize [1/1]

PD#SWPL-96012

Problem:
Optimize memory size in audio server

Solution:
Set environment variable to dynamically adjust AudioServerShmemSize

Verify:
AudioServerShmemSize can be adjusted by AUDIO_SERVER_SHMEM_SIZE in Buildroot

Change-Id: I0fc854dbbbde2cf4823c23618e296847b3a741e3
Signed-off-by: yuliang.hu <yuliang.hu@amlogic.com>
diff --git a/include/IpcBuffer/audio_server_shmem.h b/include/IpcBuffer/audio_server_shmem.h
index da7057c..d338b67 100644
--- a/include/IpcBuffer/audio_server_shmem.h
+++ b/include/IpcBuffer/audio_server_shmem.h
@@ -1,5 +1,5 @@
 #include <boost/interprocess/managed_shared_memory.hpp>
-
+#include <cstdlib>
 #define AudioServerShmemSize (16 * 1024 * 1024)
 
 using namespace boost::interprocess;
@@ -7,10 +7,19 @@
 class audio_server_shmem {
   private:
     audio_server_shmem(bool is_server) {
-      if (is_server)
-        shm_ = new managed_shared_memory(open_or_create, "AudioServiceShmem", AudioServerShmemSize);
-      else
+      if (is_server) {
+        const char *size = std::getenv("AUDIO_SERVER_SHMEM_SIZE");
+        int int_size = AudioServerShmemSize;
+        if (size) {
+          int_size = std::atoi(size);
+          if (int_size <= 0) {
+            int_size = AudioServerShmemSize;
+          }
+        }
+        shm_ = new managed_shared_memory(open_or_create, "AudioServiceShmem", int_size);
+      } else {
         shm_ = new managed_shared_memory(open_only, "AudioServiceShmem");
+      }
     }
     ~audio_server_shmem() {
       delete shm_;