[mythtv] Development thoughts + Mythtv crashing bug - during playback/delete

Grant Taylor mythtv-dev@snowman.net
Mon, 09 Sep 2002 14:29:05 -0400


>>>>> Issac writes:

> I don't really want to deal with playing back other formats.

Yes, please don't bother.  Mythtv is about watching TV.  Stuff like
DVD can be handled with something trivial like

  system("mplayer -dvd -blah-blah");

Which brings up the point - is the frontend stuff at all scriptable?
Currently most everything is a thread, which makes it rather hard to
plug stuff in without writing code that runs in the same context as
precious stuff like the timed recorder.

> what would you think of searching multiple paths for the files?

Yes, this would be the thing to do.  It trivially solves the problem
of adding another disk without having to get all fancy with LVM,
RAID0, or whatever.  One would just use the biggest disk for mythtv,
and have a cron job do some sort of lru archiving to the other disks.

> The ff/rew amount is configurable in the settings file.  

I ended up setting mine for 15s, because I can't get my remote keys to
autorepeat.

What's more of a mystery is that I can't find what to put in my
irxevent rc file for "space".  "KP_Space" is the only listed thing in
the xevent docs, but that doesn't work.  Nor does "Space".  I'm quite
sure my remote button works; irw shows it being pushed.

I looked at the example ir config file, and I can see no way to use
the supported keys to select the "Record this showing" or "Record this
timeslot" or "Record this title" options.  Enter always exits the
dialog - only a real space on the real keyboard seems to work, which
is sort of awkward since my keyboard is in the basement!

> eat a commercial in the file, and only remove things on playback,

I've found that a largish fast forward time in some multiple of 30s
makes it really trivial to skip commercials.

> Other than running it in gdb and seeing where it crashes, no =)

Does -g change anything else in the way the code compiles?  It might
be a nice if the makefile defaulted to making a -g binary and then
stripped it at install time.  This way people can gdb the unstripped
exe and core files with symbols.

Also, is there something useful that can be done to snapshot a hanging
mythtv?  A couple times a day the player will hang for about 60-120s
when I'm in the middle of forwarding or reversing.  It just stops,
with no sound, with the picture and "Forward" or "Reverse" osd overlay
stuck, but it eventually continues.

It's not crashing or saying anything.  I've never noticed any hang or
jumps in whatever was recording under it at the time; seems like a
player-specific issue.

What threads are active and waiting on what during ffwd/rew modes?

This is a little odd, the usual failure modes for threaded software
are "hang forever" and "blow up occasionally".  Do you generally use
semaphores with a 60s timeout or something?

> I've never worked on support for mpeg2, just libavcodec's mpeg4
> stuff.  That all works fairly well, just change the Codec setting in
> the config file from 'rtjpeg' to 'mpeg4', and it'll encode using
> that.  It does use quite a bit more CPU, though.  I haven't worked
> much on re-encoding yet.  And actually, most of libavcodecs other
> video encoders should work as well, but I haven't really tested
> them.

Hmm.  The mpeg4 support does indeed work, and produces substantially
smaller files.  There are however visible defects in the coding that
are not present in the rtjpeg codec.  Usually, they appear as purple
or green splotches that last for a few seconds at a frequency of
several defects per 10 minute period.  The splotches seem to be small
groupings of delta squares; ie they represent a small area of the
motion between a series of similar frames.

Possibly this has gone away with all the avcodec updates that went in
over the past week; I haven't updated yet.

--
Grant Taylor - gtaylor<at>picante.com - http://www.picante.com/~gtaylor/
  Linux Printing Website and HOWTO:  http://www.linuxprinting.org/