[mythtv] DVB fixes

Kenneth Aafløy ke-aa at frisurf.no
Mon Dec 22 19:08:46 EST 2003


> I've been playing with myth and the cle266 hwslice driver and 
> have tracked down a problem thats been causing intermittent
> crashes for me when there are errors in the mpeg stream.
[..SNIP..]
> In this example Via_decode_slice isn't being called for 
> several slices from 6 to 35. But when MPEGSliceReceiveData
> is called it is expecting 36 slices and so barfs when it hits 7.
> 
> I've fixed this in my code temporarily, by walking through 
> the slice list in VIA_decode_slice and counting how many
> slices there actually are, and passing this value through
> to slicereceivedata.

Are you saying that VIA_decode_slice could receive multiple
slices in the same data buffer?

Or that you are just counting the slices yourself, not
relying on the value provided?

> However, I think this is just a sticking plaster on an 
> underlying problem... 
> and my knowledge of the myth code isn't that good yet. So I 
> wondered if anyone had any suggestions where I should be
> looking for why these slices are being skipped. (and why
> the call is being made for slice 36 rather than just 
> stopping at 7)

I guess that libav(codec|frame) is only passing along what
ever it can figure out from the stream it receives. Looking
at mpeg12.c after the call to VIA_decode_slice, and it looks
like it does some checking for invalid slice order. Based on
this I would assume that the responsibility for handling
these cases are put upon VIA_decode_slice.

Kenneth



More information about the mythtv-dev mailing list