Thomas,

Well, I guess we are both in the same boat. I tried a lot of things and nothing ever seemed to be able to fix the problem. I guess the real question now is when you run the command to fix the audio does it ever break the audio? If you aren't sure, run the command several times on your 150 while you are recording and see if the audio ever goes bad again. With my card, issuing "ivtvctl -q 0" always fixed the problem. So I can use a script to run the command a few seconds after recording starts. One script suggested in the past is http://www.mythtv.org/wiki/index.php/Hauppauge_PVR-500#No_sound_on_first_recording . I tried it out for my PVR 500, but I didn't like it because it was using nearly 20% CPU on my P3 800. I've attached a program that I wrote for myself that uses less CPU resources (0% for me). Mine reads the MythTV log file waiting for the system to start recording (Consequently it will only fix scheduled recordings and not live tv). When MythTV starts recording on my PVR 500, it will issue the commands to fix the sound within 5 seconds. You will most likely have to modify this script to make it run on your own system. If you would like to use the script and are having trouble figuring out how exactly to modify it, just let me know. Let us know how it goes on fixing your problem.

Jonathan

Doug Butterworth wrote:

I know it sounds silly, but a good 30 second to 1 min power off might help. This has worked wonders for me and others in the past when doing firmware updates. Based on what you typed, it sounds like you just reloaded ivtv. I can't guarantee this will help, but it is a good place to start.


I tried the 30 second powerdown this morning and it didn't help.


#!/usr/bin/perl

#This program should never cause damage to your system. However, in the event 
that it does, I am in no way responsible. Use at your own risk.

close(STDOUT);
$filesize = -s "/var/log/mythtv/mythbackend.log";
write_log("IVTV: Started IVTV Audio Fix Script\n");
$i = 0;
open(FILE, "/var/log/mythtv/mythbackend.log") or die("Could not open log file");
for (;;) 
        {
        for ($curpos = tell(FILE); $_ = <FILE>;$curpos = tell(FILE)) 
                {
                if($i != 0) #Don't parse anything if I've just started
                        {
                        if($_ =~ /^\d+\-\d+\-\d+ \d+\:\d+\:\d+\.\d+ Started 
recording\: .+ on cardid (\d), sourceid 1/)
                                {
                                $cardid = $1;
                                if($cardid == 2)
                                        {
                                        write_log("IVTV: Resetting Audio on 
Card 2\n");
                                        system("/usr/local/bin/ivtvctl -d 
/dev/video1 -q 0");
                                        }
                                elsif($cardid == 3)
                                        {
                                        write_log("IVTV: Resetting Audio on 
Card 3\n");
                                        system("/usr/local/bin/ivtvctl -d 
/dev/video2 -q 0");
                                        }
                                        
                                }
                        }
                }
         sleep(5);
         if($i == 13)
                {
                $nfilesize = -s "/var/log/mythtv/mythbackend.log";
                if($nfilesize < $filesize)
                        {
                        write_log("IVTV Audio Fix Script detected a log 
rotation.\n");
                        $filesize = 0;
                        $curpos = 0;
                        close(FILE);
                        open(FILE,"/var/log/mythtv/mythbackend.log") or 
die("Could Not Reopen Log File");
                        }
                else
                        {
                        $filesize=$nfilesize;
                        }
                $i = 0;
                }
        $i++;
         seek(FILE, $curpos, 0);
         }
close(FILE);
print "I'm not supposed to get here.\n";

sub write_log()
        {
        $message = $_[0];
        ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = localtime(time);
        $year += 1900;
        $mon += 1;
        open(LOGFILE,">>/var/log/mythtv/mythbackend.log");
        print LOGFILE "$year\-$mon\-$mday $hour:$min:$sec $message";
        close(LOGFILE);
        }
_______________________________________________
ivtv-users mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-users

Reply via email to