[MPlayer-dvb] Using mplayer as DVB watcher

Alfredo Pironti alfredo.pironti at gmail.com
Wed Feb 13 00:29:19 CET 2008


Hi all,
my ol' good TV broke some weeks ago, so I decided that I shall use my 
DVB(-S) PCI card that I installed two years ago (and never used until now).

I'm looking for some software that is as easy as using my old TV.

I tried different softwares for doing that. Freevo and VDR are simply a 
burden to get configured. Moreover they are over-featured wrt what I'm 
looking for. MythTV could be OK, but it does not support channel 
grouping nor sorting, and it becomes unusable, since DVB-S has 1500+ 
free-to-air channels. Implementing channel grouping in MythTV is being 
carried out, but I'm still too fascinated from the simplicity of

mplayer dvb://MyChannel

instead of having a backend MythTV process running as root, and running 
a frontend on it...

However, in current state, for my purpouse, mplayer is still not usable 
as a TV drop-in replacement. But I think few and not-intrusive effort is 
required to get that.

Here I propose some features I'm interested in, and possible 
implementation sketches to get them. I would really like to get some 
feedback from you. Once we have found together a reasonable solution, 
I'm quite motivated in implementing it, provided there's some hope that 
the patch get eventually included in mainstream, so I don't have to 
repatch and recompile mplayer each time it is updated ;-)

Feature:
- have 9 (or 99, or 999...) favorite channels that I directly reach by 
typing their associated number on my remote (like you would do on your TV).

Solution:
- Create a lircrc-dvb file associating each key (sequence) of the remote 
to a particular "set_dvb_channel" command. Then launch mplayer pointing 
it to the right lircrc-dvb file.

Feature:
- Hierarchical grouping of channels
Solution:
- Create an OSD menu that read an xml file (chan_group.xml) containing 
groups hierarchy, and channels belonging to groups. Then the user browse 
this menu and select a channel. (pressing OK on a group lists all 
channels belonging to that group and to all subgroups; pressing RIGHT on 
a group only lists all its subgroups)

In order to populate the chan_group.xml file, an external ad hoc tool 
could be used (I could write it). It is not viable to populate this list 
from scratch within mplayer, by using a remote. Just putting 300 of 
1500+ channels into groups requires a mouse/keyboard/monitor and 
dedicated software.

If the OSD menu only reads the chan_group.xml file and then browse it, 
then it is a menu like all other menus. In particular, its non volatile 
state is held in the chan_group.xml file, which is read-only.

However, once you have populated your chan_group file with the ad hoc 
tool, immagine this use case:
I seat on my armchair, zapping ungrouped channels, and I find a channel 
I really want to put in a group. I don't want to stand up from the 
armchair to
- get to my desk
- close mplayer
- open the ad hoc program
- add the interesting channel to the desired group
- restarting mplayer
- coming back to my armchair

For single channels, it should be possible to add them to groups within 
mplayer, so I don't have to stand up from my armchair. This means that 
the mplayer OSD menu should change its non volatile state, by upgrading 
the chan_group.xml file. A "write-through" approach (i.e. write to the 
file each time user modifies an entry) is not viable, it requires too 
many resources uselessly. So we should use a "write-back" approach (i.e. 
store all channel grouping changes in memory during execution, and write 
the file only when mplayer is going to be closed - if it does not crash 
:-)). This second approach is a bit more intrusive, because we should 
add a function pointer like

void (*on_exit) (void *);

to the "menu_info_t" struct. And this should be applied to all existing 
menus (not much effort indeed - we can set it to NULL for menus not 
using this function). Finally, the mplayer code should invoke this 
callback on shutdown (again, not so much effort).

Oh no, I said too much (I haven't said it enough).

What do you think about this?

Cheers,
Alfredo



More information about the MPlayer-dvb mailing list