[mythtv] Making MythTV more OSX Friendly
Jeremiah Morris
jm at whpress.com
Tue Jan 25 15:10:22 EST 2005
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
More information about the mythtv-dev
mailing list