Mailing List Archive

mythtv cvs trouble?
Isaac,

I'm having trouble checking out from CVS. I waited a few minutes, and
the same thing happened again. The error message is below.

On my machine, the recorder skips a frame every so often (once per 10
seconds?) and as a result the output has to pause for prebuffer
occasionally. Have you noticed this? You'd know, the prebuffering is
really annoying. This is the next thing I'm going to work on.

First, the player should deal with a missing frame more gracefully. The
nuppel video stream has frame numbers, which skip ahead if the recorder
skips frames. I think the player currently ignores the frame number. I
plan to have the player handle a sudden frame number jump by leaving the
old frame visible during the time that would have been allocated to the
missing frames. This will avoid the prebuffering, and better maintain
a/v sync.

Secondly, it would be nice if the recorder didn't skip frames as often.
I'll investigate the cause. This is the second thing to look at, b/c the
recorder has to be skipping frames in order to test that the player
handles them properly.

-- john

The cvs error message:

john@lurk:~/mc/MC$ cvs -z3 update -dA
john@ijr.dnsalias.org's password:
? epg/moc_guidegrid.cpp
? epg/moc_infodialog.cpp
? epg/mythepg
? tv/mythtv
? tv/libNuppelVideo/nuppelvideo-config
cvs server: Updating .
cvs server: Updating configfiles
cvs server: Updating dialog
cvs server: failed to create lock directory for `/var/lib/cvs/MC/dialog'
(/var/lib/cvs/MC/dialog/#cvs.lock): Permission denied
cvs server: failed to obtain dir lock in repository `/var/lib/cvs/MC/dialog'
cvs [server aborted]: read lock failed - giving up

I also tried checking out MC to a fresh directory, instead of updating
my existing directory, which made no difference.
Re: mythtv cvs trouble? [ In reply to ]
On Monday 08 July 2002 08:53 pm, John Coiner wrote:
> Isaac,
>
> I'm having trouble checking out from CVS. I waited a few minutes, and
> the same thing happened again. The error message is below.

This should be fixed now. I forgot to make the directory in CVS sticky so
that any new subdirs I created (like dialog/) would inherit their parent's
permissions.

> On my machine, the recorder skips a frame every so often (once per 10
> seconds?) and as a result the output has to pause for prebuffer
> occasionally. Have you noticed this? You'd know, the prebuffering is
> really annoying. This is the next thing I'm going to work on.

I've never seen it drop a frame on my box =)

> First, the player should deal with a missing frame more gracefully. The
> nuppel video stream has frame numbers, which skip ahead if the recorder
> skips frames. I think the player currently ignores the frame number. I
> plan to have the player handle a sudden frame number jump by leaving the
> old frame visible during the time that would have been allocated to the
> missing frames. This will avoid the prebuffering, and better maintain
> a/v sync.

Hrm. The recorder does already have some code to repeat frames with a
special header in the file if it's dropped any.. Like I said, though, I
don't think I've ever seen it drop a frame during recording.

> Secondly, it would be nice if the recorder didn't skip frames as often.
> I'll investigate the cause. This is the second thing to look at, b/c the
> recorder has to be skipping frames in order to test that the player
> handles them properly.

Right.
Re: mythtv cvs trouble? [ In reply to ]
On Monday 08 July 2002 09:38 pm, Isaac Richards wrote:
> On Monday 08 July 2002 08:53 pm, John Coiner wrote:
> > On my machine, the recorder skips a frame every so often (once per 10
> > seconds?) and as a result the output has to pause for prebuffer
> > occasionally. Have you noticed this? You'd know, the prebuffering is
> > really annoying. This is the next thing I'm going to work on.
>
> I've never seen it drop a frame on my box =)

Heh, of course, now that I said that, I've seen it pause occasionally in the
past couple minutes.

Hum. If I reinsert those usleep() calls on startup and during channel
changes, they go away..

Isaac
Re: mythtv cvs trouble? [ In reply to ]
Isaac,

I'm having more cvs trouble. cvs hangs while doing a fresh checkout of
'MC'. Do you know what's up?

I can build and run mythtv from this checkout, so cvs is almost done
when it hangs.


john@lurk:~/mc$ cvs -z3 co MC
john@ijr.dnsalias.org's password:
cvs server: Updating MC
U MC/README
cvs server: Updating MC/configfiles
U MC/configfiles/lircd.conf.example
U MC/configfiles/lircrc.example
cvs server: Updating MC/dialog
U MC/dialog/Makefile
U MC/dialog/dialogbox.cpp
U MC/dialog/dialogbox.h
U MC/dialog/main.cpp
U MC/dialog/mythdialog.pro
cvs server: Updating MC/epg
U MC/epg/Makefile
U MC/epg/guidegrid.cpp
U MC/epg/guidegrid.h
U MC/epg/infodialog.cpp
U MC/epg/infodialog.h
U MC/epg/infostructs.cpp
U MC/epg/infostructs.h
U MC/epg/main.cpp
U MC/epg/mythepg.pro
cvs server: Updating MC/programdb
U MC/programdb/filldata
U MC/programdb/grabdata
U MC/programdb/mc.sql
U MC/programdb/record.sql
U MC/programdb/to_mysql
cvs server: Updating MC/tv
U MC/tv/Makefile
U MC/tv/channel.cpp
U MC/tv/channel.h
U MC/tv/frequencies.c
U MC/tv/frequencies.h
U MC/tv/helr.ttf
U MC/tv/main.cpp
U MC/tv/recordinginfo.cpp
U MC/tv/recordinginfo.h
U MC/tv/settings.cpp
U MC/tv/settings.h
U MC/tv/settings.txt
U MC/tv/tv.cpp
U MC/tv/tv.h
cvs server: Updating MC/tv/docs
U MC/tv/docs/LICENSE
U MC/tv/docs/LICENSE.XJ
U MC/tv/docs/LICENSE.jpeg
U MC/tv/docs/LICENSE.rtjpeg
U MC/tv/docs/README
U MC/tv/docs/README.rtjpeg
cvs server: Updating MC/tv/examples
U MC/tv/examples/Makefile
U MC/tv/examples/nuvplay.cpp
U MC/tv/examples/nuvrec.cpp
cvs server: Updating MC/tv/libNuppelVideo
U MC/tv/libNuppelVideo/Makefile
U MC/tv/libNuppelVideo/NuppelVideoPlayer.cpp
U MC/tv/libNuppelVideo/NuppelVideoPlayer.h
U MC/tv/libNuppelVideo/NuppelVideoRecorder.cpp
U MC/tv/libNuppelVideo/NuppelVideoRecorder.h
U MC/tv/libNuppelVideo/RTjpegN.cpp
U MC/tv/libNuppelVideo/RTjpegN.h
U MC/tv/libNuppelVideo/RingBuffer.cpp
U MC/tv/libNuppelVideo/RingBuffer.h
U MC/tv/libNuppelVideo/XJ.cpp
U MC/tv/libNuppelVideo/XJ.h
U MC/tv/libNuppelVideo/effects.cpp
U MC/tv/libNuppelVideo/effects.h
U MC/tv/libNuppelVideo/format.h
U MC/tv/libNuppelVideo/jitterometer.cpp
U MC/tv/libNuppelVideo/jitterometer.h
U MC/tv/libNuppelVideo/lzoconf.h
U MC/tv/libNuppelVideo/minilzo.cpp
U MC/tv/libNuppelVideo/minilzo.h
U MC/tv/libNuppelVideo/mmx.h
U MC/tv/libNuppelVideo/osd.cpp
U MC/tv/libNuppelVideo/osd.h
U MC/tv/libNuppelVideo/ttfont.cpp
U MC/tv/libNuppelVideo/ttfont.h
<-- hangs for 10 minutes here. So, I hit CTRL-C ...
Killed by signal 2.
cvs [checkout aborted]: received interrupt signal
john@lurk:~/mc$
Re: mythtv cvs trouble? [ In reply to ]
On Tuesday 09 July 2002 09:39 pm, you wrote:
> Isaac,
>
> I'm having more cvs trouble. cvs hangs while doing a fresh checkout of
> 'MC'. Do you know what's up?

Hrm. ttfont.h is the last file that should be getting checked out.. I just
did a clean checkout here (using the anonymous checkout-only use), and it
worked fine. Not sure what's up with it :/ All the files in the cvs tree
itself look to have proper permissions and everything.

Isaac
Re: mythtv cvs trouble? [ In reply to ]
On Tuesday 09 July 2002 09:56 pm, you wrote:
> You mean the 500000 us sleep at channel change? That shouldn't factor
> in, it might cause pauses shortly after a channel change. What if you
> watch the same channel for > 1 minute?

Yeah, without the usleep there it'll pause occasionally, with it, it won't.
It _seems_ to be hitting the code in the RingBuffer class that doesn't let
the read thread overrun the write thread's position

Isaac
Re: mythtv cvs trouble? [ In reply to ]
I've checked in minor cleanups to NuppelVideoRecorder.cpp, which fix the
pausing/skipping.

I think. It's hard to be sure it's really fixed. B/c prior to the fix,
the pausing was less frequent today than it had been yesterday, like
once per 3 minutes.

-- john