[mythtv-users] nova-t problems solved
Steve Hayles
steve at diverseyachts.com
Fri Jan 2 07:09:51 EST 2004
This is my first post here so I must firstly (as a very bad windows
programmer and user) congratulate the core MythTv developers team. Its
a fantastic suite of software and for me an awesome examle of the
possibilities and well handled open source projects. LInux was new to
me a few weeks ago but I have thoroughly enjoyed learning about it and I
can see just how powerful it can be.
I have been reading for a very long time the various posts and finally
deciced to build something for use at home. I have a Tranquil PC
barebones system which is not too expensive and has the advantage of
having no system fan. I was going to run diskless using Minimyth but I
now like the concept of a standalone box for my first unit so I have a
very quiet Seagat Barrcacuda and I am happy to say that the system has
passed the ultimate test and the missus has cleared it for use in the
living room.
I am sure that a great many users have already solved these problems but
this may prove useful to some. I wanted to use a DVB card as the native
MPEG 2 stream combined with the CLE266 decoder chip on the motherboard,
at least on paper was going to allow me a practically silent unit. Its
taken a couple of weeks to really understand how Myth is put togther
but I did manage to get it running very quickly. The drivers for the
DVB card were not easy to get running under RH9 (which I went for
becasue of the binary drivers for the Mpeg chip, I know the hardcore
team will probably think this the easy route but I do have a working
system which I am chuffed to bits with).
I then had a system that was functioning but prone to lots of problems
with the Transport Stream from the Nova-T card. The first big
improvement came when I applied the patch below to the DVB drivers
(which were the DVB CVS version as I was having loads of problem with
the Kernel version). This cut the number of "TRANSPORT STREAM
CONTINUITY" errors dramatically. After an awful lot of messing with
different BIOS settings and reading a lot of posts on the LinuxTV site
about the problems with DMA transfers from this 'budget card' I still
had a fantastic system that was unfortunately prone to regular crashes.
It was obvious from the very technically minded people on this and the
LinuxTV mailing lists that tweaking the PCI settings as much as possible
would help the situation. LInux being what it is and a quick bit of
reading on the SETPCI command and I changed the latency-timer up to a
value of 128 and I am very happy to report that the system has been on
overnight watching LIVE TV for about 16 hours without a single
'TRANSPORT CONTINUITY' error.
I am running the backend at higher priority (nice -15 mythbackend) which
means running as root but I will try this as a normal user with the
priority hike today but I have a very good feeling that this is going to
work very well.
The bottom line is that I have a system that can watch LIVE TV with a
CPU useage of under 35% and the hardware is literally silent from more
than a couple o feet away.
The setting I am currently using for the Latency_timer is 128 and it can
be changed with the SETPCI command very easily (remember to convert the
value to HEX ). I know nothing about this really so please don't blame
me if you break your set-up. I know that many will have solved this, as
I have said, but if the info can save one person from the few weeks of
late nights I have had playing with this then I shall be happy.
Any more questions on the set-up please feel free to ask.
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.556 / Virus Database: 348 - Release Date: 26/12/2003
-------------- next part --------------
diff -Nurw DVB/driver/av7110/av7110.c DVB-cvs/driver/av7110/av7110.c
--- DVB/driver/av7110/av7110.c Thu Aug 28 14:05:53 2003
+++ DVB-cvs/driver/av7110/av7110.c Sat Aug 30 13:28:27 2003
@@ -919,6 +919,19 @@
u32 dmapos;
dmapos=saa7146_read(av7110->saa_mem, PCI_VDP3);
+
+ if ((dmapos == 0) || (dmapos == TS_BUFLEN / 2)) {
+ /* The DMA Pointer is unreliable at 0% and 50% of buffer and
+ * frequently gets the two positions confused, we make a
+ * guess of the likely value based on the last known value
+ */
+ if (av7110->ttbp < TS_BUFLEN/2) {
+ dmapos = TS_BUFLEN/2;
+ } else {
+ dmapos = 0;
+ }
+ }
+
dmapos-=(dmapos%188);
if (dmapos >= TS_BUFLEN)
More information about the mythtv-users
mailing list