[mythtv-commits] Ticket #5278: Firewire Uses Bad Port Number and Fails
MythTV
mythtv at cvs.mythtv.org
Wed Nov 4 05:52:00 UTC 2009
#5278: Firewire Uses Bad Port Number and Fails
---------------------------------+------------------------------------------
Reporter: scottadmi@… | Owner: ijr
Type: defect | Status: assigned
Priority: minor | Milestone: unknown
Component: MythTV - Recording | Version: 0.21
Severity: medium | Mlocked: 0
---------------------------------+------------------------------------------
Comment(by scottadmi@…):
I took the advice above and found it is very straightforward to replace
the get_guid function inside linuxfirewiredevice.cpp to call the one from
libavc1394. For the purposes of testing, I merely replaced the contents of
the existing function so it looks like this:
{{{
static bool get_guid(raw1394handle_t handle, nodeid_t node, uint64_t
&guid,
bool &temp_unavailable)
{
node = 0x003f & node;
guid = rom1394_get_guid(handle, node);
return true;
}
}}}
Note: the first line (node = 0x003f & node) exists only to reverse the
unnecessary padding done by the caller. The correct solution would be to
simply remove the "0xffc0 | node" from the call, but for the purposes of a
simple single location fix, I left that as is and just replaced the
function as above. So far, this fix has performed well though I haven't
been using it long enough to know if it might still return invalid GUIDs
which are the cause of this bug in the first place.
For a long time, I had been getting by with a script which monitors the
myth backend log and resets it if it detects this type of failure so HD
recordings don't get missed because and I don't have to manually restart
the backend if I'm watching live TV and it happens (though it does take a
bit to restart). I can post this if anyone is curious, but hopefully this
will render it unnecessary.
--
Ticket URL: <http://svn.mythtv.org/trac/ticket/5278#comment:28>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list