Re: [vdrpylib-devel] pending patches?
Status: Alpha
Brought to you by:
rshortt
From: Dominic M. <do...@su...> - 2005-01-06 20:05:37
|
On Thu, 6 Jan 2005, Rob Shortt wrote: > Ok, I don't think this lib has ever been developed or tested with DVB-T > and I was afraid this would be a problem. Can you followup with a few > examples of the DVB-T channel ids? I will also look at the man page for > them. Do you know of any other differences between DVB S/C/T as far as > the VDR config is concerned? I will update the code for this asap. Sure, here's the entries from epg.data: C T-9018-4100-4351 BBC THREE;BBC C T-9018-20480-22272 UKTV History;UKTV C C-0-109-62007 UKTV Gold C C-0-111-62009 UKTV G2 [there's some analog TV ones in there as well just to be comprehensive, they're mapped through as Cable channels], the corresponding channels.conf entries are: BBC THREE;BBC:505833330:I0C34D34M16B8T2G32Y0:T:27500:0:0:0:0:4351:9018:4100:0 UKTV History;UKTV:578166670:I0C34D34M16B8T2G32Y0:T:27500:401:402=eng,404=eng:0:0:22272:9018:20480:0 UKTV Gold:109:C0:C:0:100:101:0:A0:62007:0:0:0 UKTV G2:111:C0:C:0:100:101:0:A0:62009:0:0:0 The following bit of code generates the correct id for use with streamdev from data in channels.conf (sid is the appropriate channel id): def channel_parse(string,num): tokens = string.strip().split(':') namtoks = tokens[0].strip().split(';') name = namtoks[0] freq = int(tokens[1]) source = tokens[3] vpid = tokens[5] apids = tokens[6] ca = tokens[8] id = int(tokens[9]) nid = int(tokens[10]) tid = int(tokens[11]) radio = 0 if vpid == '0' or vpid == '1': radio = 1 if apids == '0': radio = 2 if source == 'T': freq = freq / 1000 if nid == 0: m = map(str,[source, nid, freq, id]) sid = '-'.join(m) else: m = map(str,[source, nid, tid, id ]) sid = '-'.join(m) return ( num, name, sid, ca,radio) > I've read up on vdr-mediamvp a few times as I would like to get an MVP > myself - cool project. BTW how much python does it use? Python is used to generate the ui and handle the user interaction. Each connected MVP causes a new interpreter to be spawned in an individual thread. The main thread consists of an event driven C library handling the network connections. All that's running on the MVP is a dumb client displaying a pushed screen and pushed media stream. The MVP has only got 16MB of memory so I'd like to keep most of that for buffering the streams rather than using it up generating the ui etc. > Perhaps by only reading small parts of the EPG as you need it would work > better, not that vdrpylib supports that atm. You could also acheive > this by writing vdrpylib-aware code on the server side with a custom > client-server interface for vdr-mediamvp (with or without pyepg) to > request EPG data in small chunks. Either way you'll have a redundant > pool of data but its best to have only two, both on the server, I think. That's where my original question comes from, there's no chance of sending the raw epg data to the MVP, but keeping a separate copy for each thread seems a little ott as well. I'm favouring the querying a database approach, I just need to do a bit of investigation into a pyepg based solution. > Maybe Vlad (Sebastien Lucas) can add his 2 cents, I think he's doing > something similar for the xbox (XBMC?). That would be good to hear how someone else is tackling the problem. cheers, d. |