mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-09-06 07:07:48 -04:00
ATV Demodulator: implememted horizontal sync leap standard with very slow 60 and 32 lines modes
This commit is contained in:
parent
0a2223b7e0
commit
e3b1aad053
@ -462,9 +462,39 @@ void ATVDemod::demod(Complex& c)
|
|||||||
}
|
}
|
||||||
else if (m_intColIndex >= m_intNumberSamplePerLine + m_intNumberSamplePerTop) // No valid H sync
|
else if (m_intColIndex >= m_intNumberSamplePerLine + m_intNumberSamplePerTop) // No valid H sync
|
||||||
{
|
{
|
||||||
//qDebug("HLine: %d", m_intColIndex);
|
if (m_objRunning.m_enmATVStandard == ATVStdHLeap) // new image in hSync leap mode
|
||||||
m_intColIndex = 0;
|
{
|
||||||
blnNewLine = true;
|
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)
|
if (blnNewLine)
|
||||||
@ -489,7 +519,7 @@ void ATVDemod::demod(Complex& c)
|
|||||||
|
|
||||||
// Vertical sync and image rendering
|
// 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)
|
if (m_intColIndex >= intSynchroTimeSamples)
|
||||||
{
|
{
|
||||||
@ -781,6 +811,12 @@ void ATVDemod::applyStandard()
|
|||||||
{
|
{
|
||||||
switch(m_objConfig.m_enmATVStandard)
|
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:
|
case ATVStdShort:
|
||||||
// what is left in a line for the image
|
// what is left in a line for the image
|
||||||
m_intNumberOfSyncLines = 4;
|
m_intNumberOfSyncLines = 4;
|
||||||
|
@ -51,7 +51,8 @@ public:
|
|||||||
ATVStdPAL525,
|
ATVStdPAL525,
|
||||||
ATVStd405,
|
ATVStd405,
|
||||||
ATVStdShortInterleaved,
|
ATVStdShortInterleaved,
|
||||||
ATVStdShort
|
ATVStdShort,
|
||||||
|
ATVStdHLeap
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ATVModulation {
|
enum ATVModulation {
|
||||||
|
@ -736,6 +736,12 @@ float ATVDemodGUI::getNominalLineTime(int nbLinesIndex, int fpsIndex)
|
|||||||
case 6:
|
case 6:
|
||||||
return 1.0f / (90 * fps);
|
return 1.0f / (90 * fps);
|
||||||
break;
|
break;
|
||||||
|
case 7:
|
||||||
|
return 1.0f / (60 * fps);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
return 1.0f / (32 * fps);
|
||||||
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
return 1.0f / (625 * fps);
|
return 1.0f / (625 * fps);
|
||||||
@ -765,6 +771,12 @@ int ATVDemodGUI::getNumberOfLines(int nbLinesIndex)
|
|||||||
case 6:
|
case 6:
|
||||||
return 90;
|
return 90;
|
||||||
break;
|
break;
|
||||||
|
case 7:
|
||||||
|
return 60;
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
return 32;
|
||||||
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
return 625;
|
return 625;
|
||||||
|
@ -542,6 +542,16 @@
|
|||||||
<string>90</string>
|
<string>90</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>60</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>32</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -598,7 +608,7 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>405L</string>
|
<string>PAL405</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -611,6 +621,11 @@
|
|||||||
<string>SHni</string>
|
<string>SHni</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>HLeap</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user