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

Leandvb integration #36

Open
i1ndp opened this issue Dec 9, 2021 · 4 comments
Open

Leandvb integration #36

i1ndp opened this issue Dec 9, 2021 · 4 comments

Comments

@i1ndp
Copy link

i1ndp commented Dec 9, 2021

I am trying to build a DTV receiver using a B200 Ettus receiver , the main problem to me was to find a digital decoder but finally dropped into leandvb. I did some test using the decoder as an application and apparently it was working but was not exactly what i was looking for.
I decided then to use the source as add on to mine adding the source files to my application changing very few to start it as a thread and using an unnamed pipe to transfer data.Problems? All easy until start testing.
leandvb returns from the scheduler after having done very few steps.
The following is a trace of the activity (leandvb runnables) when i start to send data:

Runnable: 0 stdin
Runnable: 1 scaler
Runnable: 2 spectrum
Runnable: 3 TS packets
Runnable: 4 rate_estimator
Runnable: 5 S2 frame receiver
Runnable: 6 S2 deinterleaver
Runnable: 7 S2 fecdec io
Runnable: 8 S2 deframer
sch stopped---------------------------stop and start closing
Runnable x shutdown: 0 stdin
Runnable x shutdown: 1 scaler
Runnable x shutdown: 2 spectrum
Runnable x shutdown: 3 TS packets
Runnable x shutdown: 4 rate_estimator
Runnable x shutdown: 5 S2 frame receiver
Runnable x shutdown: 6 S2 deinterleaver
Runnable x shutdown: 7 S2 fecdec io
Runnable x shutdown: 8 S2 deframer

The code is very hermetic and i was not able to go any further ..
As help the following is the used configuration:

config()
: verbose(false),
debug(true),
debug2(true),
highspeed(false),
input_format(INPUT_F32),
float_scale(1.0),
loop_input(false),
input_pipe(0),
input_buffer(0),
buf_factor(4),
Fs(2.4e6),
Fderot(0),
anf(0),
cnr(false),
decim(0),
fd_pp(-1),
fd_gse(-1),
fd_iqsymbols(-1),
awgn(0),
Fm(2e6),
standard(DVB_S2),
constellation(cstln_base::QPSK),
strongpls(false),
modcods(0xffffffff),
framesizes(0x03),
fec(FEC12),
Ftune(0),
allow_drift(false),
freq_tol(0.25),
sr_tol(100e-6),
fastlock(true),
fastdrift(false),
viterbi(true),
hard_metric(false),
ldpc_bf(10),
ldpc_helper("ldpc_tool"),
nhelpers(4),
resample(false),
resample_rej(10),
sampler(config::SAMP_RRC),
rrc_steps(0),
rrc_rej(10),
rolloff(0.35),

  hdlc(false),
  packetized(false),

  gui(false),
  duration(60),
  linger(false),
  fd_info(-1),
  Finfo(5),
  fd_const(-1),
  fd_spectrum(-1),
  json(false) {

Any hints will be very appreciated.
Thanks in advance,nando

@pabr
Copy link
Owner

pabr commented Dec 9, 2021

Your approach of feeding data to a leandvb thread through a pipe should work.

The scheduler stops when the flowgraph is not making any progress. Normally this means EOF on stdin or stdout. Are you redirecting stdout to a pipe as well ?

Can you copy-paste the debug traces from stderr, including the final statistics report ? Please configure verbose(true).

There are known issues with the external LDPC decoder when signals are noisy. You may want to try with ldpc_helper(NULL) first.

@i1ndp
Copy link
Author

i1ndp commented Dec 9, 2021 via email

@pabr
Copy link
Owner

pabr commented Dec 9, 2021

According to your stderr log, leandvb is not reading any IQ data. You could run your program under "strace -f" to see if it is doing the I/O syscalls you expect, and if the file descriptors for the pipe are correct.

@i1ndp
Copy link
Author

i1ndp commented Dec 10, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants