From c54b2050b319dd6bede4385594738b5ebc104c3c Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Sun, 8 Jan 2012 18:38:42 +0000 Subject: [PATCH] Remove the dvd drive speed setting 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. --- mythtv/libs/libmythtv/dvdringbuffer.cpp | 9 +++++---- .../programs/mythfrontend/videoglobalsettings.cpp | 13 ------------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/mythtv/libs/libmythtv/dvdringbuffer.cpp b/mythtv/libs/libmythtv/dvdringbuffer.cpp index 483fa368490..47d7fc2e3d6 100644 --- a/mythtv/libs/libmythtv/dvdringbuffer.cpp +++ b/mythtv/libs/libmythtv/dvdringbuffer.cpp @@ -19,6 +19,8 @@ if (++m_buttonVersion > 1024) \ m_buttonVersion = 1; +#define DVD_DRIVE_SPEED 1 + static const char *dvdnav_menu_table[] = { NULL, @@ -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) @@ -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. diff --git a/mythtv/programs/mythfrontend/videoglobalsettings.cpp b/mythtv/programs/mythfrontend/videoglobalsettings.cpp index b3b2a9149eb..0365bfc02d3 100644 --- a/mythtv/programs/mythfrontend/videoglobalsettings.cpp +++ b/mythtv/programs/mythfrontend/videoglobalsettings.cpp @@ -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"); @@ -295,7 +283,6 @@ VideoGeneralSettings::VideoGeneralSettings() VConfigPage page2(pages, false); page2->addChild(SetOnInsertDVD()); - page2->addChild(SetDVDDriveSpeed()); page2->addChild(VideoTreeRemember()); // page 3