Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

What I want to do

I have a Hauppauge WinTV-HVR 950Q USB-TV-Stick. I want to use this stick to successively tune to and read in a certain live TV stream.

What I do

I trigger a scan and save the scan results in a file. I call it channels.conf, like the v4l documentary proposes.

scan /home/username/Documents/dvb/atsc/us-CA-SF-Bay-Area > /home/username/Documents/dvb/atsc/conf/home_channels.conf

Everything works fine, the scan returns something like this(A correct channel file):

[0003]:503000000:8VSB:49:52:3
[0005]:503000000:8VSB:81:84:5
[0006]:503000000:8VSB:97:100:6
26 San Francisco, CA:551000000:8VSB:49:52:3
26 San Francisco, CA:551000000:8VSB:65:68:4
KTSF-D3:551000000:8VSB:81:84:5
KTSF-D4:551000000:8VSB:97:100:6
KTSF-D5:551000000:8VSB:113:116:7
KTSF-D6:551000000:8VSB:129:132:8
KPIX-DT:563000000:8VSB:49:52:1
KKPX ION:635000000:8VSB:49:52:3
KKPX qubo:635000000:8VSB:65:68:4
IONLife:635000000:8VSB:81:84:5
100:635000000:8VSB:487:488:100
200:635000000:8VSB:417:418:200
201:635000000:8VSB:422:423:201
202:635000000:8VSB:427:428:202
203:635000000:8VSB:432:433:203
204:635000000:8VSB:412:413:204
300:635000000:8VSB:442:443:300
400:635000000:8VSB:457:458:400
KSTS-HD:683000000:8VSB:49:52:3
Telemundo Exitos TV:683000000:8VSB:65:68:4
CNL-SOI:683000000:8VSB:81:84:5
KQEH:689000000:8VSB:49:52:1
KQED:689000000:8VSB:65:68:2
LIFE:689000000:8VSB:81:84:3
KIDS:689000000:8VSB:97:100:4
V-me:689000000:8VSB:113:116:5

Then I tune to a channel from the scan results. KIDS for example:

azap -r -c Documents/dvb/atsc/conf/channels.conf KIDS

What I expect the program to do:

I expect the program to be tuned and to deliver results similar to this:

username@username:~$ azap -r -c Documents/dvb/atsc/conf/channels.conf KIDS
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 689000000 Hz
video pid 0x0061, audio pid 0x0064

status 1f | signal 00e6 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00e6 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00e6 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00dc | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00e6 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00e6 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
...

What it does:

In 2 out of 5 tries the azap just doesn't work at all.

username@username:~$ azap -r -c Documents/dvb/atsc/conf/channels.conf KIDS
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
tuning to 689000000 Hz
video pid 0x0061, audio pid 0x0064

status 00 | signal 0000 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 0000 | snr 00e4 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 0000 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 0000 | snr 00c2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 0000 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
...

The rest of the time it generally works initially, then switches the status to 00 and can not be used any more, even if there is incoming signal.

status 1f | signal 00dc | snr 00dc | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00d2 | snr 00dc | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00dc | snr 00dc | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00dc | snr 00dc | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00d2 | snr 00d2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00c8 | snr 00d2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 1f | signal 00d2 | snr 00d2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00d2 | snr 00d2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00d2 | snr 00d2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00d2 | snr 00d2 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00dc | snr 00dc | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00e6 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00dc | snr 00dc | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00e6 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00e6 | snr 00e6 | ber 00000000 | unc 00000000 | FE_HAS_LOCK
status 00 | signal 00e6 | snr 00dc | ber 00000000 | unc 00000000 | FE_HAS_LOCK
...

The output even shows that there is high signal to noise ratio, low or rather no block errors or uncorrected errors at all at first, then it This keeps me wondering since I see no reason for the program to switch. After double checking with a real TV I am very sure that I always have an incoming signal and that there should not be any reasons for a behavior like this.

Question

Can any of you guys see a reason for this behavior, could it be a problem with the Hardware that I'm using or rather a Software issue? Did anybody experience the same issues, how did you fix it? Any help is greatly appreciated!

share|improve this question

migrated from stackoverflow.com Feb 27 '12 at 19:37

This question came from our site for professional and enthusiast programmers.

1 Answer 1

Did you try using the atsc initial tuning data?

$ head -n 20 /usr/share/dvb/atsc/us-ATSC-center-frequencies-8VSB
# US ATSC center frequencies, use if in doubt

A  57028615 8VSB
A  63028615 8VSB 
A  69028615 8VSB
A  79028615 8VSB
A  85028615 8VSB
A 177028615 8VSB
A 183028615 8VSB
A 189028615 8VSB
A 195028615 8VSB
A 201028615 8VSB
A 207028615 8VSB
A 213028615 8VSB
A 473028615 8VSB
A 479028615 8VSB
A 485028615 8VSB
A 491028615 8VSB
A 497028615 8VSB
A 503028615 8VSB

How does it behave using vlc to tune?

vlc atsc://frequency=689028615 :dvb-adapter=0
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.