Hi,

after some time of thinking about what I want for Freevo and how some
people like to use vdr inside Freevo, I have the following proposal
for the new recordserver. Some stuff is already done, other code is in
my head and in cvs next weekend.

First, I want to use the new recordserver even when you use
vdr. Reasons for this are that there is maybe a card vdr doesn't know
about (analog) and the Freevo recordserver knows more about
priorities. So this is what the recordserver will do:

Check all recordings for conflicts. A conflict is a list of recordings
with overlapping time, even when only the padding overlapps. E.g.: a
overlapps with b, b with c. d has no overlapping and e overlaps with
f. So d will get the best recorder possible, no conflict here. And the
other 5 will be in two lists of conflicts: [ [ a, b, c ], [ e, f] ]
and they will be solved. When solving a conflict, overlapping times
result in 'not possible', overlapping padding times are 'possible, but
not so good'. The recordserver will try all combinations how to record
the conflicts with all possible devices, including a fake device
'null' for drop. After that, we have a perfect schedule (as perfect as
the 'rate' function is). 

For that, each plugin needs to provide a list what it can record. This
list is a list of devices, the ratings and the listing. E.g. you have
a dvb-s card with the programs a, b, c, d, e, f and a dvb-t card with
a, b, c, d but it is possible to record a/b and c/d at the same time,
this function will return:

[ ( 'dvb0', 20, ( [ a ], [ b ], [ c ], [ d ], [ e ], [ f ] ) ),
  ( 'dvb1', 15, ( [ a, b ], [ c, d ] ) ) ]

You see, dvb1 (dvb-t) has a lower rating because the quality is not so
good as dvb-s. If someone wants to create a vdr plugin, I guess you
can get that informations from a channels.conf file. 

After the recordserver found the best way to schedule the recordings,
he will give the list of recordings to each plugin. We will do it
right now, not when the time comes. The plugin itself has to make sure
it will start the recording when needed. This is for vdr because you
want vdr to handle the scheduling. So maybe the vdr plugin will get a
list of recordings when the first one starts two days from now. At
this point, the recordserver itself will do nothing anymore, it's up
the plugins. Everytime something changes, the recordserver will
recalculate everything and update the plugins schedule. 

My question at this point to the vdr people: does this work for you?
Nad can you implement it? It would be cool to have vdr integration in
Freevo 2.0.

Now to live tv. If you start live tv, the recordserver _must_ know
about this. If you have two dvb-t cards and use one for live tv, the
recordserver has to know that one card doesn't work anymore. For dvb
or ivtv, maybe the best solution would be to record the live tv and
watch it with a player. One file or a ringbuffer, both should be
possible. For the vdr plugin, vdr will solve this automaticly. I guess
only for analog tv this doesn't work. But I need more ideas how live
tv fits in the recording context. 


Comments please.



Dischi

-- 
I'm going to live forever, or die trying!
                -- Spider Robinson

Attachment: pgpRXK6WQS3X3.pgp
Description: PGP signature

Reply via email to