Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation fails under Ubuntu 20.04 LTS #484

Closed
simoninns opened this issue Apr 24, 2020 · 1 comment
Closed

Compilation fails under Ubuntu 20.04 LTS #484

simoninns opened this issue Apr 24, 2020 · 1 comment
Labels
deficiency ld-decode-tools An issue only affecting the ld-decode-tools

Comments

@simoninns
Copy link
Collaborator

Testing with the new Ubuntu 20.04 LTS shows issues compiling against the OpenCV2 headers:

../ld-chroma-decoder/opticalflow.h:34:10: fatal error: opencv2/core/core.hpp: No such file or directory
34 | #include <opencv2/core/core.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~~

Since the NTSC optical flow isn't functioning, the requirement to include opencv should be removed (and once reimplemented a more up-to-date header should be included instead).

@simoninns simoninns added ld-decode-tools An issue only affecting the ld-decode-tools deficiency labels Apr 24, 2020
simoninns pushed a commit that referenced this issue Apr 24, 2020
simoninns pushed a commit that referenced this issue Apr 24, 2020
@simoninns
Copy link
Collaborator Author

Removed all references to OpenCV. Requesting a 3D NTSC chroma-decode now results in the code running the 2D NTSC decoder instead. All compiles under 20.04 LTS

atsampson added a commit to atsampson/ld-decode that referenced this issue Jul 12, 2020
After the removal of the OpenCV code in 6c7f74d663d ("Fix for
issue happycube#484"), ntsc3d always chooses the 2D result, so it behaves the
same as ntsc2d. This makes it always use the 3D result instead, which
produces artefacts on motion, but much better quality than ntsc2d for
still images.
atsampson added a commit to atsampson/ld-decode that referenced this issue Apr 13, 2021
The OpenCV code was removed in 6c7f74d663d ("Fix for issue happycube#484").
atsampson added a commit to atsampson/ld-decode that referenced this issue Apr 18, 2021
The OpenCV code was removed in 6c7f74d663d ("Fix for issue happycube#484").
atsampson added a commit that referenced this issue Apr 21, 2021
The OpenCV code was removed in 6c7f74d663d ("Fix for issue #484").
VideoMem added a commit to VideoMem/ld-decode that referenced this issue Apr 30, 2021
…sync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support (oyvindln#25)

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Split up replace_spikes to avoid numba compile issues and run formatter

Avoid mean of empty slice warning

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Tidy indentation in chromadecoderconfigdialog.ui.

The chromaGain default is 1.0 for both standards.

Tidy indentation in yiqToYUVFrame.

Remove duplicate spacers in chromadecoderconfigdialog.ui.

The first one produced a warning from uic because it had a duplicate ID,
but neither is actually needed.

Remove remaining references to opencv.

The OpenCV code was removed in 6c7f74d663d ("Fix for issue happycube#484").

Update copyright notices in ld-chroma-decoder.

This catches up on the changes for noise reduction and YCbCr output.

Use QString::arg rather than QString::sprintf.

sprintf is deprecated in Qt 5.15.

Remove some stray spaces from warning/error messages.

Use \n rather than QTextStream::endl.

The latter is deprecated in Qt 5.15, and the only difference is that it
doesn't force a flush (which probably isn't what we want in the middle
of printing a dropout list anyway).

PalColour doesn't need to be a QObject.

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>
oyvindln pushed a commit to oyvindln/vhs-decode that referenced this issue May 1, 2021
* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Bad signal / 'Chewed tape' sample (preliminary fix) (#24)
* Added chroma trap option to cvbs-decode
* Comment typo fix
* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.
Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support (#25)

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Split up replace_spikes to avoid numba compile issues and run formatter

Avoid mean of empty slice warning

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Tidy indentation in chromadecoderconfigdialog.ui.

The chromaGain default is 1.0 for both standards.

Tidy indentation in yiqToYUVFrame.

Remove duplicate spacers in chromadecoderconfigdialog.ui.

The first one produced a warning from uic because it had a duplicate ID,
but neither is actually needed.

Remove remaining references to opencv.

The OpenCV code was removed in 6c7f74d663d ("Fix for issue happycube#484").

Update copyright notices in ld-chroma-decoder.

This catches up on the changes for noise reduction and YCbCr output.

Use QString::arg rather than QString::sprintf.

sprintf is deprecated in Qt 5.15.

Remove some stray spaces from warning/error messages.

Use \n rather than QTextStream::endl.

The latter is deprecated in Qt 5.15, and the only difference is that it
doesn't force a flush (which probably isn't what we want in the middle
of printing a dropout list anyway).

PalColour doesn't need to be a QObject.

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>
oyvindln pushed a commit to oyvindln/vhs-decode that referenced this issue May 9, 2021
* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Resync

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Restored deleted files

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* VBI serration detection test

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* vsync_levels pre-cleanup

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* VBI vsync autolevels testing

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Temporarly disabled extra-diff code to force zero crossings, it can be enabled with the -ed switch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added demodblock() envelope (env) zeroes check, to avoid potential division by zero during the high_part boost calculation.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Bad signal / 'Chewed tape' sample (preliminary fix) (#24)
* Added chroma trap option to cvbs-decode
* Comment typo fix
* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.
Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support (#25)

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Split up replace_spikes to avoid numba compile issues and run formatter

Avoid mean of empty slice warning

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Tidy indentation in chromadecoderconfigdialog.ui.

The chromaGain default is 1.0 for both standards.

Tidy indentation in yiqToYUVFrame.

Remove duplicate spacers in chromadecoderconfigdialog.ui.

The first one produced a warning from uic because it had a duplicate ID,
but neither is actually needed.

Remove remaining references to opencv.

The OpenCV code was removed in 6c7f74d663d ("Fix for issue happycube#484").

Update copyright notices in ld-chroma-decoder.

This catches up on the changes for noise reduction and YCbCr output.

Use QString::arg rather than QString::sprintf.

sprintf is deprecated in Qt 5.15.

Remove some stray spaces from warning/error messages.

Use \n rather than QTextStream::endl.

The latter is deprecated in Qt 5.15, and the only difference is that it
doesn't force a flush (which probably isn't what we want in the middle
of printing a dropout list anyway).

PalColour doesn't need to be a QObject.

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* fixup!
- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Modified the serration search code, now the envelope uses the fifth Vsync harmonic limit instead the third harmonic.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changed min valid levels to report valid serration levels
Added field_state levels.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* chroma loss sample fails

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* RuntimeWarning: Div by zero prevented at lddecode/utils.calczc_do()

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* RuntimeWarning: Div by zero prevented at lddecode/utils.calczc_do()

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Regenerates the sync pulses amplitude
Skips 100ms

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Seems to sort a lot of edge cases, saving this

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added resync branch getpulses_override() logic

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Safe clips the bottom of the sync pulses but leaves picture area unchanged, https://youtu.be/ZlsS_a4qdI4

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Nosync sample decodes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Serration levels detection adjustments (produces new frames on chewed sample)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Suggested oyvindln changes over replace_spikes() on diff_demod

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added ldd.core logger, changed the name of the Vsync class to VsyncSerration

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Disabled serration detection in cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Encapsulated all the sync search and the serration search into Resync Class

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merged resync branch changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Corrected the fallback sync logic when serrations not found.
- Changed the log output for the serration freqs. to kHz units.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - added a note on what I mean with fallback sync logic

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Added more debugging if show_decoded is enabled on VsyncSerration() class
- Modified the sync fallback logic to improve decoding of the 'Bicycles sample' field_drop_issue_starting_at_frame_18_and_some_more_ capture26739-26911_2291x625_25Hz_8bit.flac

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>
oyvindln pushed a commit to oyvindln/vhs-decode that referenced this issue May 25, 2021
* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Resync

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Restored deleted files

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* VBI serration detection test

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* vsync_levels pre-cleanup

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* VBI vsync autolevels testing

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Temporarly disabled extra-diff code to force zero crossings, it can be enabled with the -ed switch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added demodblock() envelope (env) zeroes check, to avoid potential division by zero during the high_part boost calculation.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Bad signal / 'Chewed tape' sample (preliminary fix) (#24)
* Added chroma trap option to cvbs-decode
* Comment typo fix
* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.
Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support (#25)

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Split up replace_spikes to avoid numba compile issues and run formatter

Avoid mean of empty slice warning

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Tidy indentation in chromadecoderconfigdialog.ui.

The chromaGain default is 1.0 for both standards.

Tidy indentation in yiqToYUVFrame.

Remove duplicate spacers in chromadecoderconfigdialog.ui.

The first one produced a warning from uic because it had a duplicate ID,
but neither is actually needed.

Remove remaining references to opencv.

The OpenCV code was removed in 6c7f74d663d ("Fix for issue happycube#484").

Update copyright notices in ld-chroma-decoder.

This catches up on the changes for noise reduction and YCbCr output.

Use QString::arg rather than QString::sprintf.

sprintf is deprecated in Qt 5.15.

Remove some stray spaces from warning/error messages.

Use \n rather than QTextStream::endl.

The latter is deprecated in Qt 5.15, and the only difference is that it
doesn't force a flush (which probably isn't what we want in the middle
of printing a dropout list anyway).

PalColour doesn't need to be a QObject.

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* fixup!
- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Modified the serration search code, now the envelope uses the fifth Vsync harmonic limit instead the third harmonic.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changed min valid levels to report valid serration levels
Added field_state levels.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* chroma loss sample fails

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* RuntimeWarning: Div by zero prevented at lddecode/utils.calczc_do()

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* RuntimeWarning: Div by zero prevented at lddecode/utils.calczc_do()

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Regenerates the sync pulses amplitude
Skips 100ms

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Seems to sort a lot of edge cases, saving this

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added resync branch getpulses_override() logic

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Safe clips the bottom of the sync pulses but leaves picture area unchanged, https://youtu.be/ZlsS_a4qdI4

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Nosync sample decodes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Serration levels detection adjustments (produces new frames on chewed sample)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Suggested oyvindln changes over replace_spikes() on diff_demod

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added ldd.core logger, changed the name of the Vsync class to VsyncSerration

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Disabled serration detection in cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Encapsulated all the sync search and the serration search into Resync Class

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merged resync branch changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Corrected the fallback sync logic when serrations not found.
- Changed the log output for the serration freqs. to kHz units.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - added a note on what I mean with fallback sync logic

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Added more debugging if show_decoded is enabled on VsyncSerration() class
- Modified the sync fallback logic to improve decoding of the 'Bicycles sample' field_drop_issue_starting_at_frame_18_and_some_more_ capture26739-26911_2291x625_25Hz_8bit.flac

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added field hash debug info for SysParams and field.data["video"]["demod_05"] (sync_reference)

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Added some checks for SysParams consistency, and found the AGC changes both the ire0 parameter and the hz_ire parameter (all other parameters seems to be constant).
Added an assertion to check if the length of the data input of demodblock() corresponds to blocklen and the same lengths of the output arrays (no issues found with that)
Added the field data sync reference hash to the debug log for diagnosing the demod data randomness issue.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Refactored the moving average filter for re-utilisation on other code points.
Added it to the AGC measuring values to filter out noise.
It seems to fix/workaround AGC issues on the samples I have.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Modified fallback sync/levels logic

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* vsync_envelope_simple() not so tested corrections

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Added experimental changes to vsync_envelope_simple(), merged oyvindln numba and np.square optimisations

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* fallback logic getLevels fixes + oyvindln process.py changes

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Some tape batch tests script intro

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Tape batch tests improvements

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Tape batch tests improvements

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Passed the optional debug flag to the resync code.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Restored vsync_envelope_simple() logic, to fix bicycle sample start problem.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>
oyvindln pushed a commit to oyvindln/vhs-decode that referenced this issue Jul 23, 2021
…ag (#37)

* Merge of vhs_decode branch

* typo glitch fix

* DC restore intro

* DC restore, before sync restore

* DC restore improved metrics

* DC restore improved metrics, pre merge check

* Added chroma trap option to cvbs-decode

* Auto-sync level, first try

* Auto-sync level, added to cvbs + wavesink

* Auto-sync level (block level, not working) , added to cvbs + wavesink

* Auto-sync level (block level, not working) , added to cvbs + wavesink

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

* Previous merge commit

* Merge of oyvindln/vhs_decode changes

* Resync

* Moved experimental sync separator code to resync branch

* Restored deleted files

* Comment typo fix

* Comment typo fix

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

* VBI serration detection test

* Merge of vhs_decode branch

* typo glitch fix

* Added chroma trap option to cvbs-decode

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

* Merge of oyvindln/vhs_decode changes

* Comment typo fix

* Comment typo fix

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

* vsync_levels pre-cleanup

* VBI vsync autolevels testing

* Temporarly disabled extra-diff code to force zero crossings, it can be enabled with the -ed switch

* Added demodblock() envelope (env) zeroes check, to avoid potential division by zero during the high_part boost calculation.

* - Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

* Bad signal / 'Chewed tape' sample (preliminary fix) (#24)
* Added chroma trap option to cvbs-decode
* Comment typo fix
* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.
Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Some dead code removal

Merge of oyvindln/vhs_decode changes

Comment typo fix

Comment typo fix

getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support (#25)

* Merge of vhs_decode branch

* typo glitch fix

* DC restore intro

* DC restore, before sync restore

* DC restore improved metrics

* DC restore improved metrics, pre merge check

* Added chroma trap option to cvbs-decode

* Auto-sync level, first try

* Auto-sync level, added to cvbs + wavesink

* Auto-sync level (block level, not working) , added to cvbs + wavesink

* Auto-sync level (block level, not working) , added to cvbs + wavesink

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

* Previous merge commit

* Merge of oyvindln/vhs_decode changes

* Moved experimental sync separator code to resync branch

* Comment typo fix

* Comment typo fix

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

* Merge of vhs_decode branch

* typo glitch fix

* Added chroma trap option to cvbs-decode

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

* Merge of oyvindln/vhs_decode changes

* Comment typo fix

* Comment typo fix

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

- Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Split up replace_spikes to avoid numba compile issues and run formatter

Avoid mean of empty slice warning

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Tidy indentation in chromadecoderconfigdialog.ui.

The chromaGain default is 1.0 for both standards.

Tidy indentation in yiqToYUVFrame.

Remove duplicate spacers in chromadecoderconfigdialog.ui.

The first one produced a warning from uic because it had a duplicate ID,
but neither is actually needed.

Remove remaining references to opencv.

The OpenCV code was removed in 6c7f74d663d ("Fix for issue happycube#484").

Update copyright notices in ld-chroma-decoder.

This catches up on the changes for noise reduction and YCbCr output.

Use QString::arg rather than QString::sprintf.

sprintf is deprecated in Qt 5.15.

Remove some stray spaces from warning/error messages.

Use \n rather than QTextStream::endl.

The latter is deprecated in Qt 5.15, and the only difference is that it
doesn't force a flush (which probably isn't what we want in the middle
of printing a dropout list anyway).

PalColour doesn't need to be a QObject.

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

* fixup!
- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Modified the serration search code, now the envelope uses the fifth Vsync harmonic limit instead the third harmonic.

* Changed min valid levels to report valid serration levels
Added field_state levels.

* chroma loss sample fails

* RuntimeWarning: Div by zero prevented at lddecode/utils.calczc_do()

* RuntimeWarning: Div by zero prevented at lddecode/utils.calczc_do()

* Regenerates the sync pulses amplitude
Skips 100ms

* Seems to sort a lot of edge cases, saving this

* Added resync branch getpulses_override() logic

* Safe clips the bottom of the sync pulses but leaves picture area unchanged, https://youtu.be/ZlsS_a4qdI4

* Nosync sample decodes

* Serration levels detection adjustments (produces new frames on chewed sample)

* Suggested oyvindln changes over replace_spikes() on diff_demod

* Added ldd.core logger, changed the name of the Vsync class to VsyncSerration

* Disabled serration detection in cvbs-decode

* Encapsulated all the sync search and the serration search into Resync Class

* Merged resync branch changes

* - Corrected the fallback sync logic when serrations not found.
- Changed the log output for the serration freqs. to kHz units.

* - added a note on what I mean with fallback sync logic

* - Added more debugging if show_decoded is enabled on VsyncSerration() class
- Modified the sync fallback logic to improve decoding of the 'Bicycles sample' field_drop_issue_starting_at_frame_18_and_some_more_ capture26739-26911_2291x625_25Hz_8bit.flac

* Added field hash debug info for SysParams and field.data["video"]["demod_05"] (sync_reference)


* Added some checks for SysParams consistency, and found the AGC changes both the ire0 parameter and the hz_ire parameter (all other parameters seems to be constant).
Added an assertion to check if the length of the data input of demodblock() corresponds to blocklen and the same lengths of the output arrays (no issues found with that)
Added the field data sync reference hash to the debug log for diagnosing the demod data randomness issue.


* Refactored the moving average filter for re-utilisation on other code points.
Added it to the AGC measuring values to filter out noise.
It seems to fix/workaround AGC issues on the samples I have.


* Modified fallback sync/levels logic


* vsync_envelope_simple() not so tested corrections


* Added experimental changes to vsync_envelope_simple(), merged oyvindln numba and np.square optimisations


* fallback logic getLevels fixes + oyvindln process.py changes


* Some tape batch tests script intro


* Tape batch tests improvements


* Tape batch tests improvements


* Passed the optional debug flag to the resync code.


* Restored vsync_envelope_simple() logic, to fix bicycle sample start problem.


* Merged from vhs_decode upstream.
Minor README changes
Added SVHS support to batch_tests.py


* ChromaAFC introduction


* ChromaAFC enable flag -cafc
requires pyhtt (sudo pip3 install pyhht)
It will use unwarp_hilbert(), but not tuned yet
Added pyhht to the README.md


* Improved Chroma AFC


* Chroma AFC, now it does something


* Merge of upstream and Chroma AFC changes


* Chroma AFC measure smoothing changes


* Serration fixes


* Added --sync_clip optional flag
Added fixes to vsyncserration.py
Merge of upstream.


* Improved -cafc


* -cafc (only phase, not freq)


* -cafc (only phase, not freq), enables in try_detect_track


* If -cafc filters chroma after TBC + chroma related refactor


* Changes IGNORED_LINES in burst phase detection


* -cafc selects the nearest peak harmonic from the chroma channel as carrier


* -cafc more interesting results


* -cafc some corrections


* -cafc searchs peak carrier
Does chroma trap after TBC
Cleans up the gen_chroma scripts a bit


* -cafc max carried dev adjusted to +- 8%


* -cafc restores nearest center carrier selection logic


* -cafc fraction of fh selector


* serration/AGC moving average window adjustments


* serration/AGC moving average window adjustments


* serration/AGC moving average window adjustments


* Chroma AFC changes, serration changes, chroma trap regression.


* Sync levels adjustments


* Sync logic fixes and cleanups


* Chewed tape case review


* Infinite loop fix


* Cleanup


* Readme fixes


* Readme fixes


* IGNORED_LINES parameter reversion

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>
oyvindln pushed a commit to oyvindln/vhs-decode that referenced this issue Feb 20, 2023
* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Resync

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Restored deleted files

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* VBI serration detection test

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* vsync_levels pre-cleanup

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* VBI vsync autolevels testing

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Temporarly disabled extra-diff code to force zero crossings, it can be enabled with the -ed switch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added demodblock() envelope (env) zeroes check, to avoid potential division by zero during the high_part boost calculation.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Bad signal / 'Chewed tape' sample (preliminary fix) (#24)
* Added chroma trap option to cvbs-decode
* Comment typo fix
* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.
Fixes some bad signal cases.

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support (#25)

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore intro

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore, before sync restore

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* DC restore improved metrics, pre merge check

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, first try

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level, added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Auto-sync level (block level, not working) , added to cvbs + wavesink

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Previous merge commit

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Moved experimental sync separator code to resync branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of vhs_decode branch

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* typo glitch fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added chroma trap option to cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge branch 'vhs_decode' of github.com:oyvindln/ld-decode into vhs_decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

# Conflicts:
#	vhsdecode/process.py (solved)

* Some dead code removal

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merge of oyvindln/vhs_decode changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Comment typo fix

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* getpulses_override() keep the last valid blacklevel, synclevel, and vsync_locs for use in the case where they cannot be measured on the current field.

Fixes some bad signal cases.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added -palm -pm command line switches and RFParams_MPAL_VHS on formats.py

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* cvbs-decode / vhs-decode common options deduplication + preliminary PAL-M support

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changes cleanup (vhs-decode/cvbs-decode command line deduplication + preliminary PAL-M support)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function as shown before.
- Added a command line option to optionally disable diff demod
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Split up replace_spikes to avoid numba compile issues and run formatter

Avoid mean of empty slice warning

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

Tidy indentation in chromadecoderconfigdialog.ui.

The chromaGain default is 1.0 for both standards.

Tidy indentation in yiqToYUVFrame.

Remove duplicate spacers in chromadecoderconfigdialog.ui.

The first one produced a warning from uic because it had a duplicate ID,
but neither is actually needed.

Remove remaining references to opencv.

The OpenCV code was removed in 6c7f74d663d ("Fix for issue happycube#484").

Update copyright notices in ld-chroma-decoder.

This catches up on the changes for noise reduction and YCbCr output.

Use QString::arg rather than QString::sprintf.

sprintf is deprecated in Qt 5.15.

Remove some stray spaces from warning/error messages.

Use \n rather than QTextStream::endl.

The latter is deprecated in Qt 5.15, and the only difference is that it
doesn't force a flush (which probably isn't what we want in the middle
of printing a dropout list anyway).

PalColour doesn't need to be a QObject.

- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* fixup!
- Changed the replace_spikes function to use np.where instead np.argwhere.
- Added a command line option to optionally disable diff demod -nodd
- Added a command line option to optionally disable DC offset blanking level compensation -nodc
- Added a warning print when the RF goes weak and prevented env to divide by zero on the high boost
- Improved the field state sync/blank levels, instead of keeping the last valid measured values, it stacks them and does a moving average filter.
It seems to fix the numpy error sample, and the 'chewed tape' sample. Both decodes completely.

Modified the serration search code, now the envelope uses the fifth Vsync harmonic limit instead the third harmonic.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Changed min valid levels to report valid serration levels
Added field_state levels.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* chroma loss sample fails

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* RuntimeWarning: Div by zero prevented at lddecode/utils.calczc_do()

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* RuntimeWarning: Div by zero prevented at lddecode/utils.calczc_do()

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Regenerates the sync pulses amplitude
Skips 100ms

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Seems to sort a lot of edge cases, saving this

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added resync branch getpulses_override() logic

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Safe clips the bottom of the sync pulses but leaves picture area unchanged, https://youtu.be/ZlsS_a4qdI4

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Nosync sample decodes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Serration levels detection adjustments (produces new frames on chewed sample)

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Suggested oyvindln changes over replace_spikes() on diff_demod

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added ldd.core logger, changed the name of the Vsync class to VsyncSerration

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Disabled serration detection in cvbs-decode

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Encapsulated all the sync search and the serration search into Resync Class

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Merged resync branch changes

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Corrected the fallback sync logic when serrations not found.
- Changed the log output for the serration freqs. to kHz units.

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - added a note on what I mean with fallback sync logic

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* - Added more debugging if show_decoded is enabled on VsyncSerration() class
- Modified the sync fallback logic to improve decoding of the 'Bicycles sample' field_drop_issue_starting_at_frame_18_and_some_more_ capture26739-26911_2291x625_25Hz_8bit.flac

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>

* Added field hash debug info for SysParams and field.data["video"]["demod_05"] (sync_reference)

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Added some checks for SysParams consistency, and found the AGC changes both the ire0 parameter and the hz_ire parameter (all other parameters seems to be constant).
Added an assertion to check if the length of the data input of demodblock() corresponds to blocklen and the same lengths of the output arrays (no issues found with that)
Added the field data sync reference hash to the debug log for diagnosing the demod data randomness issue.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Refactored the moving average filter for re-utilisation on other code points.
Added it to the AGC measuring values to filter out noise.
It seems to fix/workaround AGC issues on the samples I have.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Modified fallback sync/levels logic

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* vsync_envelope_simple() not so tested corrections

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Added experimental changes to vsync_envelope_simple(), merged oyvindln numba and np.square optimisations

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* fallback logic getLevels fixes + oyvindln process.py changes

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Some tape batch tests script intro

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Tape batch tests improvements

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Tape batch tests improvements

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Passed the optional debug flag to the resync code.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Restored vsync_envelope_simple() logic, to fix bicycle sample start problem.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Merged from vhs_decode upstream.
Minor README changes
Added SVHS support to batch_tests.py

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* ChromaAFC introduction

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* ChromaAFC enable flag -cafc
requires pyhtt (sudo pip3 install pyhht)
It will use unwarp_hilbert(), but not tuned yet
Added pyhht to the README.md

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Improved Chroma AFC

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Chroma AFC, now it does something

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Merge of upstream and Chroma AFC changes

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Chroma AFC measure smoothing changes

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Serration fixes

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Added --sync_clip optional flag
Added fixes to vsyncserration.py
Merge of upstream.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Improved -cafc

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc (only phase, not freq)

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc (only phase, not freq), enables in try_detect_track

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* If -cafc filters chroma after TBC + chroma related refactor

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Changes IGNORED_LINES in burst phase detection

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc selects the nearest peak harmonic from the chroma channel as carrier

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc more interesting results

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc some corrections

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc searchs peak carrier
Does chroma trap after TBC
Cleans up the gen_chroma scripts a bit

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc max carried dev adjusted to +- 8%

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc restores nearest center carrier selection logic

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* -cafc fraction of fh selector

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* serration/AGC moving average window adjustments

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* serration/AGC moving average window adjustments

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* serration/AGC moving average window adjustments

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Chroma AFC changes, serration changes, chroma trap regression.

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Sync levels adjustments

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Sync logic fixes and cleanups

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Chewed tape case review

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Infinite loop fix

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Cleanup

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Readme fixes

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Readme fixes

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* IGNORED_LINES parameter reversion

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Added -cshift option and updated advanced_flags.md

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Reverts some auto-format code, adds pdb-attach to pip3 install in README.md. Restores ntsc2d as default decoder on gen_chroma_vid_ntsc.sh

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Merge of upstream +
cafc chroma filter sample rate fix.
Removes chroma shift command line parameter

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Fix typo on gen_chroma_vid_ntsc.sh

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* First attempts at HiFi decoding

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* HiFi code cleanup

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Updates to main fork changes

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Adds hifi-decode to main branch

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Adds hifi-decode to setup.py

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

* Fixes unwanted changes on cmdcommons.py

Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>

---------

Signed-off-by: Sebastian Wilwerth <sebastian.wilwerth@gmail.com>
Signed-off-by: VideoMem <sebastian.wilwerth@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deficiency ld-decode-tools An issue only affecting the ld-decode-tools
Projects
None yet
Development

No branches or pull requests

1 participant