Am 14.12.2010 21:20, schrieb Luca Olivetti:
> Right now I have a recording going on. If I press the "up" channel past
> the last channel on the same transponder, vdr is unresponsive for ~30
> seconds.
> I guess that sqlite, with a well formulated query and the right indexes,
> would take a fraction of a second to realize that there are no more
> channels in the same transponder.

Actually, what VDR here does is to tune to each and every channel in
your channels.conf after the current, until there's a channel that
successfully tunes. Doing an additional sql query for each and every
channel in your channels.conf wouldn't improve that, I guess.

Two things make this a slow thing: First, the channel list is a linked
list, and if you switch from 1000 to 1001, VDR runs through the list
starting at 1 until 1001. If 1001 doesn't tune, VDR runs again from 1 to
1002. A C++ map would speed things up a lot, a persistent channel
iterator even more.

The second thing is the tuning. "Get next channel on this transponder"
sounds simple, but actually deciding whether a channel is tuneable
involves 17 different rules that get checked against each device, plus
probing the CAM whether the channel can be decoded by the CAM. I think
that part is even slower than the whole channel list.

But after all, there are more important things that need work, than
speeding up such special cases.



vdr mailing list

Reply via email to