mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-29 05:22:25 -04:00
DATV demod: DATVideoRender: make meta data private
This commit is contained in:
parent
300fd37880
commit
252316f99e
@ -770,7 +770,7 @@ void DATVDemodGUI::on_udpTS_clicked(bool checked)
|
|||||||
void DATVDemodGUI::on_StreamMetaDataChanged(DataTSMetaData2 *objMetaData)
|
void DATVDemodGUI::on_StreamMetaDataChanged(DataTSMetaData2 *objMetaData)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (objMetaData != nullptr)
|
if (objMetaData)
|
||||||
{
|
{
|
||||||
QString strMetaData = "";
|
QString strMetaData = "";
|
||||||
|
|
||||||
@ -794,6 +794,8 @@ void DATVDemodGUI::on_StreamMetaDataChanged(DataTSMetaData2 *objMetaData)
|
|||||||
if (objMetaData->Height > 0) {
|
if (objMetaData->Height > 0) {
|
||||||
ui->screenTV_2->setFixedWidth((int)objMetaData->Width*(270.0f/(float)objMetaData->Height));
|
ui->screenTV_2->setFixedWidth((int)objMetaData->Width*(270.0f/(float)objMetaData->Height));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete objMetaData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,21 +156,8 @@ static int64_t SeekFunction(void *opaque, int64_t offset, int whence)
|
|||||||
|
|
||||||
void DATVideoRender::ResetMetaData()
|
void DATVideoRender::ResetMetaData()
|
||||||
{
|
{
|
||||||
MetaData.CodecID = -1;
|
m_metaData.reset();
|
||||||
MetaData.PID = -1;
|
emit onMetaDataChanged(new DataTSMetaData2(m_metaData));
|
||||||
MetaData.Program = "";
|
|
||||||
MetaData.Stream = "";
|
|
||||||
MetaData.Width = -1;
|
|
||||||
MetaData.Height = -1;
|
|
||||||
MetaData.BitRate = -1;
|
|
||||||
MetaData.Channels = -1;
|
|
||||||
MetaData.CodecDescription = "";
|
|
||||||
|
|
||||||
MetaData.OK_Decoding = false;
|
|
||||||
MetaData.OK_TransportStream = false;
|
|
||||||
MetaData.OK_VideoStream = false;
|
|
||||||
|
|
||||||
emit onMetaDataChanged(&MetaData);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DATVideoRender::InitializeFFMPEG()
|
bool DATVideoRender::InitializeFFMPEG()
|
||||||
@ -248,11 +235,11 @@ bool DATVideoRender::PreprocessStream()
|
|||||||
|
|
||||||
//Meta Data
|
//Meta Data
|
||||||
|
|
||||||
MetaData.PID = m_formatCtx->streams[m_videoStreamIndex]->id;
|
m_metaData.PID = m_formatCtx->streams[m_videoStreamIndex]->id;
|
||||||
MetaData.CodecID = m_videoDecoderCtx->codec_id;
|
m_metaData.CodecID = m_videoDecoderCtx->codec_id;
|
||||||
MetaData.OK_TransportStream = true;
|
m_metaData.OK_TransportStream = true;
|
||||||
MetaData.Program = "";
|
m_metaData.Program = "";
|
||||||
MetaData.Stream = "";
|
m_metaData.Stream = "";
|
||||||
|
|
||||||
if (m_formatCtx->programs && m_formatCtx->programs[m_videoStreamIndex])
|
if (m_formatCtx->programs && m_formatCtx->programs[m_videoStreamIndex])
|
||||||
{
|
{
|
||||||
@ -261,7 +248,7 @@ bool DATVideoRender::PreprocessStream()
|
|||||||
|
|
||||||
if (buffer != nullptr)
|
if (buffer != nullptr)
|
||||||
{
|
{
|
||||||
MetaData.Program = QString("%1").arg(buffer);
|
m_metaData.Program = QString("%1").arg(buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,10 +258,10 @@ bool DATVideoRender::PreprocessStream()
|
|||||||
|
|
||||||
if (buffer != nullptr)
|
if (buffer != nullptr)
|
||||||
{
|
{
|
||||||
MetaData.Stream = QString("%1").arg(buffer);
|
m_metaData.Stream = QString("%1").arg(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
emit onMetaDataChanged(&MetaData);
|
emit onMetaDataChanged(new DataTSMetaData2(m_metaData));
|
||||||
|
|
||||||
//Decoder
|
//Decoder
|
||||||
videoCodec = avcodec_find_decoder(m_videoDecoderCtx->codec_id);
|
videoCodec = avcodec_find_decoder(m_videoDecoderCtx->codec_id);
|
||||||
@ -316,14 +303,14 @@ bool DATVideoRender::PreprocessStream()
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_frameCount = 0;
|
m_frameCount = 0;
|
||||||
MetaData.Width = m_videoDecoderCtx->width;
|
m_metaData.Width = m_videoDecoderCtx->width;
|
||||||
MetaData.Height = m_videoDecoderCtx->height;
|
m_metaData.Height = m_videoDecoderCtx->height;
|
||||||
MetaData.BitRate = m_videoDecoderCtx->bit_rate;
|
m_metaData.BitRate = m_videoDecoderCtx->bit_rate;
|
||||||
MetaData.Channels = m_videoDecoderCtx->channels;
|
m_metaData.Channels = m_videoDecoderCtx->channels;
|
||||||
MetaData.CodecDescription = QString("%1").arg(videoCodec->long_name);
|
m_metaData.CodecDescription = QString("%1").arg(videoCodec->long_name);
|
||||||
MetaData.OK_VideoStream = true;
|
m_metaData.OK_VideoStream = true;
|
||||||
|
|
||||||
emit onMetaDataChanged(&MetaData);
|
emit onMetaDataChanged(new DataTSMetaData2(m_metaData));
|
||||||
|
|
||||||
// Prepare Audio Codec
|
// Prepare Audio Codec
|
||||||
|
|
||||||
@ -395,16 +382,16 @@ bool DATVideoRender::OpenStream(DATVideostream *device)
|
|||||||
if (device->bytesAvailable() <= 0)
|
if (device->bytesAvailable() <= 0)
|
||||||
{
|
{
|
||||||
qDebug() << "DATVideoRender::OpenStream no data available";
|
qDebug() << "DATVideoRender::OpenStream no data available";
|
||||||
MetaData.OK_Data = false;
|
m_metaData.OK_Data = false;
|
||||||
emit onMetaDataChanged(&MetaData);
|
emit onMetaDataChanged(new DataTSMetaData2(m_metaData));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Only once execution
|
//Only once execution
|
||||||
if (m_running.testAndSetOrdered(0,1))
|
if (m_running.testAndSetOrdered(0,1))
|
||||||
{
|
{
|
||||||
MetaData.OK_Data = true;
|
m_metaData.OK_Data = true;
|
||||||
emit onMetaDataChanged(&MetaData);
|
emit onMetaDataChanged(new DataTSMetaData2(m_metaData));
|
||||||
|
|
||||||
InitializeFFMPEG();
|
InitializeFFMPEG();
|
||||||
|
|
||||||
@ -602,10 +589,10 @@ bool DATVideoRender::RenderStream()
|
|||||||
m_currentRenderWidth = m_frame->width;
|
m_currentRenderWidth = m_frame->width;
|
||||||
m_currentRenderHeight = m_frame->height;
|
m_currentRenderHeight = m_frame->height;
|
||||||
|
|
||||||
MetaData.Width = m_frame->width;
|
m_metaData.Width = m_frame->width;
|
||||||
MetaData.Height = m_frame->height;
|
m_metaData.Height = m_frame->height;
|
||||||
MetaData.OK_Decoding = true;
|
m_metaData.OK_Decoding = true;
|
||||||
emit onMetaDataChanged(&MetaData);
|
emit onMetaDataChanged(new DataTSMetaData2(m_metaData));
|
||||||
}
|
}
|
||||||
|
|
||||||
//Frame rendering
|
//Frame rendering
|
||||||
@ -797,7 +784,7 @@ bool DATVideoRender::CloseStream(QIODevice *device)
|
|||||||
m_currentRenderHeight = -1;
|
m_currentRenderHeight = -1;
|
||||||
|
|
||||||
ResetMetaData();
|
ResetMetaData();
|
||||||
emit onMetaDataChanged(&MetaData);
|
emit onMetaDataChanged(new DataTSMetaData2(m_metaData));
|
||||||
|
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||||
m_running.storeRelaxed(0);
|
m_running.storeRelaxed(0);
|
||||||
|
@ -66,8 +66,13 @@ struct DataTSMetaData2
|
|||||||
|
|
||||||
DataTSMetaData2()
|
DataTSMetaData2()
|
||||||
{
|
{
|
||||||
PID = -1;
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset()
|
||||||
|
{
|
||||||
CodecID = -1;
|
CodecID = -1;
|
||||||
|
PID = -1;
|
||||||
Program = "";
|
Program = "";
|
||||||
Stream = "";
|
Stream = "";
|
||||||
Width = -1;
|
Width = -1;
|
||||||
@ -75,6 +80,7 @@ struct DataTSMetaData2
|
|||||||
BitRate = -1;
|
BitRate = -1;
|
||||||
Channels = -1;
|
Channels = -1;
|
||||||
CodecDescription = "";
|
CodecDescription = "";
|
||||||
|
|
||||||
OK_Data = false;
|
OK_Data = false;
|
||||||
OK_Decoding = false;
|
OK_Decoding = false;
|
||||||
OK_TransportStream = false;
|
OK_TransportStream = false;
|
||||||
@ -107,9 +113,8 @@ class DATVideoRender : public TVScreen
|
|||||||
bool getAudioDecodeOK() const { return m_audioDecodeOK; }
|
bool getAudioDecodeOK() const { return m_audioDecodeOK; }
|
||||||
bool getVideoDecodeOK() const { return m_videoDecodeOK; }
|
bool getVideoDecodeOK() const { return m_videoDecodeOK; }
|
||||||
|
|
||||||
struct DataTSMetaData2 MetaData;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
struct DataTSMetaData2 m_metaData;
|
||||||
QWidget *m_parentWidget;
|
QWidget *m_parentWidget;
|
||||||
Qt::WindowFlags m_originalWindowFlags;
|
Qt::WindowFlags m_originalWindowFlags;
|
||||||
QSize m_originalSize;
|
QSize m_originalSize;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user