Skip to content

Commit

Permalink
Remove the dvd drive speed setting
Browse files Browse the repository at this point in the history
Reasons for this include:

In testing dvd playback was most consistent error free at just 1x whereas speeds
up to the maximum of 12x were liable to result in the drive spinning down
between reads causing video buffers to starve.

1x is the quietest speed so it also has that going for it.

Removing drive speed as a variable means we can more easily tune read buffers
to work for everyone.

Fewer settings means a simpler configuration and end-user experience.

Higher speeds did not significantly improve seek or playback start times. I also
tested various discs with timestretch at 1.5x and observed no issues with drive
speed at 1x.
  • Loading branch information
stuartm committed Jan 8, 2012
1 parent bfe8fbe commit c54b205
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 17 deletions.
9 changes: 5 additions & 4 deletions mythtv/libs/libmythtv/dvdringbuffer.cpp
Expand Up @@ -19,6 +19,8 @@
if (++m_buttonVersion > 1024) \
m_buttonVersion = 1;

#define DVD_DRIVE_SPEED 1

static const char *dvdnav_menu_table[] =
{
NULL,
Expand Down Expand Up @@ -209,7 +211,7 @@ long long DVDRingBuffer::Seek(long long pos, int whence, bool has_lock)
if (ret >= 0)
{
readpos = ret;

ignorereadpos = -1;

if (readaheadrunning)
Expand Down Expand Up @@ -1684,14 +1686,13 @@ double DVDRingBuffer::GetFrameRate(void)
return dvdfps;
}

/** \brief set dvd speed. uses the DVDDriveSpeed Setting from the settings
/** \brief set dvd speed. uses the constant DVD_DRIVE_SPEED
* table
*/
void DVDRingBuffer::SetDVDSpeed(void)
{
QMutexLocker lock(&m_seekLock);
int dvdDriveSpeed = gCoreContext->GetNumSetting("DVDDriveSpeed", 12);
SetDVDSpeed(dvdDriveSpeed);
SetDVDSpeed(DVD_DRIVE_SPEED);
}

/** \brief set dvd speed.
Expand Down
13 changes: 0 additions & 13 deletions mythtv/programs/mythfrontend/videoglobalsettings.cpp
Expand Up @@ -160,18 +160,6 @@ HostComboBox *SetOnInsertDVD()
return gc;
}

HostSlider *SetDVDDriveSpeed()
{
HostSlider *gs = new HostSlider("DVDDriveSpeed", 2, 12, 2);
gs->setLabel(QObject::tr("DVD Drive Speed"));
gs->setValue(12);
gs->setHelpText(QObject::tr("Set DVD Drive Speed during DVD Playback. "
"Speed is in multiples of 177KB/s. "
"Slower speeds may reduce drive noise but in "
"some cases it causes playback to stutter."));
return gs;
}

HostCheckBox *VideoTreeRemember()
{
HostCheckBox *gc = new HostCheckBox("mythvideo.VideoTreeRemember");
Expand Down Expand Up @@ -295,7 +283,6 @@ VideoGeneralSettings::VideoGeneralSettings()

VConfigPage page2(pages, false);
page2->addChild(SetOnInsertDVD());
page2->addChild(SetDVDDriveSpeed());
page2->addChild(VideoTreeRemember());

// page 3
Expand Down

0 comments on commit c54b205

Please sign in to comment.