From 7e6f484e3c30be4e497ab9c6e51f603783476e6c Mon Sep 17 00:00:00 2001
From: silas <s.developer@4-dc.de>
Date: Tue, 8 Jun 2021 17:41:33 +0200
Subject: [PATCH] Fixed "unused" errors

---
 AVQt/filter/AudioDecoder.cpp      |   5 -
 AVQt/filter/DecoderDXVA2.cpp      |   3 -
 AVQt/filter/DecoderMMAL.cpp       |   3 -
 AVQt/filter/DecoderMMAL.cpp.orig  | 327 ------------------------------
 AVQt/filter/DecoderQSV.cpp        |   3 -
 AVQt/filter/DecoderVAAPI.cpp      |   3 -
 AVQt/filter/EncoderVAAPI.cpp      |   6 +-
 AVQt/input/Demuxer.cpp            |   2 -
 AVQt/input/Demuxer.h              |   2 +-
 AVQt/output/OpenALAudioOutput.cpp |   2 -
 AVQt/output/OpenGLRenderer.cpp    |   4 +-
 11 files changed, 3 insertions(+), 357 deletions(-)
 delete mode 100644 AVQt/filter/DecoderMMAL.cpp.orig

diff --git a/AVQt/filter/AudioDecoder.cpp b/AVQt/filter/AudioDecoder.cpp
index c0f131e..867c7d3 100644
--- a/AVQt/filter/AudioDecoder.cpp
+++ b/AVQt/filter/AudioDecoder.cpp
@@ -14,11 +14,9 @@
 
 namespace AVQt {
     AudioDecoder::AudioDecoder(QObject *parent) : QThread(parent), d_ptr(new AudioDecoderPrivate(this)) {
-        Q_D(AVQt::AudioDecoder);
     }
 
     [[maybe_unused]] AudioDecoder::AudioDecoder(AVQt::AudioDecoderPrivate &p) : d_ptr(&p) {
-        Q_D(AVQt::AudioDecoder);
     }
 
     AudioDecoder::AudioDecoder(AudioDecoder &&other) noexcept: d_ptr(other.d_ptr) {
@@ -185,21 +183,18 @@ namespace AVQt {
     }
 
     void AudioDecoder::deinit(IPacketSource *source) {
-        Q_D(AVQt::AudioDecoder);
         Q_UNUSED(source)
 
         deinit();
     }
 
     void AudioDecoder::start(IPacketSource *source) {
-        Q_D(AVQt::AudioDecoder);
         Q_UNUSED(source)
 
         start();
     }
 
     void AudioDecoder::stop(IPacketSource *source) {
-        Q_D(AVQt::AudioDecoder);
         Q_UNUSED(source)
 
         stop();
diff --git a/AVQt/filter/DecoderDXVA2.cpp b/AVQt/filter/DecoderDXVA2.cpp
index cc609c7..41c5c29 100644
--- a/AVQt/filter/DecoderDXVA2.cpp
+++ b/AVQt/filter/DecoderDXVA2.cpp
@@ -20,7 +20,6 @@
 
 namespace AVQt {
     DecoderDXVA2::DecoderDXVA2(QObject *parent) : QThread(parent), d_ptr(new DecoderDXVA2Private(this)) {
-        Q_D(AVQt::DecoderDXVA2);
     }
 
     [[maybe_unused]] DecoderDXVA2::DecoderDXVA2(DecoderDXVA2Private &p) : d_ptr(&p) {
@@ -60,8 +59,6 @@ namespace AVQt {
     }
 
     int DecoderDXVA2::init() {
-        Q_D(AVQt::DecoderDXVA2);
-
         return 0;
     }
 
diff --git a/AVQt/filter/DecoderMMAL.cpp b/AVQt/filter/DecoderMMAL.cpp
index 7ed4a97..2ddf4d6 100644
--- a/AVQt/filter/DecoderMMAL.cpp
+++ b/AVQt/filter/DecoderMMAL.cpp
@@ -20,7 +20,6 @@
 
 namespace AVQt {
     DecoderMMAL::DecoderMMAL(QObject *parent) : QThread(parent), d_ptr(new DecoderMMALPrivate(this)) {
-        Q_D(AVQt::DecoderMMAL);
     }
 
     [[maybe_unused]] DecoderMMAL::DecoderMMAL(DecoderMMALPrivate &p) : d_ptr(&p) {
@@ -60,8 +59,6 @@ namespace AVQt {
     }
 
     int DecoderMMAL::init() {
-        Q_D(AVQt::DecoderMMAL);
-
         return 0;
     }
 
diff --git a/AVQt/filter/DecoderMMAL.cpp.orig b/AVQt/filter/DecoderMMAL.cpp.orig
deleted file mode 100644
index 7ed4a97..0000000
--- a/AVQt/filter/DecoderMMAL.cpp.orig
+++ /dev/null
@@ -1,327 +0,0 @@
-//
-// Created by silas on 3/1/21.
-//
-
-#include "private/DecoderMMAL_p.h"
-#include "DecoderMMAL.h"
-#include "output/IFrameSink.h"
-#include "output/IAudioSink.h"
-#include "input/IPacketSource.h"
-
-#include <QApplication>
-#include <QImage>
-//#include <QtConcurrent>
-
-//#ifndef DOXYGEN_SHOULD_SKIP_THIS
-//#define NOW() std::chrono::high_resolution_clock::now()
-//#define TIME_US(t1, t2) std::chrono::duration_cast<std::chrono::microseconds>(t2 - t1).count()
-//#endif
-
-
-namespace AVQt {
-    DecoderMMAL::DecoderMMAL(QObject *parent) : QThread(parent), d_ptr(new DecoderMMALPrivate(this)) {
-        Q_D(AVQt::DecoderMMAL);
-    }
-
-    [[maybe_unused]] DecoderMMAL::DecoderMMAL(DecoderMMALPrivate &p) : d_ptr(&p) {
-
-    }
-
-    DecoderMMAL::DecoderMMAL(DecoderMMAL &&other) noexcept: d_ptr(other.d_ptr) {
-        other.d_ptr = nullptr;
-        d_ptr->q_ptr = this;
-    }
-
-    DecoderMMAL::~DecoderMMAL() {
-        delete d_ptr;
-    }
-
-    void DecoderMMAL::init(IPacketSource *source, AVRational framerate, AVRational timebase, int64_t duration, AVCodecParameters *vParams,
-                           AVCodecParameters *aParams, AVCodecParameters *sParams) {
-        Q_UNUSED(aParams)
-        Q_UNUSED(sParams)
-        Q_D(AVQt::DecoderMMAL);
-        Q_UNUSED(source)
-        if (d->m_pCodecParams) {
-            avcodec_parameters_free(&d->m_pCodecParams);
-        }
-        d->m_pCodecParams = avcodec_parameters_alloc();
-        avcodec_parameters_copy(d->m_pCodecParams, vParams);
-        d->m_duration = duration;
-        d->m_framerate = framerate;
-        d->m_timebase = timebase;
-        {
-            QMutexLocker lock(&d->m_cbListMutex);
-            for (const auto &cb: d->m_cbList) {
-                cb->init(this, framerate, duration);
-            }
-        }
-        init();
-    }
-
-    int DecoderMMAL::init() {
-        Q_D(AVQt::DecoderMMAL);
-
-        return 0;
-    }
-
-    void DecoderMMAL::deinit(IPacketSource *source) {
-        Q_UNUSED(source)
-        deinit();
-    }
-
-    int DecoderMMAL::deinit() {
-        Q_D(AVQt::DecoderMMAL);
-
-        stop();
-
-        if (d->m_pCodecParams) {
-            avcodec_parameters_free(&d->m_pCodecParams);
-            d->m_pCodecParams = nullptr;
-        }
-        if (d->m_pCodecCtx) {
-            avcodec_close(d->m_pCodecCtx);
-            avcodec_free_context(&d->m_pCodecCtx);
-            d->m_pCodecCtx = nullptr;
-            d->m_pCodec = nullptr;
-        }
-
-        return 0;
-    }
-
-    void DecoderMMAL::start(IPacketSource *source) {
-        Q_UNUSED(source)
-        start();
-    }
-
-    int DecoderMMAL::start() {
-        Q_D(AVQt::DecoderMMAL);
-
-        bool notRunning = false;
-        if (d->m_running.compare_exchange_strong(notRunning, true)) {
-            d->m_paused.store(false);
-            paused(false);
-
-            QThread::start();
-            return 0;
-        }
-        return -1;
-    }
-
-    void DecoderMMAL::stop(IPacketSource *source) {
-        Q_UNUSED(source)
-        stop();
-    }
-
-    int DecoderMMAL::stop() {
-        Q_D(AVQt::DecoderMMAL);
-
-        bool shouldBeCurrent = true;
-        if (d->m_running.compare_exchange_strong(shouldBeCurrent, false)) {
-            {
-//                QMutexLocker lock(&d->m_cbListMutex);
-                for (const auto &cb: d->m_cbList) {
-                    cb->stop(this);
-                }
-            }
-            {
-                QMutexLocker lock(&d->m_inputQueueMutex);
-                for (auto &packet : d->m_inputQueue) {
-                    av_packet_unref(packet);
-                    av_packet_free(&packet);
-                }
-                d->m_inputQueue.clear();
-            }
-
-            wait();
-
-            return 0;
-        }
-
-        return -1;
-    }
-
-    void DecoderMMAL::pause(bool pause) {
-        Q_D(AVQt::DecoderMMAL);
-        if (d->m_running.load() != pause) {
-            d->m_paused.store(pause);
-
-            for (const auto &cb: d->m_cbList) {
-                cb->pause(this, pause);
-            }
-
-            paused(pause);
-        }
-    }
-
-    bool DecoderMMAL::isPaused() {
-        Q_D(AVQt::DecoderMMAL);
-        return d->m_paused.load();
-    }
-
-    qint64 DecoderMMAL::registerCallback(IFrameSink *frameSink) {
-        Q_D(AVQt::DecoderMMAL);
-
-        QMutexLocker lock(&d->m_cbListMutex);
-        if (!d->m_cbList.contains(frameSink)) {
-            d->m_cbList.append(frameSink);
-            if (d->m_running.load() && d->m_pCodecCtx) {
-                frameSink->init(this, d->m_framerate, d->m_duration);
-                frameSink->start(this);
-            }
-            return d->m_cbList.indexOf(frameSink);
-        }
-        return -1;
-    }
-
-    qint64 DecoderMMAL::unregisterCallback(IFrameSink *frameSink) {
-        Q_D(AVQt::DecoderMMAL);
-        QMutexLocker lock(&d->m_cbListMutex);
-        if (d->m_cbList.contains(frameSink)) {
-            auto result = d->m_cbList.indexOf(frameSink);
-            d->m_cbList.removeOne(frameSink);
-            frameSink->stop(this);
-            frameSink->deinit(this);
-            return result;
-        }
-        return -1;
-    }
-
-    void DecoderMMAL::onPacket(IPacketSource *source, AVPacket *packet, int8_t packetType) {
-        Q_UNUSED(source)
-
-        Q_D(AVQt::DecoderMMAL);
-
-        if (packetType == IPacketSource::CB_VIDEO) {
-            AVPacket *queuePacket = av_packet_clone(packet);
-            while (d->m_inputQueue.size() >= 50) {
-                QThread::msleep(4);
-            }
-            QMutexLocker lock(&d->m_inputQueueMutex);
-            d->m_inputQueue.append(queuePacket);
-        }
-    }
-
-    void DecoderMMAL::run() {
-        Q_D(AVQt::DecoderMMAL);
-
-        while (d->m_running) {
-            if (!d->m_paused.load() && !d->m_inputQueue.isEmpty()) {
-                int ret;
-                constexpr size_t strBufSize = 64;
-                char strBuf[strBufSize];
-                // If m_pCodecParams is nullptr, it is not initialized by packet source, if video codec context is nullptr, this is the first packet
-                if (d->m_pCodecParams && !d->m_pCodecCtx) {
-                    switch (d->m_pCodecParams->codec_id) {
-                        case AV_CODEC_ID_H264:
-                            d->m_pCodec = avcodec_find_decoder_by_name("h264_mmal");
-                            break;
-                        case AV_CODEC_ID_MPEG2VIDEO:
-                            d->m_pCodec = avcodec_find_decoder_by_name("mpeg2_mmal");
-                            break;
-                        case AV_CODEC_ID_MPEG4:
-                            d->m_pCodec = avcodec_find_decoder_by_name("mpeg4_mmal");
-                            break;
-                        case AV_CODEC_ID_VC1:
-                            d->m_pCodec = avcodec_find_decoder_by_name("vc1_mmal");
-                            break;
-                        default:
-                            qFatal("No MMAL decoder found for the specified codec: %s", avcodec_get_name(d->m_pCodecParams->codec_id));
-                            break;
-                    }
-
-                    d->m_pCodecCtx = avcodec_alloc_context3(d->m_pCodec);
-                    if (!d->m_pCodecCtx) {
-                        qFatal("Could not allocate MMAL decoder context, probably out of memory");
-                    }
-
-                    avcodec_parameters_to_context(d->m_pCodecCtx, d->m_pCodecParams);
-                    ret = avcodec_open2(d->m_pCodecCtx, d->m_pCodec, nullptr);
-                    if (ret != 0) {
-                        qFatal("%d: Could not open MMAL decoder: %s", ret, av_make_error_string(strBuf, strBufSize, ret));
-                    }
-
-                    for (const auto &cb: d->m_cbList) {
-                        cb->start(this);
-                    }
-                    started();
-                }
-                {
-                    QMutexLocker lock(&d->m_inputQueueMutex);
-                    while (!d->m_inputQueue.isEmpty()) {
-                        AVPacket *packet = d->m_inputQueue.dequeue();
-                        lock.unlock();
-
-                        qDebug("Video packet queue size: %d", d->m_inputQueue.size());
-
-                        ret = avcodec_send_packet(d->m_pCodecCtx, packet);
-                        if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) {
-                            lock.relock();
-                            d->m_inputQueue.prepend(packet);
-                            break;
-                        } else if (ret < 0) {
-                            qFatal("%d: Error sending packet to MMAL decoder: %s", ret, av_make_error_string(strBuf, strBufSize, ret));
-                        }
-                        av_packet_unref(packet);
-                        av_packet_free(&packet);
-                        lock.relock();
-                    }
-                }
-                AVFrame *frame = av_frame_alloc();
-                while (true) {
-                    ret = avcodec_receive_frame(d->m_pCodecCtx, frame);
-                    if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) {
-                        break;
-                    } else if (ret < 0) {
-                        qFatal("%d: Error receiving frame from MMAL decoder: %s", ret, av_make_error_string(strBuf, strBufSize, ret));
-                    }
-
-//                    auto t1 = NOW();
-//                    AVFrame *swFrame = av_frame_alloc();
-//                    ret = av_hwframe_transfer_data(swFrame, frame, 0);
-//                    if (ret != 0) {
-//                        qFatal("%d: Could not get hw frame: %s", ret, av_make_error_string(strBuf, strBufSize, ret));
-//                    }
-//                    auto t3 = NOW();
-
-                    QMutexLocker lock2(&d->m_cbListMutex);
-//                    QList<QFuture<void>> cbFutures;
-                    for (const auto &cb: d->m_cbList) {
-//                        cbFutures.append(QtConcurrent::run([=] {
-                        AVFrame *cbFrame = av_frame_clone(frame);
-                        cbFrame->pts = av_rescale_q(frame->pts, d->m_timebase,
-                                                    av_make_q(1, 1000000)); // Rescale pts to microseconds for easier processing
-                        qDebug("Calling video frame callback for PTS: %lld, Timebase: %d/%d", static_cast<long long>(cbFrame->pts),
-                               d->m_timebase.num,
-                               d->m_timebase.den);
-                        QTime time = QTime::currentTime();
-                        cb->onFrame(this, cbFrame, static_cast<int64_t>(av_q2d(av_inv_q(d->m_framerate)) * 1000.0));
-                        qDebug() << "Video CB time:" << time.msecsTo(QTime::currentTime());
-                        av_frame_unref(cbFrame);
-                        av_frame_free(&cbFrame);
-//                        }));
-                    }
-//                    bool cbBusy = true;
-//                    while (cbBusy) {
-//                        cbBusy = false;
-//                        for (const auto &future: cbFutures) {
-//                            if (future.isRunning()) {
-//                                cbBusy = true;
-//                                break;
-//                            }
-//                        }
-//                        usleep(500);
-//                    }
-//                    auto t2 = NOW();
-//                    qDebug("Decoder frame transfer time: %ld us", TIME_US(t1, t3));
-
-//                    av_frame_free(&swFrame);
-                    av_frame_unref(frame);
-                }
-                av_frame_free(&frame);
-            } else {
-                msleep(4);
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/AVQt/filter/DecoderQSV.cpp b/AVQt/filter/DecoderQSV.cpp
index 091b03c..464d43c 100644
--- a/AVQt/filter/DecoderQSV.cpp
+++ b/AVQt/filter/DecoderQSV.cpp
@@ -20,7 +20,6 @@
 
 namespace AVQt {
     DecoderQSV::DecoderQSV(QObject *parent) : QThread(parent), d_ptr(new DecoderQSVPrivate(this)) {
-        Q_D(AVQt::DecoderQSV);
     }
 
     [[maybe_unused]] DecoderQSV::DecoderQSV(DecoderQSVPrivate &p) : d_ptr(&p) {
@@ -60,8 +59,6 @@ namespace AVQt {
     }
 
     int DecoderQSV::init() {
-        Q_D(AVQt::DecoderQSV);
-
         return 0;
     }
 
diff --git a/AVQt/filter/DecoderVAAPI.cpp b/AVQt/filter/DecoderVAAPI.cpp
index f4b4045..a68f3ed 100644
--- a/AVQt/filter/DecoderVAAPI.cpp
+++ b/AVQt/filter/DecoderVAAPI.cpp
@@ -20,7 +20,6 @@
 
 namespace AVQt {
     DecoderVAAPI::DecoderVAAPI(QObject *parent) : QThread(parent), d_ptr(new DecoderVAAPIPrivate(this)) {
-        Q_D(AVQt::DecoderVAAPI);
     }
 
     [[maybe_unused]] DecoderVAAPI::DecoderVAAPI(DecoderVAAPIPrivate &p) : d_ptr(&p) {
@@ -60,8 +59,6 @@ namespace AVQt {
     }
 
     int DecoderVAAPI::init() {
-        Q_D(AVQt::DecoderVAAPI);
-
         return 0;
     }
 
diff --git a/AVQt/filter/EncoderVAAPI.cpp b/AVQt/filter/EncoderVAAPI.cpp
index c80e22f..1c76568 100644
--- a/AVQt/filter/EncoderVAAPI.cpp
+++ b/AVQt/filter/EncoderVAAPI.cpp
@@ -142,29 +142,25 @@ namespace AVQt {
 
     int EncoderVAAPI::deinit(IFrameSource *source) {
         Q_UNUSED(source)
-        Q_D(AVQt::EncoderVAAPI);
         deinit();
         return 0;
     }
 
     int EncoderVAAPI::start(IFrameSource *source) {
         Q_UNUSED(source)
-        Q_D(AVQt::EncoderVAAPI);
         start();
         return 0;
     }
 
     int EncoderVAAPI::stop(IFrameSource *source) {
         Q_UNUSED(source)
-        Q_D(AVQt::EncoderVAAPI);
         stop();
         return 0;
     }
 
     void EncoderVAAPI::pause(IFrameSource *source, bool paused) {
         Q_UNUSED(source)
-        Q_D(AVQt::EncoderVAAPI);
-        this->pause(paused);
+        pause(paused);
     }
 
     qint64 EncoderVAAPI::registerCallback(IPacketSink *packetSink, int8_t type) {
diff --git a/AVQt/input/Demuxer.cpp b/AVQt/input/Demuxer.cpp
index df65c4a..d99e134 100644
--- a/AVQt/input/Demuxer.cpp
+++ b/AVQt/input/Demuxer.cpp
@@ -15,8 +15,6 @@ namespace AVQt {
     }
 
     Demuxer::Demuxer(DemuxerPrivate &p) : d_ptr(&p) {
-        Q_D(AVQt::Demuxer);
-
     }
 
     void Demuxer::pause(bool pause) {
diff --git a/AVQt/input/Demuxer.h b/AVQt/input/Demuxer.h
index 295e167..313c9be 100644
--- a/AVQt/input/Demuxer.h
+++ b/AVQt/input/Demuxer.h
@@ -77,7 +77,7 @@ namespace AVQt {
          * \brief Stops packet source (e.g. Interrupt processing thread, free camera).
          * @return Status code (0 = Success)
          */
-        Q_INVOKABLE int stop();
+        Q_INVOKABLE int stop() Q_DECL_OVERRIDE;
 
         /*!
          * \brief Sets paused flag of packet source
diff --git a/AVQt/output/OpenALAudioOutput.cpp b/AVQt/output/OpenALAudioOutput.cpp
index e5352fb..bd6d578 100644
--- a/AVQt/output/OpenALAudioOutput.cpp
+++ b/AVQt/output/OpenALAudioOutput.cpp
@@ -10,8 +10,6 @@
 
 namespace AVQt {
     OpenALAudioOutput::OpenALAudioOutput(QObject *parent) : QThread(parent), d_ptr(new OpenALAudioOutputPrivate(this)) {
-        Q_D(AVQt::OpenALAudioOutput);
-
     }
 
     [[maybe_unused]] OpenALAudioOutput::OpenALAudioOutput(OpenALAudioOutputPrivate &p) : d_ptr(&p) {
diff --git a/AVQt/output/OpenGLRenderer.cpp b/AVQt/output/OpenGLRenderer.cpp
index fa2f2ef..8ce839b 100644
--- a/AVQt/output/OpenGLRenderer.cpp
+++ b/AVQt/output/OpenGLRenderer.cpp
@@ -32,8 +32,6 @@ namespace AVQt {
     }
 
     OpenGLRenderer::~OpenGLRenderer() noexcept {
-        Q_D(AVQt::OpenGLRenderer);
-
         delete d_ptr;
     }
 
@@ -429,7 +427,7 @@ namespace AVQt {
                                 UTexActive = true;
                                 break;
                             default:
-                                qWarning("[AVQt::OpenGLRenderer] Unsupported pixel format");
+                                qFatal("[AVQt::OpenGLRenderer] Unsupported pixel format");
                                 break;
                         }
                         d->m_yTexture = new QOpenGLTexture(QOpenGLTexture::Target2D);
-- 
GitLab