Jonathan Black wrote:
> John,
> 
> Yes, ivtvctl -q 0 fixes the problem everytime. But it does cause the 
> audio to skip for a second, so the cron job wouldn't go over well.
> 
> I would like to see your script. I will most likely have to edit it some 
> because I plan on having an option for my parents to record shows 
> through the RCA as well if I need. I'll figure it out though. Your 
> script should help me figure out where I have to edit code at and such.
> 
> Thanks. I appreciate it.
>
> Jonathan
> 

Jonathan,

OK, I'm really NOT a programmer, so forgive the hackiness of this. 
Sounds like you and I have pretty much the same symptoms, so maybe this 
will help.

Basically, what I did was to turn on all the debug messages and used 
that to deduce what code was running whenever a recording began.  I then 
inserted a single line of code that invokes a shell script at the 
beginning of that function.

Below is the segment of the program file tv_rec.cpp that includes the 
three lines I added.  In my case, with mythtv 0.19-fixes from about a 
month ago, this begins on line 609 of that file.

My changes begin and end with a line like VERBOSE(VB_RECORD, "JBJBJB:...)

Following the tv_rec.cpp changes is the shell script I run.  Most of the 
stuff in the shell script is unnecessary -- it's just left over from 
when I was doing some testing to verify that I was running the right 
script at the right time.  Also, I'm not sure whether the sleep 15 is 
necessary, but I wanted to make sure the recording had actually begun. 
In my case, I always start recording 90 seconds early anyway, so this is 
not a problem.

========= tv_rec.cpp segment ===========

void TVRec::StartedRecording(ProgramInfo *curRec)
{
     if (!curRec)
         return;

     VERBOSE(VB_RECORD, "JBJBJB: Begin Record Hack");
     system("sh /space1/scripts/mythtv/prerecord &");
     VERBOSE(VB_RECORD, "JBJBJB: End Record Hack");

     curRec->StartedRecording(rbFilePrefix, rbFileExt);
     VERBOSE(VB_RECORD, LOC + "StartedRecording("<<curRec<<") fn("
             <<curRec->GetFileName()<<")");

======== shell script (e.g., /space1/scripts/mythtv/prerecord, in my 
case) =========

#!/bin/sh
echo "Begin prerecord script (v0.2)..." >> /var/log/mythtv/prerecord.log
/bin/date >> /var/log/mythtv/prerecord.log
sleep 15
/usr/local/bin/ivtvctl --device=/dev/video0 -q0 >> 
/var/log/mythtv/prerecord.log
echo "End prerecord script" >> /var/log/mythtv/prerecord.log
/bin/date >> /var/log/mythtv/prerecord.log

Let me know if this works for you.  I'll try to answer any questions, 
but my C++, Mythtv source, and ivtv knowledge are still pretty basic. 
The good news is that this seems to work for me.  I've had 3 or 4 cases 
where I've had a recording start out with tinny audio, then, about 15 
seconds into it, the ivtvctl script kicks in and it magically fixes the 
problem.

Cheers,
john

_______________________________________________
ivtv-users mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-users

Reply via email to