R: [vdr] VDR & Multiple frontends
Klaus.Schmidinger at cadsoft.de
Sun Dec 10 11:14:20 CET 2006
>> Eddi wrote:
>>> 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?
> 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
> 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.
More information about the vdr