1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-04-04 10:38:45 -04:00

ATV Demodulator: implememted horizontal sync leap standard with very slow 60 and 32 lines modes

This commit is contained in:
f4exb 2017-04-03 18:57:48 +02:00
parent 0a2223b7e0
commit e3b1aad053
4 changed files with 70 additions and 6 deletions

View File

@ -462,9 +462,39 @@ void ATVDemod::demod(Complex& c)
}
else if (m_intColIndex >= m_intNumberSamplePerLine + m_intNumberSamplePerTop) // No valid H sync
{
//qDebug("HLine: %d", m_intColIndex);
m_intColIndex = 0;
blnNewLine = true;
if (m_objRunning.m_enmATVStandard == ATVStdHLeap) // new image in hSync leap mode
{
m_objRegisteredATVScreen->renderImage(0);
if (m_objRFRunning.m_enmModulation == ATV_AM)
{
m_fltAmpMin = m_fltEffMin;
m_fltAmpMax = m_fltEffMax;
m_fltAmpDelta = m_fltEffMax-m_fltEffMin;
if(m_fltAmpDelta<=0.0)
{
m_fltAmpDelta=1.0f;
}
//Reset extrema
m_fltEffMin = 2000000.0f;
m_fltEffMax = -2000000.0f;
}
m_intColIndex = m_intNumberSamplePerTop; // catch up with passed samples from the line length point
m_intRowIndex = 0;
m_objRegisteredATVScreen->selectRow(m_intRowIndex);
m_intLineIndex = 0;
m_intImageIndex++;
blnNewLine = false; // done already
}
else
{
//qDebug("HLine: %d", m_intColIndex);
m_intColIndex = 0;
blnNewLine = true;
}
}
if (blnNewLine)
@ -489,7 +519,7 @@ void ATVDemod::demod(Complex& c)
// Vertical sync and image rendering
if (m_objRunning.m_blnVSync) // VSync activated
if ((m_objRunning.m_blnVSync) && (m_objRunning.m_enmATVStandard != ATVStdHLeap)) // VSync activated
{
if (m_intColIndex >= intSynchroTimeSamples)
{
@ -781,6 +811,12 @@ void ATVDemod::applyStandard()
{
switch(m_objConfig.m_enmATVStandard)
{
case ATVStdHLeap:
// what is left in a line for the image
m_intNumberOfSyncLines = 0;
m_intNumberOfBlackLines = 0;
m_interleaved = false;
break;
case ATVStdShort:
// what is left in a line for the image
m_intNumberOfSyncLines = 4;

View File

@ -51,7 +51,8 @@ public:
ATVStdPAL525,
ATVStd405,
ATVStdShortInterleaved,
ATVStdShort
ATVStdShort,
ATVStdHLeap
};
enum ATVModulation {

View File

@ -736,6 +736,12 @@ float ATVDemodGUI::getNominalLineTime(int nbLinesIndex, int fpsIndex)
case 6:
return 1.0f / (90 * fps);
break;
case 7:
return 1.0f / (60 * fps);
break;
case 8:
return 1.0f / (32 * fps);
break;
case 0:
default:
return 1.0f / (625 * fps);
@ -765,6 +771,12 @@ int ATVDemodGUI::getNumberOfLines(int nbLinesIndex)
case 6:
return 90;
break;
case 7:
return 60;
break;
case 8:
return 32;
break;
case 0:
default:
return 625;

View File

@ -542,6 +542,16 @@
<string>90</string>
</property>
</item>
<item>
<property name="text">
<string>60</string>
</property>
</item>
<item>
<property name="text">
<string>32</string>
</property>
</item>
</widget>
</item>
<item>
@ -598,7 +608,7 @@
</item>
<item>
<property name="text">
<string>405L</string>
<string>PAL405</string>
</property>
</item>
<item>
@ -611,6 +621,11 @@
<string>SHni</string>
</property>
</item>
<item>
<property name="text">
<string>HLeap</string>
</property>
</item>
</widget>
</item>
<item>