зеркало из https://github.com/mozilla/gecko-dev.git
Bug 946865 - Move Load Adaption preference to the main thread. r=jesup
This commit is contained in:
Родитель
d9cac2444b
Коммит
7a76409d70
|
@ -21,7 +21,6 @@
|
|||
#include "mozilla/TimeStamp.h"
|
||||
#include "mozilla/Util.h"
|
||||
#include "mozilla/Services.h"
|
||||
#include "mozilla/Preferences.h"
|
||||
|
||||
#if defined(ANDROID) || defined(LINUX) || defined(XP_MACOSX)
|
||||
#include <sys/time.h>
|
||||
|
@ -323,10 +322,6 @@ LoadMonitor::GetSystemLoad() {
|
|||
nsresult
|
||||
LoadMonitor::Init(nsRefPtr<LoadMonitor> &self)
|
||||
{
|
||||
if (!Preferences::GetBool("media.navigator.load_adapt", false)) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
#if defined(PR_LOGGING)
|
||||
if (!gLoadMonitorLog)
|
||||
gLoadMonitorLog = PR_NewLogModule("LoadMonitor");
|
||||
|
|
|
@ -45,6 +45,7 @@ public:
|
|||
static const int DEFAULT_VIDEO_WIDTH = 640;
|
||||
static const int DEFAULT_VIDEO_HEIGHT = 480;
|
||||
static const int DEFAULT_AUDIO_TIMER_MS = 10;
|
||||
static const bool DEFAULT_LOAD_ADAPT = false;
|
||||
|
||||
/* Populate an array of video sources in the nsTArray. Also include devices
|
||||
* that are currently unavailable. */
|
||||
|
@ -130,6 +131,7 @@ struct MediaEnginePrefs {
|
|||
int32_t mHeight;
|
||||
int32_t mFPS;
|
||||
int32_t mMinFPS;
|
||||
bool mLoadAdapt;
|
||||
};
|
||||
|
||||
class MediaEngineVideoSource : public MediaEngineSource
|
||||
|
|
|
@ -43,7 +43,7 @@ GetUserMediaLog()
|
|||
|
||||
namespace mozilla {
|
||||
#ifndef MOZ_B2G_CAMERA
|
||||
MediaEngineWebRTC::MediaEngineWebRTC()
|
||||
MediaEngineWebRTC::MediaEngineWebRTC(MediaEnginePrefs &aPrefs)
|
||||
: mMutex("mozilla::MediaEngineWebRTC")
|
||||
, mVideoEngine(nullptr)
|
||||
, mVoiceEngine(nullptr)
|
||||
|
@ -56,8 +56,10 @@ MediaEngineWebRTC::MediaEngineWebRTC()
|
|||
if (compMgr) {
|
||||
compMgr->IsContractIDRegistered(NS_TABSOURCESERVICE_CONTRACTID, &mHasTabVideoSource);
|
||||
}
|
||||
mLoadMonitor = new LoadMonitor();
|
||||
mLoadMonitor->Init(mLoadMonitor);
|
||||
if (aPrefs.mLoadAdapt) {
|
||||
mLoadMonitor = new LoadMonitor();
|
||||
mLoadMonitor->Init(mLoadMonitor);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -359,7 +361,8 @@ MediaEngineWebRTC::Shutdown()
|
|||
mVideoEngine = nullptr;
|
||||
mVoiceEngine = nullptr;
|
||||
|
||||
mLoadMonitor->Shutdown();
|
||||
if (mLoadMonitor)
|
||||
mLoadMonitor->Shutdown();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -367,7 +367,7 @@ public:
|
|||
mLoadMonitor->Init(mLoadMonitor);
|
||||
}
|
||||
#else
|
||||
MediaEngineWebRTC();
|
||||
MediaEngineWebRTC(MediaEnginePrefs &aPrefs);
|
||||
#endif
|
||||
~MediaEngineWebRTC() {
|
||||
Shutdown();
|
||||
|
|
|
@ -1044,6 +1044,7 @@ MediaManager::MediaManager()
|
|||
mPrefs.mHeight = MediaEngine::DEFAULT_VIDEO_HEIGHT;
|
||||
mPrefs.mFPS = MediaEngine::DEFAULT_VIDEO_FPS;
|
||||
mPrefs.mMinFPS = MediaEngine::DEFAULT_VIDEO_MIN_FPS;
|
||||
mPrefs.mLoadAdapt = MediaEngine::DEFAULT_LOAD_ADAPT;
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPrefService> prefs = do_GetService("@mozilla.org/preferences-service;1", &rv);
|
||||
|
@ -1088,6 +1089,7 @@ MediaManager::Get() {
|
|||
prefs->AddObserver("media.navigator.video.default_height", sSingleton, false);
|
||||
prefs->AddObserver("media.navigator.video.default_fps", sSingleton, false);
|
||||
prefs->AddObserver("media.navigator.video.default_minfps", sSingleton, false);
|
||||
prefs->AddObserver("media.navigator.load_adapt", sSingleton, false);
|
||||
}
|
||||
}
|
||||
return sSingleton;
|
||||
|
@ -1411,7 +1413,7 @@ MediaManager::GetBackend(uint64_t aWindowId)
|
|||
if (!mBackend) {
|
||||
#if defined(MOZ_WEBRTC)
|
||||
#ifndef MOZ_B2G_CAMERA
|
||||
mBackend = new MediaEngineWebRTC();
|
||||
mBackend = new MediaEngineWebRTC(mPrefs);
|
||||
#else
|
||||
mBackend = new MediaEngineWebRTC(mCameraManager, aWindowId);
|
||||
#endif
|
||||
|
@ -1509,6 +1511,18 @@ MediaManager::GetPref(nsIPrefBranch *aBranch, const char *aPref,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
MediaManager::GetPrefBool(nsIPrefBranch *aBranch, const char *aPref,
|
||||
const char *aData, bool *aVal)
|
||||
{
|
||||
bool temp;
|
||||
if (aData == nullptr || strcmp(aPref,aData) == 0) {
|
||||
if (NS_SUCCEEDED(aBranch->GetBoolPref(aPref, &temp))) {
|
||||
*aVal = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
MediaManager::GetPrefs(nsIPrefBranch *aBranch, const char *aData)
|
||||
{
|
||||
|
@ -1516,6 +1530,7 @@ MediaManager::GetPrefs(nsIPrefBranch *aBranch, const char *aData)
|
|||
GetPref(aBranch, "media.navigator.video.default_height", aData, &mPrefs.mHeight);
|
||||
GetPref(aBranch, "media.navigator.video.default_fps", aData, &mPrefs.mFPS);
|
||||
GetPref(aBranch, "media.navigator.video.default_minfps", aData, &mPrefs.mMinFPS);
|
||||
GetPrefBool(aBranch, "media.navigator.load_adapt", aData, &mPrefs.mLoadAdapt);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -1544,6 +1559,7 @@ MediaManager::Observe(nsISupports* aSubject, const char* aTopic,
|
|||
prefs->RemoveObserver("media.navigator.video.default_height", this);
|
||||
prefs->RemoveObserver("media.navigator.video.default_fps", this);
|
||||
prefs->RemoveObserver("media.navigator.video.default_minfps", this);
|
||||
prefs->RemoveObserver("media.navigator.load_adapt", this);
|
||||
}
|
||||
|
||||
// Close off any remaining active windows.
|
||||
|
|
|
@ -506,6 +506,8 @@ private:
|
|||
|
||||
void GetPref(nsIPrefBranch *aBranch, const char *aPref,
|
||||
const char *aData, int32_t *aVal);
|
||||
void GetPrefBool(nsIPrefBranch *aBranch, const char *aPref,
|
||||
const char *aData, bool *aVal);
|
||||
void GetPrefs(nsIPrefBranch *aBranch, const char *aData);
|
||||
|
||||
// Make private because we want only one instance of this class
|
||||
|
|
Загрузка…
Ссылка в новой задаче