[mythtv-users] Analog firewire recordings end early due to 25% fewer frames

Yeechang Lee ylee at pobox.com
Mon Feb 2 21:56:20 UTC 2009


This is a long story, so please bear with me. Short version: Analog
FireWire recordings are randomly ending early without mythbackend
being aware of this, due to 25% missing frames.

I've been using FireWire capture since my first day with MythTV more
than three years ago. As one of the lucky ones with almost
completely-untrammeled access to subscribed channels, from the start
I've been able to capture all my channels, whether analog (channels
below 100) or digital (100 and up, including both standard-definition
and high-definition). FireWire was, in the grand scheme of things,
pretty rock solid-reliable for me.

In September 1997--almost two years after I began using FireWire--two
things changed (hereafter referred to as "the change") regarding
analog channels over FireWire only:

* Recordings' quality changed. The cable company began removing one
  out of every four frames to, I presume, gain bandwidth for
  additional digital channels.

  mythfrontend's fps figures when playing back post-change recordings
  average 22.48, which is exactly 75% of 29.97. This is also apparent
  when comparing the displayed times of completed and otherwise-intact
  recordings post-change with their actual recording times:

  REAL[1]		DISPLAYED
  31 min 55 sec		23 min 55 sec
  61 min 55 sec		46 min 26 sec
  106 min 55 sec	80 min 10 sec

  [1] I typically use soft padding to start recordings a minute early
  and a minute late, and there is generally about five seconds spent up
  front on scheduling, channel changing, and signal lock.

  The loss of 25% of frames is quite apparent when watching the
  resulting recordings. Although completely intact, their quality is
  perceptibly inferior to the analog recordings I made through
  FireWire before September 1997 (and which, needless to say, display
  elapsed times that match real times).

  The vast majority of my recordings are OTA and FireWire
  high-definition, and so I could live with the diminished quality of
  analog recordings, were it not for the fact that, . . .

* Also, post-change, many (about 30-50%) of analog FireWire recordings
  fail silently. "Fail," because such recordings end early;
  "silently," because mythbackend does not notice and thinks they're
  intact. There are no error or other untoward messages of any kind in
  mythbackend.log even when running with '-v all', and mythfrontend
  colors the recordings as ongoing until they (are supposed to)
  finish. Affected recordings generally end after anywhere from a
  little over one minute to about 10 minutes in (this is the displayed
  time, so real time is about two to 13).

What this is not:

* A settop-box fault. I have two identical DCT-6200 cable boxes and
  this issue exists on both. I tried replacing them back post-change,
  anyway, without success.
* A FireWire-connection issue. This problem does not occur at all with
  digital HD or SD channels.
* A FireWire-setup issue. I've tried each FireWire bandwidth rate in
  mythtv-setup from 100 to 800mbps without any change.

My theory is that missing 25% of all frames in the signal is causing
something within mythbackend's FireWire recorder to time out
sometimes, without mythbackend overall noticing.

My questions:

* Is this theory a reasonable one?
* If so, where should I look within the code and what should I look
  for?
* Should I file a ticket? The issue began under 0.20-fixes and has
  continued through 0.21-fixes. I read -dev and -commits and have not
  seen anything since 0.21 shipped akin to this problem.

-- 
Yeechang Lee <ylee at pobox.com> | San Francisco CA US


More information about the mythtv-users mailing list