zhuizhu 8 месяцев назад
Родитель
Сommit
d0b4a8502d

+ 1 - 1
AV/AV.pri

@@ -50,7 +50,7 @@ include($$PWD/code/player/player.pri)
 # SOURCES += $$PWD/test_window_capture.cpp
 # SOURCES += $$PWD/test_utils.cpp
 
-SOURCES += $$PWD/integration_example.cpp
+# SOURCES += $$PWD/integration_example.cpp
 
 
 

+ 2 - 13
AV/code/player/SimplePlayerWindow.cpp

@@ -6,7 +6,6 @@
 
 SimplePlayerWindow::SimplePlayerWindow(QWidget *parent)
     : QMainWindow(parent)
-    , m_videoRenderer(nullptr)
     , m_openGLVideoRenderer(nullptr)
 {
     qDebug() << "Initializing SimplePlayerWindow...";
@@ -24,13 +23,10 @@ SimplePlayerWindow::SimplePlayerWindow(QWidget *parent)
         connectSignals();
         updateUI();
         
-        // 优先设置OpenGL渲染器
+        // 设置OpenGL渲染器
         if (m_openGLVideoRenderer && m_playerAdapter) {
             qDebug() << "Setting OpenGL video renderer...";
             m_playerAdapter->setOpenGLVideoRenderer(m_openGLVideoRenderer);
-        } else if (m_videoRenderer && m_playerAdapter) {
-            qDebug() << "Setting traditional video renderer...";
-            m_playerAdapter->setVideoRenderer(m_videoRenderer);
         } else {
             qWarning() << "No video renderer available";
         }
@@ -302,18 +298,11 @@ void SimplePlayerWindow::setupUI()
     mainLayout->addWidget(m_stateLabel);
     mainLayout->addWidget(m_infoLabel);
     
-    // 视频渲染器 - 优先使用OpenGL渲染器
+    // 视频渲染器 - 使用OpenGL渲染器
     m_openGLVideoRenderer = new OpenGLVideoRenderer(this);
     m_openGLVideoRenderer->setMinimumSize(640, 480);
     m_openGLVideoRenderer->setStyleSheet("border: 1px solid gray;");
     mainLayout->addWidget(m_openGLVideoRenderer);
-    
-    // 备用传统渲染器(隐藏)
-    m_videoRenderer = new VideoRenderer(this);
-    m_videoRenderer->setMinimumSize(640, 480);
-    m_videoRenderer->setStyleSheet("border: 1px solid gray;");
-    m_videoRenderer->hide();
-    mainLayout->addWidget(m_videoRenderer);
 
     // 控制按钮
     auto* buttonLayout = new QHBoxLayout();

+ 0 - 2
AV/code/player/SimplePlayerWindow.h

@@ -13,7 +13,6 @@
 #include <QTimer>
 #include <QVBoxLayout>
 #include "player_adapter.h"
-#include "video_renderer.h"
 #include "opengl_video_renderer.h"
 
 using namespace av::player;
@@ -62,7 +61,6 @@ private:
 
 private:
     std::unique_ptr<PlayerAdapter> m_playerAdapter;
-    VideoRenderer* m_videoRenderer;
     OpenGLVideoRenderer* m_openGLVideoRenderer;
 
     // UI组件

+ 2 - 4
AV/code/player/player.pri

@@ -4,8 +4,7 @@ HEADERS += \
     $$PWD/opengl_video_renderer.h \
     $$PWD/player_adapter.h \
     $$PWD/player_core.h \
-    $$PWD/thread_manager.h \
-    $$PWD/video_renderer.h
+    $$PWD/thread_manager.h
 
 SOURCES += \
     $$PWD/SimplePlayerWindow.cpp \
@@ -13,5 +12,4 @@ SOURCES += \
     $$PWD/opengl_video_renderer.cpp \
     $$PWD/player_adapter.cpp \
     $$PWD/player_core.cpp \
-    $$PWD/thread_manager.cpp \
-    $$PWD/video_renderer.cpp
+    $$PWD/thread_manager.cpp

+ 0 - 12
AV/code/player/player_adapter.cpp

@@ -1,5 +1,4 @@
 #include "player_adapter.h"
-#include "video_renderer.h"
 #include "opengl_video_renderer.h"
 #include "../base/media_common.h"
 #include <QDebug>
@@ -38,15 +37,6 @@ PlayerAdapter::~PlayerAdapter()
     qDebug() << "PlayerAdapter destroyed";
 }
 
-void PlayerAdapter::setVideoRenderer(VideoRenderer* renderer)
-{
-    if (m_playerCore) {
-        m_playerCore->setVideoRenderer(renderer);
-        m_videoRenderer = renderer;
-        updateRendererType();
-    }
-}
-
 void PlayerAdapter::setOpenGLVideoRenderer(OpenGLVideoRenderer* renderer)
 {
     if (m_playerCore) {
@@ -339,8 +329,6 @@ void PlayerAdapter::updateRendererType()
     
     if (m_openGLVideoRenderer) {
         newType = "OpenGL";
-    } else if (m_videoRenderer) {
-        newType = "QLabel";
     }
     
     if (newType != m_currentRendererType) {

+ 0 - 6
AV/code/player/player_adapter.h

@@ -28,11 +28,6 @@ public:
      */
     PlayerCore* getPlayerCore() const { return m_playerCore.get(); }
     
-    /**
-     * @brief 设置视频渲染器(传统QLabel渲染器)
-     */
-    void setVideoRenderer(VideoRenderer* renderer);
-    
     /**
      * @brief 设置OpenGL视频渲染器(推荐)
      */
@@ -162,7 +157,6 @@ private:
     QTimer* m_updateTimer;
     
     // 渲染器管理
-    VideoRenderer* m_videoRenderer = nullptr;
     OpenGLVideoRenderer* m_openGLVideoRenderer = nullptr;
     QString m_currentRendererType = "None";
     

+ 6 - 38
AV/code/player/player_core.cpp

@@ -168,7 +168,7 @@ ErrorCode PlayerCore::openFile(const std::string& filename)
         AVStream* videoStream = m_formatContext->streams[m_mediaInfo.videoStreamIndex];
         double fps = m_mediaInfo.fps > 0 ? m_mediaInfo.fps : 25.0; // 使用实际帧率或默认25fps
         
-        // 优先初始化OpenGL渲染器
+        // 初始化OpenGL渲染器
         if (m_openGLVideoRenderer) {
             bool rendererInitResult = m_openGLVideoRenderer->initialize(
                 videoStream->codecpar->width,
@@ -181,18 +181,6 @@ ErrorCode PlayerCore::openFile(const std::string& filename)
             } else {
                 av::Logger::instance().info("OpenGL video renderer initialized successfully with fps: " + std::to_string(fps));
             }
-        } else if (m_videoRenderer) {
-            bool rendererInitResult = m_videoRenderer->initialize(
-                videoStream->codecpar->width,
-                videoStream->codecpar->height,
-                static_cast<AVPixelFormat>(videoStream->codecpar->format),
-                fps
-            );
-            if (!rendererInitResult) {
-                av::Logger::instance().warning("Failed to initialize video renderer");
-            } else {
-                av::Logger::instance().info("Video renderer initialized successfully with fps: " + std::to_string(fps));
-            }
         }
     }
     
@@ -299,9 +287,9 @@ ErrorCode PlayerCore::stop()
         m_audioOutput->stop();
     }
     
-    // 清空视频渲染器
-    if (m_videoRenderer) {
-        m_videoRenderer->clear();
+    // 清空OpenGL视频渲染器
+    if (m_openGLVideoRenderer) {
+        m_openGLVideoRenderer->clear();
     }
     
     // 停止所有线程
@@ -574,11 +562,9 @@ bool PlayerCore::startDecodeThreads()
             m_threadManager->getVideoDecodeThread()->setFrameOutputCallback(
                 [this](const AVFramePtr& frame) {
                     if (frame && m_state == PlayerState::Playing) {
-                        // 优先使用OpenGL渲染器
+                        // 使用OpenGL渲染器
                         if (m_openGLVideoRenderer) {
                             m_openGLVideoRenderer->renderFrame(frame);
-                        } else if (m_videoRenderer) {
-                            m_videoRenderer->renderFrame(frame);
                         }
                     }
                 }
@@ -830,25 +816,7 @@ void PlayerCore::notifyError(const std::string& error)
     }
 }
 
-void PlayerCore::setVideoRenderer(VideoRenderer* renderer)
-{
-    std::lock_guard<std::mutex> lock(m_mutex);
-    m_videoRenderer = renderer;
-    
-    // 如果已有媒体信息且视频渲染器可用,初始化渲染器
-    if (m_videoRenderer && m_mediaInfo.hasVideo) {
-        AVStream* videoStream = m_formatContext->streams[m_mediaInfo.videoStreamIndex];
-        double fps = m_mediaInfo.fps > 0 ? m_mediaInfo.fps : 25.0; // 使用实际帧率或默认25fps
-        m_videoRenderer->initialize(
-            videoStream->codecpar->width,
-            videoStream->codecpar->height,
-            static_cast<AVPixelFormat>(videoStream->codecpar->format),
-            fps
-        );
-    }
-    
-    av::Logger::instance().info("Video renderer set");
-}
+
 
 void PlayerCore::setOpenGLVideoRenderer(OpenGLVideoRenderer* renderer)
 {

+ 0 - 6
AV/code/player/player_core.h

@@ -12,7 +12,6 @@
 #include "../utils/utils_synchronizer.h"
 #include "thread_manager.h"
 #include "audio_output.h"
-#include "video_renderer.h"
 #include "opengl_video_renderer.h"
 
 #include <memory>
@@ -130,10 +129,6 @@ public:
     void setVolume(double volume);  // 0.0 - 1.0
     double getVolume() const { return m_volume; }
     
-    // 输出设备设置
-    void setVideoRenderer(VideoRenderer* renderer);
-    VideoRenderer* getVideoRenderer() const { return m_videoRenderer; }
-    
     // OpenGL渲染器设置
     void setOpenGLVideoRenderer(OpenGLVideoRenderer* renderer);
     OpenGLVideoRenderer* getOpenGLVideoRenderer() const { return m_openGLVideoRenderer; }
@@ -209,7 +204,6 @@ private:
     
     // 输出设备
     std::unique_ptr<AudioOutput> m_audioOutput;
-    VideoRenderer* m_videoRenderer = nullptr;  // 外部提供的视频渲染器
     OpenGLVideoRenderer* m_openGLVideoRenderer = nullptr;  // OpenGL视频渲染器
     
     // 播放控制

+ 0 - 304
AV/code/player/video_renderer.cpp

@@ -1,304 +0,0 @@
-#include "video_renderer.h"
-#include "../base/logger.h"
-#include <QPainter>
-#include <QResizeEvent>
-#include <QApplication>
-#include <QDebug>
-#include <algorithm>
-
-extern "C" {
-#include <libavutil/imgutils.h>
-#include <libswscale/swscale.h>
-}
-
-namespace av {
-namespace player {
-
-VideoRenderer::VideoRenderer(QWidget* parent)
-    : QLabel(parent)
-    , m_videoWidth(0)
-    , m_videoHeight(0)
-    , m_inputFormat(AV_PIX_FMT_NONE)
-    , m_swsContext(nullptr)
-    , m_rgbBuffer(nullptr)
-    , m_rgbBufferSize(0)
-    , m_backgroundColor(Qt::black)
-    , m_keepAspectRatio(true)
-    , m_initialized(false)
-    , m_updateTimer(new QTimer(this))
-{
-    // 设置基本属性
-    setAlignment(Qt::AlignCenter);
-    setStyleSheet("background-color: black;");
-    setMinimumSize(320, 240);
-    
-    // 连接更新定时器
-    connect(m_updateTimer, &QTimer::timeout, this, &VideoRenderer::updateDisplay);
-    m_updateTimer->setSingleShot(true);
-}
-
-VideoRenderer::~VideoRenderer()
-{
-    cleanupConverter();
-}
-
-bool VideoRenderer::initialize(int width, int height, AVPixelFormat pixelFormat, double fps)
-{
-    QMutexLocker locker(&m_mutex);
-    
-    if (m_initialized) {
-        av::Logger::instance().warning("Video renderer already initialized");
-        return true;
-    }
-    
-    if (width <= 0 || height <= 0) {
-        av::Logger::instance().error("Invalid video dimensions");
-        return false;
-    }
-    
-    if (fps <= 0) {
-        fps = 25.0; // 默认帧率
-    }
-    
-    m_videoWidth = width;
-    m_videoHeight = height;
-    m_inputFormat = pixelFormat;
-    m_fps = fps;
-    
-    // 初始化图像转换器
-    if (!initConverter()) {
-        av::Logger::instance().error("Failed to initialize video converter");
-        return false;
-    }
-    
-    // 设置控件大小提示
-    setMinimumSize(m_videoWidth / 4, m_videoHeight / 4);
-    
-    m_initialized = true;
-    av::Logger::instance().info(
-        QString("Video renderer initialized: %1x%2 @ %3fps").arg(width).arg(height).arg(fps).toStdString());
-
-    return true;
-}
-
-bool VideoRenderer::renderFrame(const AVFramePtr& frame)
-{
-    if (!frame || !m_initialized) {
-        return false;
-    }
-    
-    // 转换帧为QImage
-    QImage image = convertFrameToImage(frame);
-    if (image.isNull()) {
-        return false;
-    }
-    
-    // 缩放图像
-    QPixmap pixmap = scaleImage(image);
-    
-    {
-        QMutexLocker locker(&m_mutex);
-        m_currentPixmap = pixmap;
-    }
-    
-    // 触发更新显示
-    if (!m_updateTimer->isActive()) {
-        int interval = static_cast<int>(1000.0 / m_fps); // 根据帧率计算间隔
-        m_updateTimer->start(interval);
-    }
-    
-    return true;
-}
-
-void VideoRenderer::clear()
-{
-    QMutexLocker locker(&m_mutex);
-    m_currentPixmap = QPixmap();
-    QLabel::clear();
-    update();
-}
-
-void VideoRenderer::setKeepAspectRatio(bool keepAspectRatio)
-{
-    if (m_keepAspectRatio != keepAspectRatio) {
-        m_keepAspectRatio = keepAspectRatio;
-        update();
-    }
-}
-
-bool VideoRenderer::getKeepAspectRatio() const
-{
-    return m_keepAspectRatio;
-}
-
-void VideoRenderer::setBackgroundColor(const QColor& color)
-{
-    if (m_backgroundColor != color) {
-        m_backgroundColor = color;
-        setStyleSheet(QString("background-color: %1;").arg(color.name()));
-        update();
-    }
-}
-
-QSize VideoRenderer::getVideoSize() const
-{
-    return QSize(m_videoWidth, m_videoHeight);
-}
-
-QSize VideoRenderer::getDisplaySize() const
-{
-    return size();
-}
-
-bool VideoRenderer::isInitialized() const
-{
-    return m_initialized;
-}
-
-void VideoRenderer::paintEvent(QPaintEvent* event)
-{
-    QPainter painter(this);
-    painter.fillRect(rect(), m_backgroundColor);
-    
-    QMutexLocker locker(&m_mutex);
-    if (!m_currentPixmap.isNull()) {
-        QRect displayRect = calculateDisplayRect();
-        painter.drawPixmap(displayRect, m_currentPixmap);
-    }
-    
-    QLabel::paintEvent(event);
-}
-
-void VideoRenderer::resizeEvent(QResizeEvent* event)
-{
-    QLabel::resizeEvent(event);
-    update();
-}
-
-void VideoRenderer::updateDisplay()
-{
-    update();
-}
-
-bool VideoRenderer::initConverter()
-{
-    // 创建图像转换上下文
-    m_swsContext = sws_getContext(
-        m_videoWidth, m_videoHeight, m_inputFormat,
-        m_videoWidth, m_videoHeight, AV_PIX_FMT_RGB24,
-        SWS_BILINEAR, nullptr, nullptr, nullptr
-    );
-    
-    if (!m_swsContext) {
-        av::Logger::instance().error("Failed to create image converter context");
-        return false;
-    }
-    
-    // 分配RGB缓冲区
-    m_rgbBufferSize = av_image_get_buffer_size(AV_PIX_FMT_RGB24, m_videoWidth, m_videoHeight, 1);
-    m_rgbBuffer = static_cast<uint8_t*>(av_malloc(m_rgbBufferSize));
-    
-    if (!m_rgbBuffer) {
-        av::Logger::instance().error("Failed to allocate RGB buffer");
-        sws_freeContext(m_swsContext);
-        m_swsContext = nullptr;
-        return false;
-    }
-    
-    av::Logger::instance().info("Video converter initialized successfully");
-    return true;
-}
-
-void VideoRenderer::cleanupConverter()
-{
-    if (m_swsContext) {
-        sws_freeContext(m_swsContext);
-        m_swsContext = nullptr;
-    }
-    
-    if (m_rgbBuffer) {
-        av_free(m_rgbBuffer);
-        m_rgbBuffer = nullptr;
-        m_rgbBufferSize = 0;
-    }
-}
-
-QImage VideoRenderer::convertFrameToImage(const AVFramePtr& frame)
-{
-    if (!frame || !m_swsContext || !m_rgbBuffer) {
-        return QImage();
-    }
-    
-    // 设置输出缓冲区
-    uint8_t* dstData[4] = { m_rgbBuffer, nullptr, nullptr, nullptr };
-    int dstLinesize[4] = { m_videoWidth * 3, 0, 0, 0 };
-    
-    // 执行图像转换
-    int result = sws_scale(
-        m_swsContext,
-        frame->data, frame->linesize,
-        0, m_videoHeight,
-        dstData, dstLinesize
-    );
-    
-    if (result != m_videoHeight) {
-        av::Logger::instance().error("Image conversion failed");
-        return QImage();
-    }
-    
-    // 创建QImage
-    QImage image(m_rgbBuffer, m_videoWidth, m_videoHeight, QImage::Format_RGB888);
-    return image.copy(); // 复制数据,避免缓冲区被覆盖
-}
-
-QRect VideoRenderer::calculateDisplayRect() const
-{
-    if (m_videoWidth <= 0 || m_videoHeight <= 0) {
-        return rect();
-    }
-    
-    QSize widgetSize = size();
-    QSize videoSize(m_videoWidth, m_videoHeight);
-    
-    if (!m_keepAspectRatio) {
-        return rect();
-    }
-    
-    // 计算保持宽高比的显示矩形
-    QSize scaledSize = videoSize.scaled(widgetSize, Qt::KeepAspectRatio);
-    
-    int x = (widgetSize.width() - scaledSize.width()) / 2;
-    int y = (widgetSize.height() - scaledSize.height()) / 2;
-    
-    return QRect(x, y, scaledSize.width(), scaledSize.height());
-}
-
-QPixmap VideoRenderer::scaleImage(const QImage& image) const
-{
-    if (image.isNull()) {
-        return QPixmap();
-    }
-    
-    QSize displaySize = size();
-    if (displaySize.isEmpty()) {
-        return QPixmap::fromImage(image);
-    }
-    
-    QSize targetSize;
-    if (m_keepAspectRatio) {
-        targetSize = image.size().scaled(displaySize, Qt::KeepAspectRatio);
-    } else {
-        targetSize = displaySize;
-    }
-    
-    if (targetSize == image.size()) {
-        return QPixmap::fromImage(image);
-    }
-    
-    QImage scaledImage = image.scaled(targetSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
-    return QPixmap::fromImage(scaledImage);
-}
-
-} // namespace player
-} // namespace av
-

+ 0 - 152
AV/code/player/video_renderer.h

@@ -1,152 +0,0 @@
-#ifndef AV_PLAYER_VIDEO_RENDERER_H
-#define AV_PLAYER_VIDEO_RENDERER_H
-
-#include <QWidget>
-#include <QLabel>
-#include <QPixmap>
-#include <QMutex>
-#include <QTimer>
-#include <memory>
-#include <atomic>
-
-extern "C" {
-#include <libavutil/frame.h>
-#include <libavutil/pixfmt.h>
-#include <libswscale/swscale.h>
-}
-
-#include "../base/media_common.h"
-
-namespace av {
-namespace player {
-
-/**
- * 视频渲染器类
-/**
- * 负责将解码后的视频帧渲染到Qt控件上
- */
-class VideoRenderer : public QLabel
-{
-    Q_OBJECT
-
-public:
-    explicit VideoRenderer(QWidget* parent = nullptr);
-    ~VideoRenderer();
-
-    /**
-     * 初始化视频渲染器
-     * @param width 视频宽度
-     * @param height 视频高度
-     * @param pixelFormat 像素格式
-     * @param fps 视频帧率(默认25fps)
-     * @return 是否成功
-     */
-    bool initialize(int width, int height, AVPixelFormat pixelFormat, double fps = 25.0);
-
-    /**
-     * 渲染视频帧
-     * @param frame 视频帧
-     * @return 是否成功
-     */
-    bool renderFrame(const AVFramePtr& frame);
-
-    /**
-     * 清空显示
-     */
-    void clear();
-
-    /**
-     * 设置保持宽高比
-     * @param keepAspectRatio 是否保持宽高比
-     */
-    void setKeepAspectRatio(bool keepAspectRatio);
-
-    /**
-     * 获取是否保持宽高比
-     */
-    bool getKeepAspectRatio() const;
-
-    /**
-     * 设置背景颜色
-     * @param color 背景颜色
-     */
-    void setBackgroundColor(const QColor& color);
-
-    /**
-     * 获取视频尺寸
-     */
-    QSize getVideoSize() const;
-
-    /**
-     * 获取显示尺寸
-     */
-    QSize getDisplaySize() const;
-
-    /**
-     * 是否已初始化
-     */
-    bool isInitialized() const;
-
-protected:
-    void paintEvent(QPaintEvent* event) override;
-    void resizeEvent(QResizeEvent* event) override;
-
-private slots:
-    void updateDisplay();
-
-private:
-    /**
-     * 初始化图像转换器
-     */
-    bool initConverter();
-
-    /**
-     * 清理图像转换器
-     */
-    void cleanupConverter();
-
-    /**
-     * 转换视频帧为QImage
-     */
-    QImage convertFrameToImage(const AVFramePtr& frame);
-
-    /**
-     * 计算显示矩形
-     */
-    QRect calculateDisplayRect() const;
-
-    /**
-     * 缩放图像
-     */
-    QPixmap scaleImage(const QImage& image) const;
-
-private:
-    // 视频参数
-    int m_videoWidth;
-    int m_videoHeight;
-    AVPixelFormat m_inputFormat;
-    double m_fps;
-    
-    // 图像转换器
-    SwsContext* m_swsContext;
-    uint8_t* m_rgbBuffer;
-    int m_rgbBufferSize;
-    
-    // 显示相关
-    QPixmap m_currentPixmap;
-    QColor m_backgroundColor;
-    bool m_keepAspectRatio;
-    
-    // 状态
-    std::atomic<bool> m_initialized;
-
-    // 更新定时器
-    QTimer* m_updateTimer;
-    
-    mutable QMutex m_mutex;
-};
-
-} // namespace player
-} // namespace av
-
-#endif // AV_PLAYER_VIDEO_RENDERER_H

+ 2 - 18
AV/test_player_adapter.cpp

@@ -7,7 +7,6 @@
 
 #include "code/player/player_adapter.h"
 #include "code/player/opengl_video_renderer.h"
-#include "code/player/video_renderer.h"
 #include <QApplication>
 #include <QMainWindow>
 #include <QVBoxLayout>
@@ -151,10 +150,8 @@ private:
         QHBoxLayout* rendererLayout = new QHBoxLayout(rendererGroup);
         
         QPushButton* useOpenGLButton = new QPushButton("Use OpenGL Renderer", this);
-        QPushButton* useQLabelButton = new QPushButton("Use QLabel Renderer", this);
         
         rendererLayout->addWidget(useOpenGLButton);
-        rendererLayout->addWidget(useQLabelButton);
         
         mainLayout->addWidget(rendererGroup);
         
@@ -167,11 +164,7 @@ private:
         m_openGLRenderer->setMinimumSize(640, 480);
         videoLayout->addWidget(m_openGLRenderer);
         
-        // 创建传统渲染器(隐藏)
-        m_qlabelRenderer = new VideoRenderer(this);
-        m_qlabelRenderer->setMinimumSize(640, 480);
-        m_qlabelRenderer->hide();
-        videoLayout->addWidget(m_qlabelRenderer);
+
         
         mainLayout->addWidget(videoGroup);
         
@@ -242,16 +235,8 @@ private:
         
         // 渲染器选择按钮
         connect(useOpenGLButton, &QPushButton::clicked, this, [this]() {
-            m_qlabelRenderer->hide();
-            m_openGLRenderer->show();
             m_playerAdapter->setOpenGLVideoRenderer(m_openGLRenderer);
         });
-        
-        connect(useQLabelButton, &QPushButton::clicked, this, [this]() {
-            m_openGLRenderer->hide();
-            m_qlabelRenderer->show();
-            m_playerAdapter->setVideoRenderer(m_qlabelRenderer);
-        });
     }
     
     void setupPlayer() {
@@ -297,7 +282,6 @@ private:
 private:
     std::unique_ptr<PlayerAdapter> m_playerAdapter;
     OpenGLVideoRenderer* m_openGLRenderer;
-    VideoRenderer* m_qlabelRenderer;
     
     QLabel* m_volumeLabel;
     QLabel* m_speedLabel;
@@ -324,4 +308,4 @@ int main(int argc, char* argv[]) {
     return app.exec();
 }
 
-#include "test_player_adapter.moc" 
+#include "test_player_adapter.moc"