DATV demod: player refactoring: preliminary cleanup (2) and fix avio buffer size

pull/836/head
f4exb 2021-04-04 13:12:38 +02:00
rodzic 45b12a1c2d
commit 1c0aa9cd8e
5 zmienionych plików z 14 dodań i 22 usunięć

Wyświetl plik

@ -726,9 +726,8 @@ QString DATVDemodGUI::formatBytes(qint64 intBytes)
}
void DATVDemodGUI::on_StreamDataAvailable(int *intPackets, int *intBytes, int *intPercent, qint64 *intTotalReceived)
void DATVDemodGUI::on_StreamDataAvailable(int *intBytes, int *intPercent, qint64 *intTotalReceived)
{
(void) intPackets;
ui->lblStatus->setText(QString("Data: %1B").arg(formatBytes(*intTotalReceived)));
m_intLastDecodedData = *intTotalReceived;

Wyświetl plik

@ -78,7 +78,7 @@ private slots:
void on_chkAllowDrift_clicked();
void on_fullScreen_clicked();
void on_mouseEvent(QMouseEvent* obj);
void on_StreamDataAvailable(int *intPackets, int *intBytes, int *intPercent, qint64 *intTotalReceived);
void on_StreamDataAvailable(int *intBytes, int *intPercent, qint64 *intTotalReceived);
void on_StreamMetaDataChanged(DataTSMetaData2 *objMetaData);
void on_chkFastlock_clicked();
void on_cmbFilter_currentIndexChanged(int index);

Wyświetl plik

@ -343,7 +343,7 @@ bool DATVideoRender::PreprocessStream()
bool DATVideoRender::OpenStream(DATVideostream *device)
{
int ioBufferSize = 32768;
int ioBufferSize = DATVideostream::m_defaultMemoryLimit;
unsigned char *ptrIOBuffer = nullptr;
AVIOContext *ioCtx = nullptr;

Wyświetl plik

@ -25,7 +25,7 @@ DATVideostream::DATVideostream():
cleanUp();
m_intTotalReceived = 0;
m_intPacketReceived = 0;
m_intMemoryLimit = DefaultMemoryLimit;
m_intMemoryLimit = m_defaultMemoryLimit;
MultiThreaded = false;
ThreadTimeOut = -1;
@ -50,14 +50,13 @@ void DATVideostream::cleanUp()
m_intBytesAvailable = 0;
m_intBytesWaiting = 0;
m_intQueueWaiting = 0;
m_intPercentBuffer = 0;
}
void DATVideostream::resetTotalReceived()
{
m_intTotalReceived = 0;
emit onDataPackets(&m_intQueueWaiting, &m_intBytesWaiting, &m_intPercentBuffer, &m_intTotalReceived);
emit onDataPackets(&m_intBytesWaiting, &m_intPercentBuffer, &m_intTotalReceived);
}
int DATVideostream::pushData(const char * chrData, int intSize)
@ -78,17 +77,14 @@ int DATVideostream::pushData(const char * chrData, int intSize)
m_objFIFO.enqueue(QByteArray(chrData,intSize));
m_intBytesAvailable = m_objFIFO.head().size();
m_intTotalReceived += intSize;
m_intQueueWaiting=m_objFIFO.count();
m_objMutex.unlock();
if ((m_objeventLoop.isRunning())
&& (m_intQueueWaiting >= MinStackSize))
{
if (m_objeventLoop.isRunning()) {
emit onDataAvailable();
}
if (m_intPacketReceived % MinStackSize == 1)
if (m_intPacketReceived % m_minStackSize == 1)
{
m_intPercentBuffer = (100*m_intBytesWaiting)/m_intMemoryLimit;
@ -96,7 +92,7 @@ int DATVideostream::pushData(const char * chrData, int intSize)
m_intPercentBuffer = 100;
}
emit onDataPackets(&m_intQueueWaiting, &m_intBytesWaiting, &m_intPercentBuffer, &m_intTotalReceived);
emit onDataPackets(&m_intBytesWaiting, &m_intPercentBuffer, &m_intTotalReceived);
}
return intSize;
@ -146,7 +142,7 @@ qint64 DATVideostream::readData(char *data, qint64 len)
m_objMutex.lock();
//DATA in FIFO ? -> Waiting for DATA
if ((m_objFIFO.isEmpty()) || (m_objFIFO.count()<MinStackSize))
if ((m_objFIFO.isEmpty()) || (m_objFIFO.count() < m_minStackSize))
{
m_objMutex.unlock();
@ -154,7 +150,7 @@ qint64 DATVideostream::readData(char *data, qint64 len)
{
intThreadLoop=0;
while ((m_objFIFO.isEmpty()) || (m_objFIFO.count() < MinStackSize))
while ((m_objFIFO.isEmpty()) || (m_objFIFO.count() < m_minStackSize))
{
QThread::msleep(5);
intThreadLoop++;
@ -195,10 +191,9 @@ qint64 DATVideostream::readData(char *data, qint64 len)
m_intBytesWaiting -= intEffectiveLen;
}
m_intQueueWaiting = m_objFIFO.count();
m_intPercentBuffer = (100*m_intBytesWaiting) / m_intMemoryLimit;
emit onDataPackets(&m_intQueueWaiting, &m_intBytesWaiting, &m_intPercentBuffer, &m_intTotalReceived);
emit onDataPackets(&m_intBytesWaiting, &m_intPercentBuffer, &m_intTotalReceived);
//Next available DATA
m_intBytesAvailable = m_objFIFO.head().size();

Wyświetl plik

@ -26,9 +26,6 @@
#include <QMutex>
#include <QThread>
#define MinStackSize 4
#define DefaultMemoryLimit 2048000
class DATVideostream : public QIODevice
{
Q_OBJECT
@ -39,6 +36,8 @@ public:
bool MultiThreaded;
int ThreadTimeOut;
static const int m_defaultMemoryLimit = 2048000;
static const int m_minStackSize = 4;
int pushData(const char * chrData, int intSize);
void resetTotalReceived();
@ -54,7 +53,7 @@ public:
signals:
void onDataAvailable();
void onDataPackets(int *intDataPackets, int *intDataBytes, int *intPercentBuffer,qint64 *intTotalReceived);
void onDataPackets(int *intDataBytes, int *intPercentBuffer,qint64 *intTotalReceived);
protected:
@ -69,7 +68,6 @@ private:
int m_intMemoryLimit;
int m_intBytesAvailable;
int m_intBytesWaiting;
int m_intQueueWaiting;
int m_intPercentBuffer;
qint64 m_intTotalReceived;
qint64 m_intPacketReceived;