[mythtv] Random blockiness that probably isn't CPU or PCI bus
bandwidth-related
Eric Anderson
rico99 at sbcglobal.net
Tue Jan 18 23:25:38 EST 2005
Interesting...
Here is perhaps some more evidence to support the theory that the
problem is in
the driver. If I dump out the timestamps, I see this for the first part
of the recording
(before the corruption begins):
mysql> select * from recordedmarkup where chanid=2007 and starttime
like "%23:35%";
+--------+---------------------+--------+------------+------+
| chanid | starttime | mark | offset | type |
+--------+---------------------+--------+------------+------+
[...]
| 2007 | 2005-01-15 23:35:00 | 30029 | 790812412 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30059 | 791519104 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30089 | 792314344 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30119 | 793163352 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30149 | 794096960 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30179 | 795012896 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30209 | 795780124 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30239 | 796584012 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30269 | 797297096 | 9 |
| 2007 | 2005-01-15 23:35:00 | 30299 | 798000028 | 9 |
[...]
So this part of the file is clean, and you'll notice how the frame
numbers (column named
"mark") are nicely spaced -- 30 frames per GOP. So that looks good. (My
file is clean until
about +25:30 in, which corresponds roughly to frame #45900.) Now, if I
look at the record
markup later on, I see:
| 2007 | 2005-01-15 23:35:00 | 47900 | 1232938968 | 9 |
| 2007 | 2005-01-15 23:35:00 | 47933 | 1233434160 | 9 |
| 2007 | 2005-01-15 23:35:00 | 47941 | 1233582868 | 9 |
| 2007 | 2005-01-15 23:35:00 | 47972 | 1234302908 | 9 |
| 2007 | 2005-01-15 23:35:00 | 47998 | 1234903756 | 9 |
| 2007 | 2005-01-15 23:35:00 | 48007 | 1235063368 | 9 |
| 2007 | 2005-01-15 23:35:00 | 48038 | 1235807660 | 9 |
Notice how the number of frames between GOP's is now pretty random!! By
the way,
I verified some of the file offsets for the GOP frames, and the values
in the SQL
database match the offsets of the GOP's I find in the stream file, so
that's sensible.
Conclusion: The corruption of the data stream is happening *before* we
call
FindKeyFrames(). Which further supports the theory that the problem is
in either
the ringbuffer or the driver.
-Eric
More information about the mythtv-dev
mailing list