Eddi wrote: >> Eddi wrote: >>> Hi, >>> >>> I wrote a patch to Steve Toth hvr3000 repository, so my FlyDVB Trio can >>> use multiple frontend. >>> >>> The bus of the two frontend is shared, isn't possible to get access to >>> both frontend simultaneously, so I get an -EBUSY error by trying >>> accessing frontend1 if frontend0 is in use. >>> >>> VDR doesn't support yet the second frontend, and it try to get exclusive >>> access on both frontend on start, so the second frontend is inusabile. >>> >>> Vdr should probe for multiple frontend at start, and access frontend >>> only on channel change. >> Wouldn't it be better to hide this deficiency in the driver? >> Klaus > > Actually it seems that on Hybrid card is and will be quite common that > multiple frontend share a single bus. > > Linuxtv API tell that a driver may offer frontendN nodes > www.linuxtv.org/download/linux-dvb-api-1.0.0.pdf > that vdr don't support > > I think is impossibile, to solve by driver, since switching between frontend > happened by opening the frontend/demux device. > > VDR try access to frontend on start (actually it doesn't start multiple fe > on same adapter, so I solved with symlink), and open all the frontend. > > If open fails it refuse to use the frontend. If open with success, it start > N thread as many as the number of adapter/frontend. > > I don't understand what you mean for deficiency, if you mean the EBUSY, yes > I could remove it, but it doesn't solve since with two tread open I should > get a ping-pong between the two frontend so I can't get any image. > > If you mean for deficiency the two frontend on the same adapter, is > logically correct, and is a deficiency that vdr doesn't supporti t. > > Since I like VDR, I'd like it support this. I've gone through the LinuxDVB API description regarding the frontend again and apparently it is documented that multiple frontends on the same adapter can't be open in read/write mode at the same time (so the "deficiency" is actually on VDR's side ;-). Well, so VDR could open them in read-only mode first and switch one of them to read/write mode shortly whenever it does a tuning operation, and go back to read-only after that. It would also have to switch to read/write shortly whenever it reads a frontend event with ioctl(FE_GET_EVENT). With such modifications it should be possible to make VDR support a multiple frontend adapter. In order to set up the necessary VDR devices, cDvbDevice::Initialize() would also have to be enhanced to probe for multiple frontends on the same adapter. Klaus