[mythtv] Unable to change channels
Michael Kedl
mythtv-dev@snowman.net
30 Dec 2002 12:44:18 -0500
Do you have "Correct" full duplex sound working?
The same thing happened to me until I switch to ALSA.
Mike
On Mon, 2002-12-30 at 12:32, Matthew Burnham wrote:
> This one's been bugging me since I started playing with MythTV, but
> being as I didn't get a watchable picture anyway, I didn't pursue it
> far. I've now got a reasonable picture by running in a window rather
> than fullscreen (it doesn't jump and stutter now), but am unable to
> change channel or card input - any presses of up, down or 'c' seem to
> 'lock up' mythtv.
>
> I tried to trace the problem by seeing what happens when I try to change
> channel, and it seems it gets stuck in:
> while (!activenvp->GetPause())
>
> I'm planning to take a look inside GetPause(), but wondered if anyone
> else had come across this problem before? Also, what unit is
> usleep(300000) in? It seems awfully big, unless its microseconds...
>
> -- log with tv_play.cpp modified as below --
>
> mbb@danew:~/cvs/MC$ mythtv
> connecting to backend server: localhost:6543
> Changing from None to WatchingLiveTV
> player: Can't open audio device: /dev/dsp
> open audio:: Device or resource busy
> Over/underscanning. V: 0.000000, H: 0.000000, XOff: 0, YOff: 0
> Using XV port 46
> TV::ChangeChannel
> activenvp:1087791112 paused:1
> activenvp->Pause()
> mythtv: Fatal IO error: client killed
>
> -- end log --
>
> -- tv_play.cpp modified ChangeChannel function --
>
> void TV::ChangeChannel(bool up)
> {
> printf("TV::ChangeChannel\n");
> printf("activenvp:%i paused:%i\n", activenvp, paused);
> if (activenvp == nvp)
> {
> if (paused)
> osd->EndPause();
> paused = false;
> }
>
> printf("activenvp->Pause()\n");
> activenvp->Pause();
> while (!activenvp->GetPause())
> usleep(5);
> printf("got pause\n");
>
> printf("activerecorder/rbuffer...\n");
> activerecorder->Pause();
> activerbuffer->Reset();
> activerecorder->ChangeChannel(up);
> printf("done\n");
>
> activenvp->ResetPlaying();
> while (!activenvp->ResetYet())
> usleep(5);
>
> printf("sleep(300000)...\n");
> usleep(300000);
> printf("done\n");
>
> if (activenvp == nvp)
> UpdateOSD();
>
> activenvp->Unpause();
>
> channelqueued = false;
> channelKeys[0] = channelKeys[1] = channelKeys[2] = ' ';
> channelkeysstored = 0;
> printf("TV::ChangeChannel end\n");
> }
>
> -- end log --
>
> --
> Mat Burnham
>
>
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev@snowman.net
> http://www.snowman.net/mailman/listinfo/mythtv-dev
>