[mythtv] broken mpeg4 recordings with SD bt878/bttv tuners

Steve Briggs zzybaloobah at yahoo.com
Mon Apr 7 15:30:54 UTC 2008


I have consistent problems with broken mpeg4 recordings.

The first recording (after starting a backend) is good,
the subsequent ones (on that backend) are almost always
corrupt.  When I try and play them back (with
mythtv-frontend) I get a zillion mpeg4 errors:

2008-03-21 00:21:08.960 TV: Changing from None to WatchingPreRecorded
[mpeg4 @ 0x49ef440]warning: first frame is no keyframe
[mpeg4 @ 0x49ef440]ac-tex damaged at 16 0
[mpeg4 @ 0x49ef440]Error at MB: 16
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
Marker bit missing before time_increment
[mpeg4 @ 0x49ef440]Error, header damaged or not MPEG4 header (f_code=0)
[mpeg4 @ 0x49ef440]header damaged
Marker bit missing before time_increment
[mpeg4 @ 0x49ef440]Error, header damaged or not MPEG4 header (f_code=0)
[mpeg4 @ 0x49ef440]header damaged
Marker bit missing before time_increment
[mpeg4 @ 0x49ef440]ac-tex damaged at 1 1
[mpeg4 @ 0x49ef440]Error at MB: 29
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
[mpeg4 @ 0x49ef440]ac-tex damaged at 9 0
[mpeg4 @ 0x49ef440]Error at MB: 9
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
[mpeg4 @ 0x49ef440]dc marker bit missing
[mpeg4 @ 0x49ef440]Error at MB: 34
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
[mpeg4 @ 0x49ef440]Error at MB: 58
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
[mpeg4 @ 0x49ef440]2. marker bit missing in 3. esc
[mpeg4 @ 0x49ef440]Error at MB: 168
[mpeg4 @ 0x49ef440]concealing 757 DC, 757 AC, 757 MV errors
[mpeg4 @ 0x49ef440]2. marker bit missing in 3. esc
[mpeg4 @ 0x49ef440]Error at MB: 160
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
[mpeg4 @ 0x49ef440]Error at MB: 227
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
[mpeg4 @ 0x49ef440]Error at MB: 277
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
[mpeg4 @ 0x49ef440]ac-tex damaged at 25 2
[mpeg4 @ 0x49ef440]Error at MB: 81
[mpeg4 @ 0x49ef440]concealing 810 DC, 810 AC, 810 MV errors
[mpeg4 @ 0x49ef440]hmm, seems the headers are not complete, trying to guess time_increment_bits
[mpeg4 @ 0x49ef440]my guess is 1 bits ;)
[mpeg4 @ 0x49ef440]ac-tex damaged at 23 5
[mpeg4 @ 0x49ef440]Error at MB: 163

and so on.  The audio is fine, but the video is complete garbage.

The system was working fine at fedora core 4 with 0.19-129.rhfc4
and also at FC6 with the older ATRPMS, it was only after upgrading
to 0.20-147 (currently FC8 with 0.21-181.fc8 from ATRPMS) that the
problem started.  It's been very persistent since then (but I
only recently noticed the dependence on restarting the backend).

I'm running SDTV, Hauppauge WinTV (bt878) cards, encoded directly to
mpeg4 by mythbackend.  Backends all have 1 GB+ of RAM, CPU's are Athlon
XP3200s or better and CPU utilization is under 75% worst case.

What I've learned:
1) The problem is reproducible across 3 different backend/tuners.
2) It doesn't matter whether I'm on a local (to that backend)
   frontend or not.
3) It doesn't matter whether my /video is a local partition or
   remote nfs mount.
4) Yes (to answer the most common follow-up Q), I'm running the
   same version on frontend / backend.
5) The recordings are the problem; if I watch them with a
   different frontend (or with mplayer), they're still broken.
6) The frontend(s) play "working" recordings (including old
   recordings before this problem started) fine.
7) The problem does NOT show up if I watch live TV, either via
   MythTV, tvtime, or xawtv; it only seems to affect recordings.
8) I've tried unloading and loading the bt878 and bttv modules,
   but that doesn't make any difference.
9) I've looked at backend logs ("-v all", etc.) but nothing jumps
   out at the time of recording ... in particular, there's no
   "IOBOUND" errors.  (There are a bunch of errors similar to the
   mpeg4 errors I see at the frontend, but they don't have datestamps,
   and only show up after I try viewing the recording.)
   I have (but can't include... the system reject the email
   as too long) a detailed log which includes:
   a) starting backend with -v all
   b) recording a show
   c) viewing it (recording is good)
   d) stopping the recording
   e) starting a recording
   f) viewing it (recording is bad)
   g) stopping the recording
   h) stopping the backend

NOW, FOR THE *REALLY* INTERESTING/BIZZARE PART:
IF I restart the backend, the first recording is always good.
Subsequent recordings are almost always (more than 9 times
out of 10) bad.
In other words, I've done the following:
  ACTION                  RESULT
  restart backend
  record a show           GOOD RECORDING
  record a show           BAD RECORDING
  record a show           BAD RECORDING
  watch live TV           GOOD LIVE TV
  watch live TV           GOOD LIVE TV
  run tvtime/xawtv        GOOD LIVE TV
  record a show           BAD RECORDING
    etc... live tv is good, recordings are bad.
  restart backend
  record a show           GOOD RECORDING
  unload bttv/bt878 modules
  load bttv/bt878 modules
  watch live TV           GOOD LIVE TV
  record a show           BAD RECORDING
This didn't use to be this consistent.
In the past (say before my upgrade to FC8),
I would get bad recordings maybe a 1/3 of the
time and I'm not aware of any pattern to the
recordings.  Now, though, it's very consistent.

THE ONLY THING THAT SEEMS TO MATTER IS:
IF (FIRST_RECORDING_AFTER_BACKEND_START) THEN
   RECORDING = GOOD
ELSE
   RECORDING = BAD


It really seems like the act of recording a show leaves some
internal thing in the backend corrupt so that subsequent recordings
fail.

I've had this problem for quite a while and am getting desperate.
Any one have any ideas?  Anyone else still using bt878 cards direct
to mpeg4 that *DOESN'T* have this problem -- if so, what's your
set up?  I suppose I can define a user job that restarts the
backend after every recording, but that's UGLY, and I don't think
I can do that on the master backend without probably trashing
recordings on other backends as well.  I don't think I can
use the shutdown/wake feature, because there's (almost) always
a FE connected somewhere in the house.

TIA
Steve



      ____________________________________________________________________________________
You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.  
http://tc.deals.yahoo.com/tc/blockbuster/text5.com


More information about the mythtv-dev mailing list