DATV: shut down video player before destruction

This commit is contained in:
f4exb 2021-03-27 09:31:09 +01:00
parent cc8bbf6559
commit 7e375079fe
3 changed files with 10 additions and 4 deletions

View File

@ -63,6 +63,7 @@ void DATVDemodBaseband::startWork()
void DATVDemodBaseband::stopWork() void DATVDemodBaseband::stopWork()
{ {
QMutexLocker mutexLocker(&m_mutex); QMutexLocker mutexLocker(&m_mutex);
m_sink.stopVideo();
disconnect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages())); disconnect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()));
QObject::disconnect( QObject::disconnect(
&m_sampleFifo, &m_sampleFifo,

View File

@ -69,6 +69,14 @@ DATVDemodSink::~DATVDemodSink()
m_objVideoStream->deleteLater(); m_objVideoStream->deleteLater();
} }
stopVideo();
CleanUpDATVFramework();
delete m_objRFFilter;
}
void DATVDemodSink::stopVideo()
{
if (m_objRenderThread) if (m_objRenderThread)
{ {
if (m_objRenderThread->isRunning()) if (m_objRenderThread->isRunning())
@ -78,10 +86,6 @@ DATVDemodSink::~DATVDemodSink()
m_objRenderThread->wait(); m_objRenderThread->wait();
} }
} }
CleanUpDATVFramework();
delete m_objRFFilter;
} }
bool DATVDemodSink::setTVScreen(TVScreen *objScreen) bool DATVDemodSink::setTVScreen(TVScreen *objScreen)

View File

@ -70,6 +70,7 @@ public:
bool videoDecodeOK(); bool videoDecodeOK();
bool playVideo(); bool playVideo();
void stopVideo();
int GetSampleRate(); int GetSampleRate();
double getMagSq() const { return m_objMagSqAverage; } //!< Beware this is scaled to 2^30 double getMagSq() const { return m_objMagSqAverage; } //!< Beware this is scaled to 2^30