[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