[mythtv] Two scheduler queries when "Expiring Program", and two "Finished recording" messages
Chris Pinkham
cpinkham at bc2va.org
Sat Mar 3 08:54:11 UTC 2007
* On Sat Mar 03, 2007 at 12:02:06AM -0800, Bruce Markey wrote:
> The finished recording message appear twice but I think that
> is just the result of two verbose messages being hit along
> the way. I don't think it duplicates post recording tasks.
I knew I remembered tracking this down once, so I took another
quick look at the code and found out where it is happening.
Here's the relevant logs from mythbackend after I inserted a
few debug statements where I thought the two calls to
TVRec::FinishedRecording() were occurring:
2007-03-03 03:32:00.771 Calling FinishedRecording in TVRec::TuningShutdowns
2007-03-03 03:32:00.779 Finished recording Home Improvement "The Flirting Game": channel 1002
2007-03-03 03:32:00.780 Called FinishedRecording in TVRec::TuningShutdowns
2007-03-03 03:32:01.170 Calling FinishedRecording in TVRec::TeardownRecorder
2007-03-03 03:32:01.177 Finished recording Home Improvement "The Flirting Game": channel 1002
2007-03-03 03:32:01.177 Called FinishedRecording in TVRec::TeardownRecorder
In TVRec::HandleStateChange we have the following code:
else if (TRANSITION(kState_RecordingOnly, kState_None))
{
tuningRequests.enqueue(
TuningRequest(kFlagCloseRec|kFlagKillRingBuffer));
SET_NEXT();
}
So we queue up a kFlagCloseRec request.
In TVRec::TuningShutdowns, we have this:
if (request.flags & kFlagCloseRec)
FinishedRecording(lastTuningRequest.program);
and in TVRec::TeardownRecorder we have this:
if (curRecording)
{
...
FinishedRecording(curRecording);
...
}
So, we do call TVRec::FinishedRecording twice when a recording ends,
but at 3:50AM it's not the best time for me to be debugging this. :)
TVRec::FinishedRecording() calls ProgramInfo::FinishedRecording()
which in turn calls ScheduledRecording::doneRecording() which is
what prints out the "Finished recording" message.
--
Chris
More information about the mythtv-dev
mailing list