mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-08-10 17:52:26 -04:00
ATV Demod: sync level and black level in the conf object exclusively
This commit is contained in:
parent
7d63bdb902
commit
67042b60de
@ -39,8 +39,6 @@ ATVDemod::ATVDemod() :
|
|||||||
m_blnSynchroDetected(false),
|
m_blnSynchroDetected(false),
|
||||||
m_blnLineSynchronized(false),
|
m_blnLineSynchronized(false),
|
||||||
m_blnVerticalSynchroDetected(false),
|
m_blnVerticalSynchroDetected(false),
|
||||||
m_fltVoltLevelSynchroTop(0.0),
|
|
||||||
m_fltVoltLevelSynchroBlack(1.0),
|
|
||||||
m_enmModulation(ATV_FM1),
|
m_enmModulation(ATV_FM1),
|
||||||
m_intRowsLimit(0),
|
m_intRowsLimit(0),
|
||||||
m_blnImageDetecting(false),
|
m_blnImageDetecting(false),
|
||||||
@ -107,8 +105,6 @@ void ATVDemod::InitATVParameters(
|
|||||||
float fltTopDurationUs,
|
float fltTopDurationUs,
|
||||||
float fltFramePerS,
|
float fltFramePerS,
|
||||||
float fltRatioOfRowsToDisplay,
|
float fltRatioOfRowsToDisplay,
|
||||||
float fltVoltLevelSynchroTop,
|
|
||||||
float fltVoltLevelSynchroBlack,
|
|
||||||
ATVModulation enmModulation,
|
ATVModulation enmModulation,
|
||||||
bool blnHSync,
|
bool blnHSync,
|
||||||
bool blnVSync)
|
bool blnVSync)
|
||||||
@ -120,9 +116,6 @@ void ATVDemod::InitATVParameters(
|
|||||||
|
|
||||||
m_objSettingsMutex.lock();
|
m_objSettingsMutex.lock();
|
||||||
|
|
||||||
m_fltVoltLevelSynchroTop = fltVoltLevelSynchroTop;
|
|
||||||
m_fltVoltLevelSynchroBlack = fltVoltLevelSynchroBlack;
|
|
||||||
|
|
||||||
intNumberSamplePerLine = (int) ((fltLineDurationUs * intSampleRate) / m_fltSecondToUs);
|
intNumberSamplePerLine = (int) ((fltLineDurationUs * intSampleRate) / m_fltSecondToUs);
|
||||||
intNumberOfLines = (int) ((m_fltSecondToUs/fltFramePerS) /round(fltLineDurationUs));
|
intNumberOfLines = (int) ((m_fltSecondToUs/fltFramePerS) /round(fltLineDurationUs));
|
||||||
|
|
||||||
@ -152,8 +145,6 @@ void ATVDemod::InitATVParameters(
|
|||||||
|
|
||||||
//Mise à jour de la config
|
//Mise à jour de la config
|
||||||
m_objRunning.m_enmModulation = m_enmModulation;
|
m_objRunning.m_enmModulation = m_enmModulation;
|
||||||
m_objRunning.m_fltVoltLevelSynchroBlack = m_fltVoltLevelSynchroBlack;
|
|
||||||
m_objRunning.m_fltVoltLevelSynchroTop = m_fltVoltLevelSynchroTop;
|
|
||||||
m_objRunning.m_fltFramePerS = fltFramePerS;
|
m_objRunning.m_fltFramePerS = fltFramePerS;
|
||||||
m_objRunning.m_fltLineDurationUs = fltLineDurationUs;
|
m_objRunning.m_fltLineDurationUs = fltLineDurationUs;
|
||||||
m_objRunning.m_fltTopDurationUs = fltTopDurationUs;
|
m_objRunning.m_fltTopDurationUs = fltTopDurationUs;
|
||||||
@ -180,7 +171,7 @@ void ATVDemod::InitATVParameters(
|
|||||||
|
|
||||||
void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
|
void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVector::const_iterator& end, bool firstOfBurst)
|
||||||
{
|
{
|
||||||
float fltDivSynchroBlack=1.0f-m_fltVoltLevelSynchroBlack;
|
float fltDivSynchroBlack = 1.0f - m_objRunning.m_fltVoltLevelSynchroBlack;
|
||||||
float fltI;
|
float fltI;
|
||||||
float fltQ;
|
float fltQ;
|
||||||
float fltNormI;
|
float fltNormI;
|
||||||
@ -195,7 +186,7 @@ void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
|
|||||||
bool blnComputeImage=false;
|
bool blnComputeImage=false;
|
||||||
|
|
||||||
int intSynchroTimeSamples= (3*m_intNumberSamplePerLine)/4;
|
int intSynchroTimeSamples= (3*m_intNumberSamplePerLine)/4;
|
||||||
float fltSynchroTrameLevel = 0.5f*((float)intSynchroTimeSamples)*m_fltVoltLevelSynchroBlack;
|
float fltSynchroTrameLevel = 0.5f*((float)intSynchroTimeSamples) * m_objRunning.m_fltVoltLevelSynchroBlack;
|
||||||
|
|
||||||
//********** Let's rock and roll buddy ! **********
|
//********** Let's rock and roll buddy ! **********
|
||||||
|
|
||||||
@ -333,7 +324,7 @@ void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
|
|||||||
|
|
||||||
//********** gray level **********
|
//********** gray level **********
|
||||||
//-0.3 -> 0.7
|
//-0.3 -> 0.7
|
||||||
intVal = (int) 255.0*(fltVal-m_fltVoltLevelSynchroBlack)/fltDivSynchroBlack;
|
intVal = (int) 255.0*(fltVal - m_objRunning.m_fltVoltLevelSynchroBlack) / fltDivSynchroBlack;
|
||||||
|
|
||||||
//0 -> 255
|
//0 -> 255
|
||||||
if(intVal<0)
|
if(intVal<0)
|
||||||
@ -370,7 +361,7 @@ void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
|
|||||||
if(m_blnImageDetecting==false)
|
if(m_blnImageDetecting==false)
|
||||||
{
|
{
|
||||||
//Floor Detection 0
|
//Floor Detection 0
|
||||||
if(fltVal<=m_fltVoltLevelSynchroTop)
|
if (fltVal <= m_objRunning.m_fltVoltLevelSynchroTop)
|
||||||
{
|
{
|
||||||
m_intSynchroPoints ++;
|
m_intSynchroPoints ++;
|
||||||
}
|
}
|
||||||
@ -389,7 +380,7 @@ void ATVDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
//Image detection Sub Black 0.3
|
//Image detection Sub Black 0.3
|
||||||
if(fltVal>=m_fltVoltLevelSynchroBlack)
|
if (fltVal >= m_objRunning.m_fltVoltLevelSynchroBlack)
|
||||||
{
|
{
|
||||||
m_intSynchroPoints ++;
|
m_intSynchroPoints ++;
|
||||||
}
|
}
|
||||||
@ -585,8 +576,6 @@ bool ATVDemod::handleMessage(const Message& cmd)
|
|||||||
|| (objCfg.m_objMsgConfig.m_blnVSync != m_objRunning.m_blnVSync))
|
|| (objCfg.m_objMsgConfig.m_blnVSync != m_objRunning.m_blnVSync))
|
||||||
{
|
{
|
||||||
m_objRunning.m_enmModulation = objCfg.m_objMsgConfig.m_enmModulation;
|
m_objRunning.m_enmModulation = objCfg.m_objMsgConfig.m_enmModulation;
|
||||||
m_objRunning.m_fltVoltLevelSynchroBlack = objCfg.m_objMsgConfig.m_fltVoltLevelSynchroBlack;
|
|
||||||
m_objRunning.m_fltVoltLevelSynchroTop = objCfg.m_objMsgConfig.m_fltVoltLevelSynchroTop;
|
|
||||||
m_objRunning.m_fltFramePerS = objCfg.m_objMsgConfig.m_fltFramePerS;
|
m_objRunning.m_fltFramePerS = objCfg.m_objMsgConfig.m_fltFramePerS;
|
||||||
m_objRunning.m_fltLineDurationUs = objCfg.m_objMsgConfig.m_fltLineDurationUs;
|
m_objRunning.m_fltLineDurationUs = objCfg.m_objMsgConfig.m_fltLineDurationUs;
|
||||||
m_objRunning.m_fltRatioOfRowsToDisplay = objCfg.m_objMsgConfig.m_fltRatioOfRowsToDisplay;
|
m_objRunning.m_fltRatioOfRowsToDisplay = objCfg.m_objMsgConfig.m_fltRatioOfRowsToDisplay;
|
||||||
@ -613,6 +602,8 @@ void ATVDemod::ApplySettings()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_objRunning.m_fltVoltLevelSynchroBlack = m_objConfig.m_fltVoltLevelSynchroBlack;
|
||||||
|
m_objRunning.m_fltVoltLevelSynchroTop = m_objConfig.m_fltVoltLevelSynchroTop;
|
||||||
|
|
||||||
InitATVParameters(
|
InitATVParameters(
|
||||||
m_objRunning.m_intSampleRate,
|
m_objRunning.m_intSampleRate,
|
||||||
@ -620,8 +611,6 @@ void ATVDemod::ApplySettings()
|
|||||||
m_objRunning.m_fltTopDurationUs,
|
m_objRunning.m_fltTopDurationUs,
|
||||||
m_objRunning.m_fltFramePerS,
|
m_objRunning.m_fltFramePerS,
|
||||||
m_objRunning.m_fltRatioOfRowsToDisplay,
|
m_objRunning.m_fltRatioOfRowsToDisplay,
|
||||||
m_objRunning.m_fltVoltLevelSynchroTop,
|
|
||||||
m_objRunning.m_fltVoltLevelSynchroBlack,
|
|
||||||
m_objRunning.m_enmModulation,
|
m_objRunning.m_enmModulation,
|
||||||
m_objRunning.m_blnHSync,
|
m_objRunning.m_blnHSync,
|
||||||
m_objRunning.m_blnVSync);
|
m_objRunning.m_blnVSync);
|
||||||
|
@ -65,8 +65,8 @@ public:
|
|||||||
m_fltTopDurationUs(0.0f),
|
m_fltTopDurationUs(0.0f),
|
||||||
m_fltFramePerS(0.0f),
|
m_fltFramePerS(0.0f),
|
||||||
m_fltRatioOfRowsToDisplay(0.0f),
|
m_fltRatioOfRowsToDisplay(0.0f),
|
||||||
m_fltVoltLevelSynchroTop(0),
|
m_fltVoltLevelSynchroTop(0.0f),
|
||||||
m_fltVoltLevelSynchroBlack(0),
|
m_fltVoltLevelSynchroBlack(1.0f),
|
||||||
m_enmModulation(ATV_FM1),
|
m_enmModulation(ATV_FM1),
|
||||||
m_blnHSync(false),
|
m_blnHSync(false),
|
||||||
m_blnVSync(false)
|
m_blnVSync(false)
|
||||||
@ -99,8 +99,6 @@ public:
|
|||||||
float fltTopDurationUs,
|
float fltTopDurationUs,
|
||||||
float fltFramePerS,
|
float fltFramePerS,
|
||||||
float fltRatioOfRowsToDisplay,
|
float fltRatioOfRowsToDisplay,
|
||||||
float fltVoltLevelSynchroTop,
|
|
||||||
float fltVoltLevelSynchroBlack,
|
|
||||||
ATVModulation enmModulation,
|
ATVModulation enmModulation,
|
||||||
bool blnHSync,
|
bool blnHSync,
|
||||||
bool blnVSync);
|
bool blnVSync);
|
||||||
@ -170,9 +168,6 @@ private:
|
|||||||
int m_intNumberOfLines;
|
int m_intNumberOfLines;
|
||||||
int m_intNumberOfRowsToDisplay;
|
int m_intNumberOfRowsToDisplay;
|
||||||
|
|
||||||
float m_fltVoltLevelSynchroTop;
|
|
||||||
float m_fltVoltLevelSynchroBlack;
|
|
||||||
|
|
||||||
ATVModulation m_enmModulation;
|
ATVModulation m_enmModulation;
|
||||||
|
|
||||||
//*************** PROCESSING ***************
|
//*************** PROCESSING ***************
|
||||||
|
Loading…
x
Reference in New Issue
Block a user