Bug 929431 - Improve matching of camera capabilities to WebRTC restraints. r=jesup

This commit is contained in:
Gian-Carlo Pascutto 2014-08-18 14:06:01 +02:00
parent 53e13cf766
commit 11fd4a8721

View File

@ -309,9 +309,28 @@ MediaEngineWebRTCVideoSource::ChooseCapability(
// FIXME: expose expected capture delay?
}
}
// Same resolution, maybe better format or FPS match
if (mCapability.width == cap.width && mCapability.height == cap.height) {
// FPS too low
if (cap.maxFPS < (uint32_t) aPrefs.mMinFPS) {
continue;
}
// Better match
if (cap.maxFPS < mCapability.maxFPS) {
mCapability = cap;
} else if (cap.maxFPS == mCapability.maxFPS) {
// Resolution and FPS the same, check format
if (cap.rawType == webrtc::RawVideoType::kVideoI420
|| cap.rawType == webrtc::RawVideoType::kVideoYUY2
|| cap.rawType == webrtc::RawVideoType::kVideoYV12) {
mCapability = cap;
}
}
}
}
LOG(("chose cap %dx%d @%dfps",
mCapability.width, mCapability.height, mCapability.maxFPS));
LOG(("chose cap %dx%d @%dfps codec %d raw %d",
mCapability.width, mCapability.height, mCapability.maxFPS,
mCapability.codecType, mCapability.rawType));
#endif
}