[mythtv-commits] mythtv commit: r8479 by danielk
mythtv at cvs.mythtv.org
mythtv at cvs.mythtv.org
Tue Jan 3 03:10:24 UTC 2006
Author: danielk
Date: 2006-01-03 03:10:23 +0000 (Tue, 03 Jan 2006)
New Revision: 8479
Changeset: http://cvs.mythtv.org/trac/changeset/8479
Modified:
trunk/mythtv/libs/libmythtv/ivtvdecoder.cpp
trunk/mythtv/libs/libmythtv/ivtvdecoder.h
trunk/mythtv/libs/libmythtv/videoout_ivtv.cpp
trunk/mythtv/libs/libmythtv/videoout_ivtv.h
trunk/mythtv/libs/libmythtv/videooutbase.h
Log:
Fixes #754.
This does not make smooth transitions ringbuffer transitions smooth, but it does prevent us from getting stuck in some infinte loops.
There are two major problems:
* IvtvDecoder::GetFramesPlayed() doesn't return a positive value until we have actually played some frames, and this doesn't happen until the ivtv decoding buffers has a lot of data in it. If the recording has just started this can be a problem as SeekReset was attempting to fill this buffer entirely. In this commit we just try to put some data in the buffer, which avoids hitting the end-of-file.
* IvtvDecoder::CanHandle() tried to access the PVR-350 video output device when testing whether it can handle decoding a stream. This causes problems during the ringbuffer switch.. So I broke off the device testing into a CheckDevice() function, which always returns true once the device has passed the tests once.
I also made VideoOutput::GetFramesPlayed() virtual so that the Ivtv implementation would not be hidden then the object is treated as VideoOutput* rather than a VideoOutputIvtv*
Plus a few cosmetic changes in IvtvDecoder and some more VERBOSE macros in videooutputIvtv.
More information about the mythtv-commits
mailing list