Log in Register FAQ Memberlist Search pcHDTV Forum Index
pcHDTV Forum

pcHDTV Forum Index -> General pcHDTV topics -> Curse of the A52 audio errors on QAM256 (among a few others)
Post new topic  This topic is locked: you cannot edit posts or make replies. View previous topic :: View next topic 
Curse of the A52 audio errors on QAM256 (among a few others)
PostPosted: Fri Feb 10, 2006 4:02 am Reply with quote
bjohnson
 
Joined: 10 Feb 2006
Posts: 3




2 weeks battling this and am a bit frustrated. I'll try to be polite and
descriptive as I can.

Brief summary: I can sort of get video now, but ac3 is frag'd to hell.

Purpose: This box I'm building is for recording only. The appeal of the
hd3000 card was the ability to dump the pure digital signal straight to
disk (essentially a coax sniffer). Once I get that, the plan is to copy it
off the video box to another machine for watching or rendering (like I did
with my old mjpeg setup). This box will be a record only PVR. Hardware is
an IBM P2-400 with Intel BX chip set. It can keep up with the channel
dumping just fine (just a disk write). The hd3000 is the only card on
IRQ11. Right now I just want to start simple and will make it more
complicated later when I have time. (I've also tried debian-sarge on a
k6-2 350 with sis chip set...in hind site, I think it got to the point I'm
at now, but I had no real way of knowing until now). I installed
KnoppMythR5A30.2.iso on the IBM box.

My digital cable is Verizon FiOS TV. I have a strand of fibre coming up
the side of the house to their break-out box where it supplies phone,
internet, and digital cable. To get digital cable into the house, I've run
quad shield RG6 (me, not them). FiOS TV uses QAM256 to carry the stations.

I beat Verizon support over the head and found someone knowledgable about
what's on the coax wire. I gave the guy the pchdtv.com web site and asked
him about the hd3000 BEFORE I purchased it. He said only the premium
channels were encrypted (I don't want those anyways) and the basic-
expanded service would work just fine since it did QAM256.

Originally the signal was too strong for the card, so I dropped it with an
8 way splitter plus terminators. It now shows up as 99% and sometime wraps
the number around (annoying). The set top box is always happy with the
signal and the video doesn't break up on the TV. Since I have a light pipe
on the side of the house and ran good wiring myself, I know the signal is
clean and pure (as in not parallel to house power).

I know the hidden diagnostic mode of the set top box provided by Verizon
and have found the MHz frequency and PID's of channels and matched them up
with the hd3000 channel scan. Some channels don't record. I can dump them
to disk, but mplayer won't lock on to any stream. For testing I will stick
with the responsive ones...but I'll still need to figure out why later.

(Oh yeah, to get to diags on the Motorola QIP2500-1, turn it on, change
channel to desired station, on the remote press "power" then "ok" and
you'll be presented with a list of geek options.)

FiOS TV has mainly 8 standard digital TV stations per QAM channel.
Resolution is typically 528x480. For HD, typically 2 stations per channel.

I tried mythtv but half won't compile. I installed and am running
knoppmyth right now, but keep getting sql errors on a standalone box setup
(essentially broken from start). I've also tried pchdtvr but it won't
fully compile (frustrating). I can set up my own at/cron jobs, so this
really isn't the focus yet. (Eventually I will probably do a fresh install
of debian-sarge if these ever clears up.)

I tried recording FOX then ABC using the test_dvr program (one of the few
programs that compiled). Both of these stations are on the same QAM
channel (and broadcast are definitely unencrypted). I'd move the raw TS
file over my network and play it back on my windorks box using VLC. For
each test I'd randomly get FOX, ABC, or another station on that QAM
channel (also frustrating).

steps:

./dtvsignal -q -dvb 0 63 #channel qam63 starts for me
shows strong signal

./azap -r STATION
runs in separate window showing the LOCK flag.
./dvbscan -c
shows the cryptic channel listings.

BUF_SIZE=1925120 ./dvb-apps/test/test_dvr test.mpg 0x2000
test.mpg gets moved to other system for playback.

It is important to note that the raw TS mpg file played smooth without
apparent dropped frames (can't figure out why yet). It just doesn't always
play the chosen station from azap. FE_HAS_LOCK didn't go away during the
recordings and the signal strength and SNR readings were typically in the
0xFDXX range.

I've tried test_dvr with the pids of the channels, but it doesn't come
back with anything mplayer/mencoder or VLC on the other box can play.
(actually this is the way I'd like to go right now for recording, simple
command line just dumping to disk the station I want).

I've tried mplayer and mencoder on the dvr0 device. It didn't do any
much better than test_dvr.

mplayer -dumpstream -dumpfile out.mpg -tsprog XXX /dev/.../dvr0
I've also tried "-vid XX -aid XX" with no good results. It would be a
mostly trashed mpeg stream played back on the other system (if that much).

Knowing a little mencoder, I tried:
mencoder -of mpeg -ovc copy -oac copy -o outvid.mpg /dev/.../dvr0

I tried it with "-tsprog XX" and "-aid XX -vid XX". I also tried it on the
raw dump produced by test_dvr with similar results. It would "seem" to
split out the video but have jerky playback...if it played back at all
(about 1frame dropped per second, but no vid errors on capture). It
definitely dropped many frames. mencoder would also complain bitterly
about a52/ac3 problems that weren't there when playing back the original
raw and full dump stream on VLC. Also the output file would claim to have
audio but I'd never hear it (while the raw TS dump file played fine except
for the random station choosing).

I downloaded and compiled the CVS mplayer version. While it doesn't
complain about ac3 while doing the dump, it does when I try to convert the
ac3 to a wav file (with one station, no audio at all). My windoze program to
convert ac3 to wav also complains. When I play both wav files back, they
badly skip and blip. This is always the case with audio except for VLC
playing a random station on the raw QAM channel dump.

I tried another compile of cvs-mplayer using the "+4/-4" and the "return
-1" patches mentioned deep in the message board, but also no luck.

My notes are a bit scattered now, but I've tried a few others. I've tried
replex (barfs on stream errors) and some of the libdvb tools (ts2ps) to
maybe convert the mpeg2 stream to PS, but I keep getting unplayable video
and broken audio like above. dtvstream doesn't work and dvbstream produces
the same output as above.

On a side note, dvd2avi under windoze can seem to read the video of the
stream produced by mplayer in a PS format, but the demux of the audio
produces the same corrupt ac3 files. Using avisynth to get it to
virtualdub, there don't appear to be any dropped or corrupted frames
(going over the video 1 frame at a time).

In short, nothing yet produces usable output.

Digging through the message board a little more, I've seen a firmware
issue. I think mine loads. I copied in the files from pchdtv.com over the
existing ones with no differences. dmesg could be a little cleaner. At the
end of the message is my dmesg with a looping issue...but it seems happy
afterwards. Maybe it isn't? :-\

So...first round of questions:

Why can't I extract a viable mpeg2 PS file from the stream? (these are
just video+ac3 dumps)

VLC can play clean audio from a random station in the TS dump file, why
can't any other? Why can't the audio be extracted? Why do any attempts to
produce an mpeg2 PS stream fail? (oh yeah, tried VLC transcode option, but
it wasn't very happy with any of the input)

When I tune the card using the "azap -r STATION" command, shouldn't I get
one and only one station consistently out of dvr0? (hence the station
definitions in the channels file?) Can't I record the program stream I
want instead of the entire QAM channel (at ~5meg/sec)?

Are there other programs out there that will actually compile and work
correctly?

I don't mean to be rude, but the doc's on this card are pathetically
light... even by linux "standards". And just saying "go see the forum" is
a cop out (lots of old conflicting messages that have little relevance to
current drivers). I still haven't seen anything overly definitive about
how to get svideo and the composite inputs to work. :-\ I'm sure that's
only 1 or 2 lines of code to set up. That can't be in the FAQ?

If I can't get this working reliably soon, I'm getting my money back while
I still can...and before I waste too much more time.

[Side note: If you're just going to tell me Verizon=#### (take a guess at
the 4 missing characters), I already know that and please keep your
comments to yourself. Comcast analog at my last house was a nightmare.
Come to think, I haven't met a cable provider I truly like yet...but
having a glass pipe on the side of the house is a bit of an improvement.]

dmesg output from reference above (kernel 2.6.13.2-chw-3):

Linux video capture interface: v1.00
cx2388x dvb driver version 0.0.5 loaded
cx88[0]: quirk: PCIPCI_NATOMA -- set TBFX
cx88[0]: subsystem: 7063:3000, board: pcHDTV HD3000 HDTV [card=22,autodetected]
TV tuner 52 at 0x1fe, Radio tuner -1 at 0x1fe
PCI: Found IRQ 11 for device 0000:00:10.2
PCI: Sharing IRQ 11 with 0000:00:10.0
cx88[0]/2: found at 0000:00:10.2, rev: 5, irq: 11, latency: 48, mmio: 0xf3000000
cx88[0]/2: cx2388x based dvb card
DVB: registering new adapter (cx88[0]).
DVB: registering frontend 0 (pcHDTV HD3000 HDTV)...
cx2388x v4l2 driver version 0.0.5 loaded
PCI: Found IRQ 11 for device 0000:00:10.0
PCI: Sharing IRQ 11 with 0000:00:10.2
cx88[0]/0: found at 0000:00:10.0, rev: 5, irq: 11, latency: 160, mmio: 0xf2000000
tuner (ivtv): chip found at addr 0xc2 i2c-bus cx88[0]
tuner: type set to 52 (Thomson DDT 7610 (ATSC/NTSC)) by cx88[0]
cx88[0]/0: registered device video0 [v4l2]
cx88[0]/0: registered device vbi0
cx88[0]/0: registered device radio0
Linux agpgart interface v0.101 (c) Dave Jones
NET: Registered protocol family 17
bttv: driver version 0.9.16 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Host bridge needs ETBF enabled.
bt878: AUDIO driver version 0.0.0 loaded
saa7146: register extension 'dvb'.
saa7146: register extension 'budget dvb'.
saa7146: register extension 'budget_ci dvb'.
saa7146: register extension 'budget_av'.

cx2388x blackbird driver version 0.0.5 loaded
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]: irq mpeg [0x100000] ts_err?*
cx88[0]/2: general errors: 0x00100000
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
or51132: Waiting for firmware upload(dvb-fe-or51132-qam.fw)...
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
cx88[0]/2: cx8802_timeout
cx88[0]/2: cx8802_stop_dma
cx88[0]/2: restarting queue
cx88[0]/2: cx8802_restart_queue
cx88[0]/2: cx8802_restart_queue: queue is empty
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma 752
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [cbcf84a0/0] cx8802_buf_queue - first active
or51132: Version: 10001334-17430000 (133-4-174-3)
or51132: Firmware upload complete.
View user's profile Send private message
PostPosted: Fri Feb 10, 2006 1:10 pm Reply with quote
kmj0577
 
Joined: 03 Jan 2006
Posts: 57




I'd recommend looking at ProjectX. It is capable of cleaning up "most" errors in the video and audio stream, assuming there is a problem with them.

There's also a patch floating around on here to get rid of A52 audio errors in mplayer. It has to do with it trying to skip a header when there is no header (or something like that).
View user's profile Send private message
PostPosted: Wed Feb 15, 2006 12:07 am Reply with quote
bjohnson
 
Joined: 10 Feb 2006
Posts: 3




Everybody and his dog has a projectx. I'm guessing you're talking about
the java version on doom9.net? It took me awhile and several tries to beat
that into submission. For the record, it only runs under java 1.5 now
(contrary to readme file).

Using projectx I was able to salvage some files from the test_dvr dumps.
When I extract and convert the new ac3 to wav, I no longer get errors. Smile

Other channels like SciFi and Discovery Science will be locked on and will
dump data, but I cannot play them nor extract them using projectx. If I
try to watch them with mplayer I get:
"NO VIDEO! NO AUDIO! NO SUBS (yet)!"
"Video stream is mandatory!"
Also fails with raw channel and "-vid X -aid X" options. projectx reports:
"cannot find sequence header"

Verizon "support" tells me that these channels are not encrypted. Why
can't I get anything useful from them?

What about my looping firmware on load? Is that a problem or annoyance?

How do I use the composite and s-video inputs of the card? (usually when
selecting these one would have to set resolution, bit rate, PAL/NTSC,
etc).

Isn't this card supposed to support analog cable and over the air regular
stations too? What are the settings for those?
View user's profile Send private message
PostPosted: Thu Feb 16, 2006 2:26 am Reply with quote
kmj0577
 
Joined: 03 Jan 2006
Posts: 57




bjohnson wrote:
Everybody and his dog has a projectx. I'm guessing you're talking about
the java version on doom9.net? It took me awhile and several tries to beat
that into submission. For the record, it only runs under java 1.5 now
(contrary to readme file).

Using projectx I was able to salvage some files from the test_dvr dumps.
When I extract and convert the new ac3 to wav, I no longer get errors. Smile

Other channels like SciFi and Discovery Science will be locked on and will
dump data, but I cannot play them nor extract them using projectx. If I
try to watch them with mplayer I get:
"NO VIDEO! NO AUDIO! NO SUBS (yet)!"
"Video stream is mandatory!"
Also fails with raw channel and "-vid X -aid X" options. projectx reports:
"cannot find sequence header"

Verizon "support" tells me that these channels are not encrypted. Why
can't I get anything useful from them?

What about my looping firmware on load? Is that a problem or annoyance?

How do I use the composite and s-video inputs of the card? (usually when
selecting these one would have to set resolution, bit rate, PAL/NTSC,
etc).

Isn't this card supposed to support analog cable and over the air regular
stations too? What are the settings for those?

Yep, that would be the ProjectX I was referring to.

Not sure on your Discovery Science and SciFi, but just to make sure, those are digital channels, correct?

The firmware loading isn't looping, those are perfectly normal messages.

You can use an application such as TVTime to watch composite, s-video, and the analog channels on your coax. I'm not sure on switching inputs for recording those since I use a PVR-250 for my analog, but I do know it also creates a /dev/videoX where X is some number and you can use that in conjunction with mencoder to make a file (and even compress it since the data is raw YUV or YV12, can't remember which, but probalby YUV).
View user's profile Send private message
PostPosted: Tue Mar 07, 2006 8:42 pm Reply with quote
bjohnson
 
Joined: 10 Feb 2006
Posts: 3




For the archive:

After spending far too much time with Verizon support, I have discovered that cell phones can knock out channels on conflicting frequencies (850/900MHz, 1.8GHz, 1.9GHz). In "theory", this should not happen as quad shield RG6 shouldn't act like an antenna. In practicality it seems far different. It seems they know about the problem but don't believe it actually exists...until I stepped in and rattled some chains. Still waiting on the official word back from them.

-----

All the channels I'm working with are digital QAM256...except side question mentioned below. For the analog questions I'm interested in dumping some old VHS tapes and maybe doing some recording tests out of the y/c on the cable box. I do have a TBC I use to clean up VHS when watching it on TV that has y/c out.

I did beat support enough to learn that the "content protection flag" is set by the broadcaster and on all those channels (as in not the local broadcast stations) that I cannot get anything useful. Does anyone truly know what this flag means? Is this encryption or just setting an annoyance field? Unfortunately nobody seems to know at Verizon. Sad

TVTime doesn't seem to support recording:
http://tvtime.sourceforge.net/help.html#recording

Does anyone know any way of manually tuning analog air/cable channels and the composite and y/c ins? A straight dump into mencoder would work fine for me right now. When capturing from these, does the HD3000 return mpeg2 or raw video?
View user's profile Send private message
cable problems
PostPosted: Wed Mar 08, 2006 8:18 pm Reply with quote
inkling
 
Joined: 05 Feb 2004
Posts: 342




bjohnson wrote:
I've also tried pchdtvr but it won't fully compile (frustrating).


pchdtvr may not help for cable, however I would like to see your compile errors for pchdtvr. Can you post?

It shouldn't be difficult to get it working on cable but without a program guide, all the new features I put in are unused. I don't have cable, so you'd have to test any changes for me.

A few things that might help:

atscut has a packet dumper. I don't know what it will do for cable but if cable is mostly PAT + PMT + MPEG + A52, it might be possible to use it to count the errors to see if there are any significant numbers to indicate a capture problem, or if it's solely a player issue.

atscut file.ts

will give a summary of what it found.

If you can, use newest v4l-dvb code from linuxtv.org mercurial cvs because the new ioctl is only there so far.

Code:

rc = ioctl( fe_file, FE_SET_FRONTEND_TUNE_MODE, FE_TUNE_MODE_ONESHOT);


This turns off the constant i2c chatter that seems to be for satellite zig-zag tuning only. I'm looking into a way to use it for fault recovery during capture.

Also, if you're getting those start dma messages DURING transfer, something might be acting up. It should only do that at the very start of each capture.

I notice you're loading cx8800 too. Can you try capturing cable DTV without it loaded? I don't know if it would have any interaction, but it might.

The NTSC and svideo inputs should be using the V4L2 driver with the standard V4L2 ioctls. I don't use NTSC so I haven't verified this for myself. It should ouput planar YUV data in one mode, but it may have other modes. You'll need to be able to write at 25 megabytes per second sustained, to keep up. That's why I don't use NTSC.

An MPEG encoder card might be more suited to converting old VHS to an easier to use format.


Good Luck!

-ink
View user's profile Send private message
Curse of the A52 audio errors on QAM256 (among a few others)
  pcHDTV Forum Index -> General pcHDTV topics
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT - 7 Hours  
Page 1 of 1  

  
  
 Post new topic  This topic is locked: you cannot edit posts or make replies.  


Powered by phpBB © 2001-2003 phpBB Group
Theme created by Vjacheslav Trushkin