diff --git a/plugins/channeltx/modatv/atvmod.cpp b/plugins/channeltx/modatv/atvmod.cpp
index 2f20ebf51..1b045242a 100644
--- a/plugins/channeltx/modatv/atvmod.cpp
+++ b/plugins/channeltx/modatv/atvmod.cpp
@@ -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;
diff --git a/plugins/channeltx/modatv/atvmod.h b/plugins/channeltx/modatv/atvmod.h
index 2ef202e97..b866c5588 100644
--- a/plugins/channeltx/modatv/atvmod.h
+++ b/plugins/channeltx/modatv/atvmod.h
@@ -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
{
diff --git a/plugins/channeltx/modatv/atvmodgui.cpp b/plugins/channeltx/modatv/atvmodgui.cpp
index 699243658..026333bfb 100644
--- a/plugins/channeltx/modatv/atvmodgui.cpp
+++ b/plugins/channeltx/modatv/atvmodgui.cpp
@@ -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;
diff --git a/plugins/channeltx/modatv/atvmodgui.ui b/plugins/channeltx/modatv/atvmodgui.ui
index d203b6fac..601e2d3fb 100644
--- a/plugins/channeltx/modatv/atvmodgui.ui
+++ b/plugins/channeltx/modatv/atvmodgui.ui
@@ -574,6 +574,16 @@
90
+ -
+
+ 60
+
+
+ -
+
+ 32
+
+
-
@@ -656,7 +666,7 @@
-
- 405L
+ PAL405
-
@@ -669,6 +679,11 @@
SHni
+ -
+
+ HLeap
+
+
-