Please sign in to comment.
Adds recording quality tracking to DTV recorders.
This ads a recording gap list to RecorderBase to track gaps in the recording. DTVRecorder updates this with any gaps in video dts values over one second in duration or if it can't extract the dts then gap in pts values then a gap is two seconds or greater in duration. In addition we count transport stream continuity errors and if these are greater than 1% or 0.1% we apply a 40% and 20% derating on the quality metric respectively. The NuppelVideoRecorder could update the recording gap list, but would need to use some other means to detect and measure the length of gaps. For now we just assume there are no gaps in these recordings. Once the recording completes we look at the gaps and score them, giving higher priority to gaps near the start and end of the recording, on the assumption that these are more information rich, i.e. "Who shot JR?" If the score doesn't meet a quality threshold the recording is flagged as a damaged recording and MythTV will try to re-record it when it re-airs. Note: There are a few thresholds that may need additional tuning, only one of which is DB tunable, "MinimumRecordingQuality". I'd appreciate "mythbackend -v record" logs if you see any good recordings marked as bad or bad recordings marked as good. So I can suggest new values for this threshold or try other tweaks to the grading algorithm.
- Loading branch information
Showing with 516 additions and 100 deletions.
- +2 −0 mythtv/libs/libmythtv/NuppelVideoRecorder.cpp
- +1 −6 mythtv/libs/libmythtv/asirecorder.cpp
- +1 −5 mythtv/libs/libmythtv/cetonrecorder.cpp
- +162 −13 mythtv/libs/libmythtv/dtvrecorder.cpp
- +12 −3 mythtv/libs/libmythtv/dtvrecorder.h
- +1 −5 mythtv/libs/libmythtv/dvbrecorder.cpp
- +3 −3 mythtv/libs/libmythtv/firewirerecorder.cpp
- +1 −5 mythtv/libs/libmythtv/hdhrrecorder.cpp
- +2 −2 mythtv/libs/libmythtv/importrecorder.cpp
- +2 −2 mythtv/libs/libmythtv/libmythtv.pro
- +1 −8 mythtv/libs/libmythtv/mpegrecorder.cpp
- +23 −5 mythtv/libs/libmythtv/recorderbase.cpp
- +16 −0 mythtv/libs/libmythtv/recorderbase.h
- +191 −0 mythtv/libs/libmythtv/recordingquality.cpp
- +52 −0 mythtv/libs/libmythtv/recordingquality.h
- +42 −40 mythtv/libs/libmythtv/tv_rec.cpp
- +4 −3 mythtv/libs/libmythtv/tv_rec.h
Oops, something went wrong.