[mythtv] [PATCH] Remove use of deprecated DVB events.

Stuart Auchterlonie stuarta at squashedfrog.net
Thu Sep 1 12:45:50 UTC 2005


On Thu, Sep 01, 2005 at 02:30:18PM +0200, Kenneth Aafløy wrote:
> 
> Wonder where I got the idea that the status wasn't returned through ioctls
> pointer argument, doh!

Probably the same sleep deprivation that makes me forget to attach
patches....

> 
> Good idea, since the select will poll for events and the events is signaled 
> from dvb_frontend's kernel thread on status changes:
> 
>                         if (fe->ops->read_status)
>                                 fe->ops->read_status(fe, &s);
>                         if (s != fepriv->status) {
>                                 dvb_frontend_add_event(fe, s);
>                                 fepriv->status = s;
>                         }
> 
> I'm confused however, about what the first select+read_status is for,
> since it's not actually doing anything. Was the intention that it
> should have triggered a retune if lock had been lost?
> 
> Tiny problem with this is that as long as you don't empty the event queue,
> the select will return with isset even if it timed out while waiting 
> (dvb_frontend.c:dvb_frontend_poll).

That question is the answer to your previous question.

The theory is that we check to see if there are any events waiting
and if there are we retrieve them BEFORE we tune. I probably should
turn it into a while loop to drain more than one event.

In practice I see that there is already an event there before the
tune every time I change channel. The status returned is always

status=0x1f, Signal,Carrier,FEC Stable,Sync,Lock


Regards,
Stuart


More information about the mythtv-dev mailing list