Can you check if the video application you are using is setting the non-
blocking flag on the file-handle?
flag = 1;
ret = fcntl(f, O_NONBLOCK, &flag);
That will make the FE_GET_EVENT return immediately.
i verified this and i'm pretty sure O_NONBLOCK is set.
I've added this piece of code right before the FE_GET_EVENT ioctl:
int flags = fcntl(fd_frontend, F_GETFL, 0);
if (flags && O_NONBLOCK)
esyslog("INFO: fd_frontend O_NONBLOCK");
and the message was displayed in the log.
Here are the relevant code parts where the fd is opened:
int cDvbDevice::DvbOpen(const char *Name, int Adapter, int Frontend, int Mode, bool ReportError)
cString FileName = DvbName(Name, Adapter, Frontend);
int fd = open(FileName, Mode);
if (fd < 0 && ReportError)