[mythtv] DVD read error recovery

Robert Merkel robert.merkel at benambra.org
Sun Mar 16 11:15:02 UTC 2008

Hi there,

I've been using MythTV for a couple of weeks now; it's great, but 
there's one rather annoying problem - if there's the tiniest scratch
on a DVD, MythTV simply bails out on playing the disc.

As I understand from reading the mailing list, the issue is that
there is no kind of error recovery code in the internal player to 
cope with such errors.

Given that the DTV decoder is also decoding MPEG-2, and copes with
missing data without crashing, I would like to add some kind of 
error tolerance/recovery for DVD playing.  

However, winding my way through the MythTV code has been a challenge, to say 
the least.  It seems that on a DVD read error, a -1 return value is passed all 
the way up through to RingBuffer::ReadAheadThread (in RingBuffer.cpp), where 
numfailures is incremented if a file read error occurs.  But I'm still not 
seeing how this results in the internal player terminating itself.

Sorry if I'm way off base here; I'm obviously new to the MythTV codebase, 
new to threaded programming, and my primary language expertise is C rather
than C++.  But I really would appreciate some help in finding the relevant 
spot so I can best see how to add some error handling (which shouldn't be 
all that hard, livetv copes with missing data, so it should be possible to 
make the DVD player do something similar...)

TIA for your assistance.


                                           Robert Merkel
                                     robert.merkel at benambra.org

On Wikipedia, there is a giant conspiracy attempting to have articles agree
with reality.
 -- "Andreas", http://www.badastronomy.com/phpBB/viewtopic.php?p=245449

More information about the mythtv-dev mailing list