On Fri, 2008-12-12 at 22:09 +0200, Axel Thimm wrote:
> On Fri, Dec 12, 2008 at 02:39:12PM -0500, Jarod Wilson wrote:
> > On Fri, 2008-12-12 at 20:46 +0200, Axel Thimm wrote:
> > > Hi,
> > > 
> > > On Fri, Dec 12, 2008 at 01:01:08AM -0500, Jarod Wilson wrote:
> > > > So... I *finally* have had some time to beat on firewire again... A few
> > > > patches to libraw1394 and one to mythtv, and now things finally work

                                  ^^^^^^^^^^^^^

> > > > using the juju firewire stack with firewire cable boxes.
> > > > libraw1394-2.0.0-5 for f10 and rawhide and libraw1394-1.3.0-11 for f9
> > > > have the necessary fixes, and I just committed the necessary mythtv
> > > > fixes to mythtv svn tonight.
> > > 
> > > is this API/ABI compatible or does one need to rebuild mythtv and all
> > > packages depending on libraw1394?
> > 
> > Its all API/ABI compatible, but the new libraw1394 packages have already
> > been pushed as stable updates, and you obviously need to rebuild MythTV
> > to get the benefit of the MythTV patch, so I presume you'd wind up
> > building w/the new one anyway. :)
> 
> I'm not quite sure I understand - API/ABI compatible would mean that I
> *don't* have to build mythtv or any other dependent package, or not?

You *do* have to rebuild mythtv. See above... :)

And/or here:

http://svn.mythtv.org/trac/changeset/19342/branches/release-0-21-fixes/mythtv/libs

That patch is required, or mythbackend will segfault whenever the mpeg
stream gets out of sync, even with the latest and greatest libraw1394.
There were actually three separate issues recently fixed:

1) libraw1394 + juju was screwing up reporting back allocated iso
channel number, so iso receive was starting up, but would frequently
report back that it was running on channel -1, which is bogus (only 0-63
are valid), and mythtv would catch the -1 and inform you things were not
working. This was fixed in libraw1394-2.0.0-4.

2) libraw1394 + juju wasn't properly handling iso start/stop/start
sequences on the same firewire handle. dvgrab and kino were fine,
because every time you do an iso stop, you also destroy the firewire
handle, so the next time you start up, you're working on a freshly
allocated handle. Myth allocates a handle, starts up iso reception,
checks that we've got a valid stream, stops iso, then starts up the iso
stream again for recording or livetv. This is what was fixed in
libraw1394-2.0.0-5.

3) whenever the mpeg stream gets out of sync, mythtv was overwriting the
current sync byte in the incoming iso buffer with a non-sync-byte value
to trigger a resync of the stream on the next iteration of the stream
processor. With juju, the buffer is read-only to userspace, only
writeable by the firewire controller, so that write attempt by userspace
(mythtv) lead to a segfault. So I patched mythtv to set a resync flag
instead of trying to scribble on the stream as a work-around. (Some
might argue this is really a driver bug, but krh says this is by design,
its one of the features that makes throughput w/juju so much better -- a
single iso ring buffer simply mapped out to userspace for reads, vs.
memcpy'ing every packet out to userspace to do with as it pleases.)

So yeah, the new libraw1394 is API/ABI compatible, but you do still need
to rebuild MythTV to get thing all the way working, after adding that
patch. :)

--jarod



_______________________________________________
atrpms-devel mailing list
atrpms-devel@atrpms.net
http://lists.atrpms.net/mailman/listinfo/atrpms-devel

Reply via email to