mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-26 17:58:43 -05:00
ATV Modulator: implememted horizontal sync leap standard with very slow 60 and 32 lines modes
This commit is contained in:
parent
d046b7dd3e
commit
0a2223b7e0
@ -288,6 +288,10 @@ void ATVMod::pullVideo(Real& sample)
|
||||
pullImageLine(sample);
|
||||
}
|
||||
}
|
||||
else if (m_running.m_atvStd == ATVStdHLeap) // HLeap special
|
||||
{
|
||||
pullImageLine(sample, true); // pull image line without sync
|
||||
}
|
||||
else // odd image
|
||||
{
|
||||
int iLine = m_lineCount - m_nbLines2 - 1;
|
||||
@ -825,8 +829,22 @@ void ATVMod::applyStandard()
|
||||
|
||||
switch(m_config.m_atvStd)
|
||||
{
|
||||
case ATVStdShort: // Follows loosely the 405 lines standard
|
||||
// what is left in a 64 us line for the image
|
||||
case ATVStdHLeap:
|
||||
m_nbImageLines = m_nbLines; // lines less the total number of sync lines
|
||||
m_nbImageLines2 = m_nbImageLines; // force non interleaved for vbars
|
||||
m_interleaved = false;
|
||||
m_nbSyncLinesHeadE = 0; // number of sync lines on the top of a frame even
|
||||
m_nbSyncLinesHeadO = 0; // number of sync lines on the top of a frame odd
|
||||
m_nbSyncLinesBottom = -1; // force no vsync in even block
|
||||
m_nbLongSyncLines = 0;
|
||||
m_nbHalfLongSync = 0;
|
||||
m_nbWholeEqLines = 0;
|
||||
m_singleLongSync = true;
|
||||
m_nbBlankLines = 0;
|
||||
m_blankLineLvel = 0.7f;
|
||||
m_nbLines2 = m_nbLines - 2; // force last line to slip from the even block
|
||||
break;
|
||||
case ATVStdShort:
|
||||
m_nbImageLines = m_nbLines - 2; // lines less the total number of sync lines
|
||||
m_nbImageLines2 = m_nbImageLines; // force non interleaved for vbars
|
||||
m_interleaved = false;
|
||||
@ -841,8 +859,7 @@ void ATVMod::applyStandard()
|
||||
m_blankLineLvel = 0.7f;
|
||||
m_nbLines2 = m_nbLines; // force non interleaved => treated as even for all lines
|
||||
break;
|
||||
case ATVStdShortInterleaved: // Follows loosely the 405 lines standard
|
||||
// what is left in a 64 us line for the image
|
||||
case ATVStdShortInterleaved:
|
||||
m_nbImageLines = m_nbLines - 2; // lines less the total number of sync lines
|
||||
m_nbImageLines2 = m_nbImageLines / 2;
|
||||
m_interleaved = true;
|
||||
@ -857,7 +874,6 @@ void ATVMod::applyStandard()
|
||||
m_blankLineLvel = 0.7f;
|
||||
break;
|
||||
case ATVStd405: // Follows loosely the 405 lines standard
|
||||
// what is left in a 64 us line for the image
|
||||
m_nbImageLines = m_nbLines - 15; // lines less the total number of sync lines
|
||||
m_nbImageLines2 = m_nbImageLines / 2;
|
||||
m_interleaved = true;
|
||||
@ -872,7 +888,6 @@ void ATVMod::applyStandard()
|
||||
m_blankLineLvel = m_blackLevel;
|
||||
break;
|
||||
case ATVStdPAL525: // Follows PAL-M standard
|
||||
// what is left in a 64/1.008 us line for the image
|
||||
m_nbImageLines = m_nbLines - 15;
|
||||
m_nbImageLines2 = m_nbImageLines / 2;
|
||||
m_interleaved = true;
|
||||
@ -888,7 +903,6 @@ void ATVMod::applyStandard()
|
||||
break;
|
||||
case ATVStdPAL625: // Follows PAL-B/G/H standard
|
||||
default:
|
||||
// what is left in a 64 us line for the image
|
||||
m_nbImageLines = m_nbLines - 15;
|
||||
m_nbImageLines2 = m_nbImageLines / 2;
|
||||
m_interleaved = true;
|
||||
|
@ -45,6 +45,7 @@ public:
|
||||
ATVStd405,
|
||||
ATVStdShortInterleaved,
|
||||
ATVStdShort,
|
||||
ATVStdHLeap,
|
||||
} ATVStd;
|
||||
|
||||
typedef enum
|
||||
@ -721,11 +722,11 @@ private:
|
||||
void resizeCamera();
|
||||
void mixImageAndText(cv::Mat& image);
|
||||
|
||||
inline void pullImageLine(Real& sample)
|
||||
inline void pullImageLine(Real& sample, bool noHSync = false)
|
||||
{
|
||||
if (m_horizontalCount < m_pointsPerSync) // sync pulse
|
||||
{
|
||||
sample = 0.0f; // ultra-black
|
||||
sample = noHSync ? m_blackLevel : 0.0f; // ultra-black
|
||||
}
|
||||
else if (m_horizontalCount < m_pointsPerSync + m_pointsPerBP) // back porch
|
||||
{
|
||||
|
@ -288,6 +288,12 @@ int ATVModGUI::getNbLines()
|
||||
case 6:
|
||||
return 90;
|
||||
break;
|
||||
case 7:
|
||||
return 60;
|
||||
break;
|
||||
case 8:
|
||||
return 32;
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
return 625;
|
||||
|
@ -574,6 +574,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>
|
||||
@ -656,7 +666,7 @@
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>405L</string>
|
||||
<string>PAL405</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
@ -669,6 +679,11 @@
|
||||
<string>SHni</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>HLeap</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
Loading…
Reference in New Issue
Block a user