Skip to content
Snippets Groups Projects
Commit ad301f1c authored by Silas Della Contrada's avatar Silas Della Contrada
Browse files

Done some work on QSV encoder

parent 3881047d
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include "filter/DecoderMMAL.h" #include "filter/DecoderMMAL.h"
#include "filter/AudioDecoder.h" #include "filter/AudioDecoder.h"
#include "filter/EncoderVAAPI.h" #include "filter/EncoderVAAPI.h"
#include "filter/EncoderQSV.h"
#include "output/IPacketSink.h" #include "output/IPacketSink.h"
#include "output/IFrameSink.h" #include "output/IFrameSink.h"
#include "output/IAudioSink.h" #include "output/IAudioSink.h"
......
...@@ -66,6 +66,10 @@ set(SOURCES ...@@ -66,6 +66,10 @@ set(SOURCES
filter/private/EncoderVAAPI_p.h filter/private/EncoderVAAPI_p.h
filter/EncoderVAAPI.cpp filter/EncoderVAAPI.cpp
filter/EncoderQSV.h
filter/private/EncoderQSV_p.h
filter/EncoderQSV.cpp
output/RenderClock.h output/RenderClock.h
output/private/RenderClock_p.h output/private/RenderClock_p.h
output/RenderClock.cpp output/RenderClock.cpp
......
This diff is collapsed.
...@@ -259,7 +259,7 @@ namespace AVQt { ...@@ -259,7 +259,7 @@ namespace AVQt {
char strBuf[strBufSize]; char strBuf[strBufSize];
while (d->m_running.load()) { while (d->m_running.load()) {
if (!d->m_paused.load() && d->m_inputQueue.size() > 5) { if (!d->m_paused.load() && d->m_inputQueue.size() > 1) {
bool shouldBe = true; bool shouldBe = true;
// Encoder init is only possible with frame parameters // Encoder init is only possible with frame parameters
if (d->m_firstFrame.compare_exchange_strong(shouldBe, false)) { if (d->m_firstFrame.compare_exchange_strong(shouldBe, false)) {
......
...@@ -35,6 +35,7 @@ namespace AVQt { ...@@ -35,6 +35,7 @@ namespace AVQt {
QMutex m_inputQueueMutex{}; QMutex m_inputQueueMutex{};
QQueue<QPair<AVFrame *, int64_t>> m_inputQueue{}; QQueue<QPair<AVFrame *, int64_t>> m_inputQueue{};
IFrameSource *m_pLockedSource = nullptr;
QMutex m_cbListMutex{}; QMutex m_cbListMutex{};
QList<IPacketSink *> m_cbList{}; QList<IPacketSink *> m_cbList{};
......
...@@ -74,7 +74,7 @@ int main(int argc, char *argv[]) { ...@@ -74,7 +74,7 @@ int main(int argc, char *argv[]) {
AVQt::IEncoder *videoEncoder; AVQt::IEncoder *videoEncoder;
#ifdef Q_OS_LINUX #ifdef Q_OS_LINUX
videoDecoder = new AVQt::DecoderQSV; videoDecoder = new AVQt::DecoderQSV;
videoEncoder = new AVQt::EncoderVAAPI(AVQt::IEncoder::CODEC::HEVC, 10 * 1000 * 1000); videoEncoder = new AVQt::EncoderQSV(AVQt::IEncoder::CODEC::HEVC, 10 * 1000 * 1000);
#elif defined(Q_OS_WINDOWS) #elif defined(Q_OS_WINDOWS)
videoDecoder = new AVQt::DecoderDXVA2(); videoDecoder = new AVQt::DecoderDXVA2();
#else #else
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment