diff --git a/GreenScreen/build.sh b/GreenScreen/build.sh
index a04f9e9..5118613 100755
--- a/GreenScreen/build.sh
+++ b/GreenScreen/build.sh
@@ -2,7 +2,7 @@
 # Build the plugin for the project
 set -e
 export OSTYPE
-ARCH=$(arch)
+ARCH=$(uname -m)
 EXTRAPATH=''
 # Flags:
 
@@ -27,6 +27,20 @@
 PLUGINS_LIB="../lib"
 LIBS_DIR="./../contrib/Libs"
 PREFERENCESFILENAME="preferences"
+PLATFORM=$(uname)
+
+if [ "${PLATFORM}" = "Linux" ]; then
+    PLATFORM="linux-gnu"
+    CONTRIB_PLATFORM_CURT=${ARCH}
+    echo "Building with ${PLATFORM}"
+elif [ "${PLATFORM}" = "Darwin" ]; then
+    PLATFORM="darwin"
+    SO_FILE_NAME="lib${PLUGIN_NAME}.dylib"
+    alias nproc='sysctl -n hw.logicalcpu'
+    CONTRIB_PLATFORM_CURT=${ARCH}-apple
+    CONTRIB_PLATFORM_EXTRA=$(uname -r)
+    echo "Building with ${PLATFORM}"
+fi
 
 if [ "${PROCESSOR}" = "CPU" ]; then
     ONNX_LIBS="cpu"
@@ -36,8 +50,6 @@
     PREFERENCESFILENAME="${PREFERENCESFILENAME}-accel"
 fi
 
-PLATFORM="linux-gnu"
-
 while getopts t:c:p OPT; do
   case "$OPT" in
     t)
@@ -58,7 +70,7 @@
 
 cp -r ffmpeg ${CONTRIB_PATH}/src/
 
-if [ "${PLATFORM}" = "linux-gnu" ]
+if [ "${PLATFORM}" = "linux-gnu" ] || [ "${PLATFORM}" = "redhat-linux" ]
 then
     if [ -f "${CONTRIB_PATH}/native/.ffmpeg" ]; then
         rm "${CONTRIB_PATH}/native/.ffmpeg"
@@ -68,9 +80,9 @@
     make .ffmpeg -j$(nproc)
     rm .ffmpeg
     cd ${WORKPATH}
+
     python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME}
 
-    CONTRIB_PLATFORM_CURT=${ARCH}
     CONTRIB_PLATFORM=${CONTRIB_PLATFORM_CURT}-${PLATFORM}
     ONNX_PATH=${EXTRALIBS_PATH}
     if [ -z "${EXTRALIBS_PATH}" ]
@@ -117,7 +129,6 @@
     -lonnxruntime \
     -o "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
 
-
     cp "${ONNX_PATH}/lib/onnxruntime/${ONNX_LIBS}/libonnxruntime.so" "build-local/jpl/lib/$CONTRIB_PLATFORM/libonnxruntime.so.1.6.0"
     if [ "${PROCESSOR}" = "NVIDIA" ]
     then
@@ -134,6 +145,90 @@
     cp "./modelSRC/mModel.onnx" "./build-local/jpl/data/model/mModel.onnx"
     cp "./${PREFERENCESFILENAME}.json" "./build-local/jpl/data/preferences.json"
 
+elif [ "${PLATFORM}" = "darwin" ]
+then  
+    if [ -f "${CONTRIB_PATH}/native/.ffmpeg" ]; then
+        rm "${CONTRIB_PATH}/native/.ffmpeg"
+    fi
+    WORKPATH=$(pwd)
+    cd "${CONTRIB_PATH}/native/"
+    make .ffmpeg -j$(nproc)
+    rm .ffmpeg
+    cd ${WORKPATH}
+
+    python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME}
+  
+    CONTRIB_PLATFORM=${CONTRIB_PLATFORM_CURT}-${PLATFORM}
+    ONNX_PATH=${EXTRALIBS_PATH}
+    if [ -z "${EXTRALIBS_PATH}" ]
+    then
+      ONNX_PATH="${CONTRIB_PATH}/${CONTRIB_PLATFORM}${CONTRIB_PLATFORM_EXTRA}"
+    fi
+
+    # Compile
+    clang++ -std=c++17 -shared -fPIC \
+    -Wl,-no_compact_unwind -Wl,-framework,CoreFoundation \
+    -Wl,-framework,Security -Wl,-framework,VideoToolbox \
+    -Wl,-framework,CoreMedia -Wl,-framework,CoreVideo \
+    -Wl,-framework,OpenCl -Wl,-framework,Accelerate \
+    -Wl,-rpath,"\${ORIGIN}" \
+    -Wall -Wextra \
+    -Wno-unused-variable \
+    -Wno-unused-function \
+    -Wno-unused-parameter \
+    -D${PROCESSOR} \
+    -I"." \
+    -I"${DAEMON_SRC}" \
+    -I"${CONTRIB_PATH}/${CONTRIB_PLATFORM}${CONTRIB_PLATFORM_EXTRA}/include" \
+    -I"${CONTRIB_PATH}/${CONTRIB_PLATFORM}${CONTRIB_PLATFORM_EXTRA}/include/opencv4" \
+    -I"${ONNX_PATH}/include/onnxruntime/session" \
+    -I"${PLUGINS_LIB}" \
+    ./../lib/accel.cpp \
+    ./../lib/frameUtils.cpp \
+    ./../lib/frameFilter.cpp \
+    main.cpp \
+    videoSubscriber.cpp \
+    pluginMediaHandler.cpp \
+    pluginProcessor.cpp \
+    -L"${CONTRIB_PATH}/${CONTRIB_PLATFORM}${CONTRIB_PLATFORM_EXTRA}/lib/" \
+    -L"${CONTRIB_PATH}/${CONTRIB_PLATFORM}${CONTRIB_PLATFORM_EXTRA}/lib/opencv4/3rdparty/" \
+    -L"${ONNX_PATH}/lib/onnxruntime/${ONNX_LIBS}" \
+    -lavfilter \
+    -lswscale \
+    -lavformat \
+    -lavcodec \
+    -lavutil \
+    -lvpx -lx264 -lbz2 -liconv -lz \
+    -lopencv_imgproc \
+    -lopencv_core \
+    -lonnxruntime \
+    "/usr/local/opt/speex/lib/libspeex.a" \
+    "/usr/local/opt/opus/lib/libopus.a" \
+    -o "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
+
+    cp "${ONNX_PATH}/lib/onnxruntime/${ONNX_LIBS}/libonnxruntime.dylib" "build-local/jpl/lib/${CONTRIB_PLATFORM}/libonnxruntime.dylib"
+    install_name_tool -id "@loader_path/libonnxruntime.1.6.0.dylib" "build-local/jpl/lib/${CONTRIB_PLATFORM}/libonnxruntime.dylib"
+    install_name_tool -id "@loader_path/${SO_FILE_NAME}" "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
+    install_name_tool -change "@rpath/libonnxruntime.1.6.0.dylib" "@loader_path/libonnxruntime.dylib" "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
+
+    mkdir "./build-local/jpl/data/model"
+    cp "./modelSRC/mModel.onnx" "./build-local/jpl/data/model/mModel.onnx"
+    cp "./${PREFERENCESFILENAME}.json" "./build-local/jpl/data/preferences.json"
+
+    if [ -n "${APPLE_SIGN_CERTIFICATE}" ]; then
+      codesign --force --verify --timestamp -o runtime --sign "${APPLE_SIGN_CERTIFICATE}"  "build-local/jpl/lib/${CONTRIB_PLATFORM}/libonnxruntime.dylib"
+      codesign --force --verify --timestamp -o runtime --sign "${APPLE_SIGN_CERTIFICATE}"  "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
+      ditto -c -k --rsrc "build-local/jpl/lib/${CONTRIB_PLATFORM}/libonnxruntime.dylib" "build-local/libonnxruntime.dylib.zip"
+      LIBRARYNAME=libonnxruntime.dylib sh ./../notarize.sh
+      ditto -x -k "build-local/libonnxruntime.dylib.zip" "build-local/notarized0"
+      cp "build-local/notarized0/libonnxruntime.dylib" "build-local/jpl/lib/${CONTRIB_PLATFORM}/libonnxruntime.dylib"
+
+      ditto -c -k --rsrc "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}" "build-local/${SO_FILE_NAME}.zip"
+      LIBRARYNAME=${SO_FILE_NAME} sh ./../notarize.sh
+      ditto -x -k "build-local/${SO_FILE_NAME}.zip" "build-local/notarized1"
+      cp "build-local/notarized1/${SO_FILE_NAME}" "build-local/jpl/lib/${CONTRIB_PLATFORM}/${SO_FILE_NAME}"
+    fi
+
 elif [ "${PLATFORM}" = "android" ]
 then
     python3 ./../SDK/jplManipulation.py --preassemble --plugin=${PLUGIN_NAME} --distribution=${PLATFORM}
diff --git a/GreenScreen/pluginProcessor.cpp b/GreenScreen/pluginProcessor.cpp
index ff4955b..1337f6f 100644
--- a/GreenScreen/pluginProcessor.cpp
+++ b/GreenScreen/pluginProcessor.cpp
@@ -242,7 +242,7 @@
     cv::Mat roiMaskImg = previousMasks_[0].clone() * 255.;
     roiMaskImg.convertTo(roiMaskImg, CV_8UC1);
 
-    gsFrame maskFrame = {av_frame_alloc(), frameFree};
+    uniqueFramePtr maskFrame = {av_frame_alloc(), frameFree};
     maskFrame->format = AV_PIX_FMT_GRAY8;
     maskFrame->width = roiMaskImg.cols;
     maskFrame->height = roiMaskImg.rows;
diff --git a/GreenScreen/pluginProcessor.h b/GreenScreen/pluginProcessor.h
index 36eaa78..aec78eb 100644
--- a/GreenScreen/pluginProcessor.h
+++ b/GreenScreen/pluginProcessor.h
@@ -46,8 +46,6 @@
 
 namespace jami {
 
-using gsFrame = std::unique_ptr<AVFrame, decltype(&frameFree)>;
-
 static const char* modelInputNames[8] = {"image:0"};
 static const char* modelOutputNames[11] = {"Identity:0"};
 
diff --git a/GreenScreen/videoSubscriber.cpp b/GreenScreen/videoSubscriber.cpp
index 92147c8..25e6ce4 100644
--- a/GreenScreen/videoSubscriber.cpp
+++ b/GreenScreen/videoSubscriber.cpp
@@ -24,6 +24,7 @@
 extern "C" {
 #include <libavutil/display.h>
 }
+#include <frameScaler.h>
 #include <accel.h>
 #include <mediaStream.h>
 #include <pluglog.h>
@@ -89,7 +90,8 @@
 
     //======================================================================================
     // GET RAW FRAME
-    gsFrame rgbFrame = {transferToMainMemory(pluginFrame, AV_PIX_FMT_NV12), frameFree};
+    uniqueFramePtr rgbFrame = {transferToMainMemory(pluginFrame, AV_PIX_FMT_NV12), frameFree};
+    rgbFrame.reset(FrameScaler::convertFormat(rgbFrame.get(), AV_PIX_FMT_YUV420P));
     if (!rgbFrame.get())
         return;
     rgbFrame->pts = 1;
@@ -133,6 +135,7 @@
     pluginProcessor.drawMaskOnFrame(rgbFrame.get(), filteredFrame, angle_);
     frameFree(filteredFrame);
 
+    rgbFrame.reset(FrameScaler::convertFormat(rgbFrame.get(), AV_PIX_FMT_YUV420P));
     moveFrom(pluginFrame, rgbFrame.get());
 }
 
diff --git a/GreenScreen/videoSubscriber.h b/GreenScreen/videoSubscriber.h
index 9841ec7..df7edd3 100644
--- a/GreenScreen/videoSubscriber.h
+++ b/GreenScreen/videoSubscriber.h
@@ -54,7 +54,7 @@
     // Observer pattern
     Observable<AVFrame*>* observable_ {};
     int angle_ {0};
-    gsFrame inputFrame_ = {av_frame_alloc(), frameFree};
+    uniqueFramePtr inputFrame_ = {av_frame_alloc(), frameFree};
     FrameFilter inputFilter_;
     std::string inputFilterDescription_;
 
