diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp
index 1470374e3ad6a642f71d4ec7418007ad176b4227..b3ab0bb8c3f1fc0aebce44482763da7f857c0c21 100644
--- a/src/media/media_encoder.cpp
+++ b/src/media/media_encoder.cpp
@@ -432,7 +432,7 @@ MediaEncoder::encode(const std::shared_ptr<VideoFrame>& input,
         return -1;
     }
 #else
-    output = getScaledSWFrame(input);
+    output = getScaledSWFrame(*input.get());
 #endif // RING_ACCEL
 
     if (!output) {
@@ -1267,7 +1267,7 @@ MediaEncoder::getHWFrame(const std::shared_ptr<VideoFrame>& input,
         } else {
             output = getScaledSWFrame(*input.get());
         }
-#elif !defined(__APPLE__)
+#elif !defined(__APPLE__) && defined(RING_ACCEL)
         // Other Platforms
         auto desc = av_pix_fmt_desc_get(static_cast<AVPixelFormat>(input->format()));
         bool isHardware = desc && (desc->flags & AV_PIX_FMT_FLAG_HWACCEL);
@@ -1297,6 +1297,7 @@ MediaEncoder::getHWFrame(const std::shared_ptr<VideoFrame>& input,
     return 0;
 }
 
+#ifdef RING_ACCEL
 std::shared_ptr<VideoFrame>
 MediaEncoder::getUnlinkedHWFrame(const VideoFrame& input)
 {
@@ -1323,6 +1324,7 @@ MediaEncoder::getHWFrameFromSWFrame(const VideoFrame& input)
     }
     return framePtr;
 }
+#endif
 
 std::shared_ptr<VideoFrame>
 MediaEncoder::getScaledSWFrame(const VideoFrame& input)
diff --git a/src/media/media_recorder.cpp b/src/media/media_recorder.cpp
index 3fd4f721222c8a086cd6b9baab2c6e1989cb7694..36bd5574550bede5a1b2a65bdd7055899c3271d2 100644
--- a/src/media/media_recorder.cpp
+++ b/src/media/media_recorder.cpp
@@ -272,7 +272,7 @@ MediaRecorder::onFrame(const std::string& name, const std::shared_ptr<MediaFrame
     // copy frame to not mess with the original frame's pts (does not actually copy frame data)
     std::unique_ptr<MediaFrame> clone;
     const auto& ms = streams_[name]->info;
-#ifdef ENABLE_VIDEO
+#if defined(ENABLE_VIDEO) && defined(RING_ACCEL)
     if (ms.isVideo) {
         auto desc = av_pix_fmt_desc_get(
             (AVPixelFormat) (std::static_pointer_cast<VideoFrame>(frame))->format());
@@ -290,12 +290,12 @@ MediaRecorder::onFrame(const std::string& name, const std::shared_ptr<MediaFrame
             clone->copyFrom(*frame);
         }
     } else {
-#endif // ENABLE_VIDEO
+#endif // ENABLE_VIDEO && RING_ACCEL
         clone = std::make_unique<MediaFrame>();
         clone->copyFrom(*frame);
-#ifdef ENABLE_VIDEO
+#if defined(ENABLE_VIDEO) && defined(RING_ACCEL)
     }
-#endif // ENABLE_VIDEO
+#endif // ENABLE_VIDEO && RING_ACCEL
     clone->pointer()->pts = av_rescale_q_rnd(av_gettime() - startTimeStamp_,
                                              {1, AV_TIME_BASE},
                                              ms.timeBase,