On 25 Jan 2005, at 2:15 PM, George Nassas wrote:
Getting back to the topic, has there been an analysis of what parts of the myth backend are incompatible with osx?
This can be split into two issues: what the backend does, and when you need a backend. I'll address these as best I can, but I'm not really an expert on either topic; I apologize in advance for any misinformation I inadvertently dispense.
The backend handles TV program scheduling, reporting on info about recorded and upcoming shows, and talking to the TV tuner card. It also streams video to remote frontends (I think local or NFS-shared frontends read files directly, at least in the "watch recordings" case) and coordinates with slave backends running more tuner cards. It doesn't stand between the frontend and the database, and it doesn't come into play with any plugins, which are either frontend-only or need separate daemons.
I haven't looked at the backend code much, but from what I've heard it's pretty tied to the V4L2 (Video for Linux 2) API, and would be difficult to port to other systems lacking that API. I don't know how true that is, or if it would be possible to write a compatibility layer to communicate with drivers like the ones at http://www.defyne.org/dvb/driver.html.
The frontend always needs a MySQL database, as all of the preferences (except those used to find the database) are stored there. It only talks to the backend when it needs TV information, basically when you enter one of the TV menu options. It can populate an empty database with all of the necessary table information. I think all of the preferences, including the TV ones, can be examined or changed without talking to the backend (I could be wrong on this point). As Donavan mentioned, you could remove the TV menu options from the frontend (all done in XML, no coding required) and have a frontend that's only dependent on MySQL.
I haven't looked at the plugins much, but most of them seem to reside solely on the frontend and use the database for preferences or other metadata. I don't know if any plugins have their own daemons, but I'm pretty sure that no plugin-specific functionality is in mythbackend proper.
There's also mfd, which is an intriguing beast I need to learn more about. It looks like it's how I imagined mythbackend would be: a framework for running background threads and server communication. Apparently there are plugins to speak DAAP and other protocols, for various media functions.
The TV part of MythTV is rather privileged, as the TV functions are integrated into the same codebase as the core framework. Long term, I'd like to see this change and have the TV functionality be a plugin, just as the music, gallery, etc. functions are now. If the TV scheduler was a plugin to mfd or its descendant, alongside server-side music and photo sharing, the whole affair would be conceptually cleaner and it'd be easier to do the sort of thing that Patrick originally mentioned. If the TV functions are problematic to port, you could leave them out while porting the framework and any compatible plugins.
- Jeremiah
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
