Skip to content

Commit

Permalink
fix decoder params overrides
Browse files Browse the repository at this point in the history
  • Loading branch information
happycube committed Feb 20, 2024
1 parent 53133a5 commit 56c63e0
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 35 deletions.
42 changes: 23 additions & 19 deletions lddecode/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@
import numba
from numba import njit

# Use standard numpy fft, since it's thread-safe
import numpy.fft as npfft
import scipy.fft as npfft

# internal libraries

Expand Down Expand Up @@ -187,10 +186,10 @@ def calclinelen(SysParams, mult, mhz):
}

# Settings for use with noisier disks
RFParams_NTSC_lowband = RFParams_NTSC.copy()
RFParams_NTSC_lowband['video_bpf_low'] = 3800000
RFParams_NTSC_lowband['video_bpf_high'] = 12500000
RFParams_NTSC_lowband['video_lpf_freq'] = 4200000
FilterParams_NTSC_lowband = FilterParams_NTSC.copy()
FilterParams_NTSC_lowband['video_bpf_low'] = 3800000
FilterParams_NTSC_lowband['video_bpf_high'] = 12500000
FilterParams_NTSC_lowband['video_lpf_freq'] = 4200000

FilterParams_PAL = {
# The audio notch filters are important with DD v3.0+ boards
Expand All @@ -215,11 +214,11 @@ def calclinelen(SysParams, mult, mhz):
}

# Settings for use with noisier disks
RFParams_PAL_lowband = RFParams_PAL.copy()
RFParams_PAL_lowband['video_bpf_low'] = 3200000
RFParams_PAL_lowband['video_bpf_high'] = 13000000
RFParams_PAL_lowband['video_bpf_order'] = 13000000
RFParams_PAL_lowband['video_lpf_freq'] = 4800000
FilterParams_PAL_lowband = FilterParams_PAL.copy()
FilterParams_PAL_lowband['video_bpf_low'] = 3200000
FilterParams_PAL_lowband['video_bpf_high'] = 13000000
FilterParams_PAL_lowband['video_bpf_order'] = 13000000
FilterParams_PAL_lowband['video_lpf_freq'] = 4800000

class RFDecode:
"""The core RF decoding code.
Expand Down Expand Up @@ -254,13 +253,14 @@ class RFDecode:

def __init__(
self,
inputfreq = 40,
system = "NTSC",
blocklen = BLOCKSIZE,
decode_digital_audio = False,
decode_analog_audio = 0,
has_analog_audio = True,
extra_options = {},
inputfreq = 40,
system = "NTSC",
blocklen = BLOCKSIZE,
decode_digital_audio = False,
decode_analog_audio = 0,
has_analog_audio = True,
extra_options = {},
decoder_params_override = {},
):
"""Initialize the RF decoder object.
Expand Down Expand Up @@ -319,6 +319,9 @@ def __init__(
for irekey in ['ire0', 'hz_ire', 'vsync_ire']:
self.DecoderParams[irekey] = self.SysParams[irekey]

for k in decoder_params_override.keys():
self.DecoderParams[k] = decoder_params_override[k]

self.SysParams["analog_audio"] = has_analog_audio
self.SysParams["AC3"] = extra_options.get("AC3", False)
if self.SysParams["AC3"]:
Expand Down Expand Up @@ -1264,7 +1267,6 @@ def read(self, begin, length, MTF=0, getraw = False, forceredo=False):
return rv

def setparams(self, params):
# XXX: This should flush out the data, but right now this isn't used at all
for p in self.threadpipes:
p[0].send(("NEWPARAMS", params))

Expand Down Expand Up @@ -3314,6 +3316,7 @@ def __init__(
threads=4,
inputfreq=40,
extra_options={},
DecoderParamsOverride={}
):
global logger
self.logger = _logger
Expand Down Expand Up @@ -3402,6 +3405,7 @@ def __init__(
'has_analog_audio':self.has_analog_audio,
'extra_options':extra_options,
'blocklen': 32 * 1024,
'decoder_params_override': DecoderParamsOverride
}

self.rf = RFDecode(**self.rf_opts)
Expand Down
30 changes: 14 additions & 16 deletions lddecode/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,19 @@ def main(args=None):
version = get_git_info()
logger.debug("ld-decode branch " + version[0] + " build " + version[1])

DecoderParamsOverride = {}
if args.vbpf_low is not None:
DecoderParamsOverride["video_bpf_low"] = args.vbpf_low * 1000000

if args.vbpf_high is not None:
DecoderParamsOverride["video_bpf_high"] = args.vbpf_high * 1000000

if args.vlpf is not None:
DecoderParamsOverride["video_lpf_freq"] = args.vlpf * 1000000

if args.vlpf_order >= 1:
DecoderParamsOverride["video_lpf_order"] = args.vlpf_order

ldd = LDdecode(
filename,
outname,
Expand All @@ -340,6 +353,7 @@ def main(args=None):
doDOD=not args.nodod,
threads=args.threads,
extra_options=extra_options,
DecoderParamsOverride=DecoderParamsOverride,
)

signal.signal(signal.SIGINT, original_sigint_handler)
Expand All @@ -359,22 +373,6 @@ def main(args=None):
print("ERROR: Seeking failed", file=sys.stderr)
sys.exit(1)

DecoderParamsOverride = {}
if args.vbpf_high is not None:
DecoderParamsOverride["video_bpf_high"] = args.vbpf_high * 1000000

if args.vbpf_low is not None:
DecoderParamsOverride["video_bpf_low"] = args.vbpf_low * 1000000

if args.vlpf is not None:
DecoderParamsOverride["video_lpf_freq"] = args.vlpf * 1000000

if args.vlpf_order >= 1:
DecoderParamsOverride["video_lpf_order"] = args.vlpf_order

if len(DecoderParamsOverride.keys()):
ldd.demodcache.setparams(DecoderParamsOverride)

if args.verboseVITS:
ldd.verboseVITS = True

Expand Down

0 comments on commit 56c63e0

Please sign in to comment.