diff --git a/include/libmueb/muebreceiver.h b/include/libmueb/muebreceiver.h
index b2a63fd1b0415196002fdb5b447cb23c538ef95d..5c2d0dfa741494b64b6e303f8b4163e5bedca62b 100644
--- a/include/libmueb/muebreceiver.h
+++ b/include/libmueb/muebreceiver.h
@@ -2,6 +2,7 @@
 #define LIBMUEB_MUEBRECEIVER_H_
 
 #include <QObject>
+#include <QPixmap>
 
 #include "libmueb_global.h"
 
@@ -14,10 +15,10 @@ class LIBMUEB_EXPORT MuebReceiver final : public QObject {
 
  public:
   static MuebReceiver& Instance();
-  libmueb::Frame frame() const;
+  QPixmap frame() const;
 
  signals:
-  void FrameChanged(libmueb::Frame frame);
+  void FrameChanged(QPixmap frame);
 
  private:
   MuebReceiverPrivate* d_ptr_;
diff --git a/src/muebreceiver.cc b/src/muebreceiver.cc
index db5b2b7827762e3f55251a4fe3a31e317a11190e..179458985c57d27a39c63e7d89e5801d6529071c 100644
--- a/src/muebreceiver.cc
+++ b/src/muebreceiver.cc
@@ -15,10 +15,10 @@ MuebReceiver &MuebReceiver::Instance() {
   return instance;
 }
 
-libmueb::Frame MuebReceiver::frame() const {
+QPixmap MuebReceiver::frame() const {
   Q_D(const MuebReceiver);
 
-  return d->frame;
+  return QPixmap::fromImage(d->frame);
 }
 
 inline void datagram_uncompress_error() {
@@ -66,7 +66,7 @@ void MuebReceiver::ReadPendingDatagrams() {
         std::memcpy(frame_begin, data.constData(), data.size());
       }
 
-      emit(FrameChanged(d->frame));
+      emit(FrameChanged(QPixmap::fromImage(d->frame)));
     }
     // Drop invalid packet
     else {