error changing channel on PVR350

Description

if i change channel then i get an black screen and return to the menu.
if i change to a channel on another card (in this case a DVB-S card) and when that works, change to a different channel on the pvr350, that also works.

so it is only changing from one channel to another on the pvr350 that does not work.

This issue is also affecting me since upgrading to 0.25 on a Mythbuntu 11.10 system. On my system I am using a total of 3 PVR-150 tuner cards with 2 being connected to analog cable and 1 being connected to a Dish Network receiver. Everything functioned perfectly on 0.24 (I was not running 0.24 fixes) but now everything works but I exhibit the same results with not being able to change channels directly from one dish network channel to another (ie. on the same tuner). I can, however, switch to a channel on an analog cable tuner and then switch back with no issues. The error that I get on the front end varies between "Error opening jump program file" or an error related to waiting for video buffers. I have done a lot of googling on this issue and it seems that there were reports of this error back in 0.22 and 0.23 but not in 0.24 until 0.24-fixes came out. I found that in 0.24 the ringbuffer time was increased to 10 seconds because Several tickets recently have suggested the default 2 second timeout is potentially too short for certain tuner types and configurations and leads to unnecessary playback failures. This was then changed back for 0.25 and it appears this was something that was backported to 0.24-fixes.

Additional information on my system: I am running a backend server with 2 front ends that both exhibit the same issues. The backend machine is using multiple arrays on a 3ware 9500 PCI card and is a dual AMD Opteron 246 system with 8GB of RAM (running 32bit). Both front end machines are connected over a 10/100 network.

Since upgrading to 0.25 beta the logs that I am looking at are slightly different but the same exact behavior is being exhibited. I now have a HDHR Prime tuner running on this system and it has no issues at all and can switch between channels on that device as much as desired. On my Dish network source using the PVR150 I have to first switch to a channel on another source and then switch back or my system exhibits this behavior. I am attaching a new log file that may (or may not) provide additional information.

Changed 3 years ago by Bob K Mertz <online@…>

I'm seeing the same issue. I notice if I try to change the channel through the guide, I get an error that says "mythTV is already using all available inputs". If I try changing the channel by the remote, it attempts to change the channel and then I get the poll errors that the other people have posted then I get a black screen then dumped back to the FE with video buffer errors.

Yeah this tells me the driver just isn't sending data but we still have a valid file descriptor.

Mauro explained to me some of the limitations of the streaming implementation for several of the V4L cards. It basically comes down to needing to close the data reading file descriptor while issuing the streamoff/streamon to the device and then reopening it to get the data. I've implemented a proof of concept patch for this in #10519. That patch didn't work for the reporter on that ticket but may work for you. (nocarrier1969 in IRC did some testing last night that looked positive.)

It's a PoC patch which may have some unrelated problems so try it a few times if the first attempt fails.

Simon, the patch is not the same as the suggestion by the ticket submitter. That suggestion merely disables streaming API calls for the his particular device, something we were already doing for ivtv. But the ivtv driver has actually supported streaming for some time, just not in a way that is compatible with how MythTV uses the device. The patch attempts to use the streaming API in an ivtv compatible way.

This fixes the ticket except the part of changing the channels from the program guide as I get an error saying the device is busy. I can change the channel by entering the channel number or by going from one tuner than back through the guide.

The drivers for some V4L devices require you to explicitly stop and restart streaming when sending certain ioctl's to the device. We already pause and unpause the recorder when issuing these commands so this adds a close(readfd) to the code that is run on pause and reopens readfd on the unpause code. This also means the DeviceReadBuffer? needs to be reset with the new readfd, so we do that as well.

I pulled the latest from git and confirmed the changes were made per the last post in this ticket. I'm still seeing an issue of I can change the channel without issue by entering the number in my remote but not through the program guide as I get tuner unavailable when I try to change the channel.

Add Comment

This ticket has been modified since you started editing. You should review the
other modifications which have been appended above,
and any conflicts shown in the preview below.
You can nevertheless proceed and submit your changes if you wish so.