Back out 5 changesets (bug 1059765, bug 1056350, bug 1049087, bug 1060249) for build bustage on a CLOSED TREE

Backed out changeset a202e2f54b45 (bug 1056350)
Backed out changeset 13c8d9e68cb6 (bug 1060249)
Backed out changeset 9c86bdb3ff21 (bug 1049087)
Backed out changeset 7b7cb046d45f (bug 1059765)
Backed out changeset c52e50a27c8c (bug 1059765)
This commit is contained in:
Phil Ringnalda 2014-08-29 19:38:19 -07:00
parent b6b9d3b381
commit 51a136760d
9 changed files with 32 additions and 100 deletions

View File

@ -143,13 +143,12 @@ WebrtcGmpVideoEncoder::InitEncode(const webrtc::VideoCodec* aCodecSettings,
int32_t aNumberOfCores,
uint32_t aMaxPayloadSize)
{
if (!mMPS) {
mMPS = do_GetService("@mozilla.org/gecko-media-plugin-service;1");
}
mMPS = do_GetService("@mozilla.org/gecko-media-plugin-service;1");
MOZ_ASSERT(mMPS);
if (!mGMPThread) {
if (NS_WARN_IF(NS_FAILED(mMPS->GetThread(getter_AddRefs(mGMPThread))))) {
mMPS = nullptr;
return WEBRTC_VIDEO_CODEC_ERROR;
}
}
@ -183,30 +182,31 @@ WebrtcGmpVideoEncoder::InitEncode_g(const webrtc::VideoCodec* aCodecSettings,
mHost = nullptr;
return WEBRTC_VIDEO_CODEC_ERROR;
}
mMPS = nullptr;
if (!mGMP || !mHost) {
return WEBRTC_VIDEO_CODEC_ERROR;
}
// Bug XXXXXX: transfer settings from codecSettings to codec.
memset(&mCodecParams, 0, sizeof(mCodecParams));
GMPVideoCodec codec;
memset(&codec, 0, sizeof(codec));
mCodecParams.mGMPApiVersion = 33;
mCodecParams.mWidth = aCodecSettings->width;
mCodecParams.mHeight = aCodecSettings->height;
mCodecParams.mStartBitrate = aCodecSettings->startBitrate;
mCodecParams.mMinBitrate = aCodecSettings->minBitrate;
mCodecParams.mMaxBitrate = aCodecSettings->maxBitrate;
mCodecParams.mMaxFramerate = aCodecSettings->maxFramerate;
mMaxPayloadSize = aMaxPayloadSize;
codec.mGMPApiVersion = 33;
codec.mWidth = aCodecSettings->width;
codec.mHeight = aCodecSettings->height;
codec.mStartBitrate = aCodecSettings->startBitrate;
codec.mMinBitrate = aCodecSettings->minBitrate;
codec.mMaxBitrate = aCodecSettings->maxBitrate;
codec.mMaxFramerate = aCodecSettings->maxFramerate;
if (aCodecSettings->codecSpecific.H264.packetizationMode == 1) {
mMaxPayloadSize = 4*1024*1024; // insanely large
aMaxPayloadSize = 4*1024*1024; // insanely large
}
// Pass dummy codecSpecific data for now...
nsTArray<uint8_t> codecSpecific;
GMPErr err = mGMP->InitEncode(mCodecParams, codecSpecific, this, 1, mMaxPayloadSize);
GMPErr err = mGMP->InitEncode(codec, codecSpecific, this, 1, aMaxPayloadSize);
if (err != GMPNoErr) {
return WEBRTC_VIDEO_CODEC_ERROR;
}
@ -245,38 +245,6 @@ WebrtcGmpVideoEncoder::Encode_g(const webrtc::I420VideoFrame* aInputImage,
return WEBRTC_VIDEO_CODEC_ERROR;
}
if (aInputImage->width() != mCodecParams.mWidth ||
aInputImage->height() != mCodecParams.mHeight) {
LOGD(("GMP Encode: resolution change from %ux%u to %ux%u",
mCodecParams.mWidth, mCodecParams.mHeight, aInputImage->width(), aInputImage->height()));
mGMP->Close();
// OpenH264 codec (at least) can't handle dynamic input resolution changes
// re-init the plugin when the resolution changes
// XXX allow codec to indicate it doesn't need re-init!
nsTArray<nsCString> tags;
tags.AppendElement(NS_LITERAL_CSTRING("h264"));
if (NS_WARN_IF(NS_FAILED(mMPS->GetGMPVideoEncoder(&tags,
NS_LITERAL_STRING(""),
&mHost,
&mGMP)))) {
mGMP = nullptr;
mHost = nullptr;
return WEBRTC_VIDEO_CODEC_ERROR;
}
mCodecParams.mWidth = aInputImage->width();
mCodecParams.mHeight = aInputImage->height();
// Pass dummy codecSpecific data for now...
nsTArray<uint8_t> codecSpecific;
GMPErr err = mGMP->InitEncode(mCodecParams, codecSpecific, this, 1, mMaxPayloadSize);
if (err != GMPNoErr) {
return WEBRTC_VIDEO_CODEC_ERROR;
}
}
GMPVideoFrame* ftmp = nullptr;
GMPErr err = mHost->CreateFrame(kGMPI420VideoFrame, &ftmp);
if (err != GMPNoErr) {

View File

@ -92,8 +92,6 @@ private:
nsCOMPtr<nsIThread> mGMPThread;
GMPVideoEncoderProxy* mGMP;
GMPVideoHost* mHost;
GMPVideoCodec mCodecParams;
uint32_t mMaxPayloadSize;
webrtc::EncodedImageCallback* mCallback;
uint64_t mCachedPluginId;
};

View File

@ -1719,11 +1719,12 @@ static int vcmEnsureExternalCodec(
// Register H.264 codec.
if (send) {
VideoEncoder* encoder = nullptr;
VideoEncoder* encoder = nullptr;
#ifdef MOZ_WEBRTC_OMX
encoder = OMXVideoCodec::CreateEncoder(OMXVideoCodec::CodecType::CODEC_H264);
encoder = OMXVideoCodec::CreateEncoder(
OMXVideoCodec::CodecType::CODEC_H264);
#else
encoder = mozilla::GmpVideoCodec::CreateEncoder();
encoder = mozilla::GmpVideoCodec::CreateEncoder();
#endif
if (encoder) {
return conduit->SetExternalSendCodec(config, encoder);
@ -2310,15 +2311,16 @@ int vcmGetH264SupportedPacketizationModes()
*/
uint32_t vcmGetVideoH264ProfileLevelID()
{
// For OMX, constrained baseline level 1.2 (via a pref)
// constrained baseline level 1.2
// XXX make variable based on openh264 and OMX support
#ifdef MOZ_WEBRTC_OMX
// Max resolution CIF; we should include max-mbps
int32_t level = 13; // minimum suggested for WebRTC spec
vcmGetVideoLevel(0, &level);
level &= 0xFF;
level |= 0x42E000;
return (uint32_t) level;
return 0x42E00C;
#else
// XXX See bug 1043515 - we may want to support a higher profile than
// 1.3, depending on hardware(?)
return 0x42E00D;
#endif
}
/**
@ -2784,13 +2786,6 @@ static short vcmGetVideoPref(uint16_t codec,
return VCM_ERROR;
}
short vcmGetVideoLevel(uint16_t codec,
int32_t *level) {
return vcmGetVideoPref(codec,
"media.navigator.video.h264.level",
level);
}
short vcmGetVideoMaxFs(uint16_t codec,
int32_t *max_fs) {
return vcmGetVideoPref(codec,

View File

@ -1083,11 +1083,14 @@ int vcmOnSdpParseError(const char *peercconnection, const char *message);
*/
int vcmDisableRtcpComponent(const char *peerconnection, int level);
short vcmGetVideoLevel(uint16_t codec, int32_t *level);
short vcmGetVideoMaxFs(uint16_t codec, int32_t *max_fs);
short vcmGetVideoMaxFr(uint16_t codec, int32_t *max_fr);
short vcmGetVideoMaxBr(uint16_t codec, int32_t *max_br);
short vcmGetVideoMaxMbps(uint16_t codec, int32_t *max_mbps);
short vcmGetVideoPreferredCodec(int32_t *preferred_codec);
//Using C++ for gips. This is the end of extern "C" above.

View File

@ -77,16 +77,7 @@ int VCMContentMetricsProcessing::UpdateContentData(
if (contentMetrics == NULL) {
return VCM_OK;
}
#if defined(WEBRTC_GONK)
// "average" values that should yield kDefault in qm_select.cc
contentMetrics->motion_magnitude = 0.05f;
contentMetrics->spatial_pred_err = 0.03f;
contentMetrics->spatial_pred_err_h = 0.03f;
contentMetrics->spatial_pred_err_v = 0.03f;
return VCM_OK;
#else
return ProcessContent(contentMetrics);
#endif
}
int VCMContentMetricsProcessing::ProcessContent(

View File

@ -60,10 +60,6 @@ void VCMQmMethod::UpdateContent(const VideoContentMetrics* contentMetrics) {
}
void VCMQmMethod::ComputeMotionNFD() {
#if defined(WEBRTC_GONK)
motion_.value = (kHighMotionNfd + kLowMotionNfd)/2;
motion_.level = kDefault;
#else
if (content_metrics_) {
motion_.value = content_metrics_->motion_magnitude;
}
@ -75,15 +71,9 @@ void VCMQmMethod::ComputeMotionNFD() {
} else {
motion_.level = kDefault;
}
#endif
}
void VCMQmMethod::ComputeSpatial() {
#if defined(WEBRTC_GONK)
float scale2 = image_type_ > kVGA ? kScaleTexture : 1.0;
spatial_.value = (kHighTexture + kLowTexture)*scale2/2;
spatial_.level = kDefault;
#else
float spatial_err = 0.0;
float spatial_err_h = 0.0;
float spatial_err_v = 0.0;
@ -105,7 +95,6 @@ void VCMQmMethod::ComputeSpatial() {
} else {
spatial_.level = kDefault;
}
#endif
}
ImageType VCMQmMethod::GetImageType(uint16_t width,

View File

@ -58,7 +58,6 @@ VideoContentMetrics* VPMContentAnalysis::ComputeContentMetrics(
if (VPM_OK != Initialize(inputFrame.width(), inputFrame.height()))
return NULL;
}
#if !defined(WEBRTC_GONK)
// Compute motion metrics
if (ca_Init_) {
// Only interested in the Y plane.
@ -76,7 +75,6 @@ VideoContentMetrics* VPMContentAnalysis::ComputeContentMetrics(
first_frame_ = false;
}
#endif
return ContentMetrics();
}
@ -125,12 +123,10 @@ int32_t VPMContentAnalysis::Initialize(int width, int height) {
return VPM_MEMORY;
}
#if !defined(WEBRTC_GONK)
prev_frame_.reset(new uint8_t[width_ * height_]); // Y only.
if (!prev_frame_) {
return VPM_MEMORY;
}
#endif
// ok, all initialized
ca_Init_ = true;

View File

@ -705,8 +705,7 @@ void ViEEncoder::DeliverFrame(int id,
return;
}
#endif
if (vcm_.AddVideoFrame(*decimated_frame,
vpm_.ContentMetrics()) != VCM_OK) {
if (vcm_.AddVideoFrame(*decimated_frame) != VCM_OK) {
WEBRTC_TRACE(webrtc::kTraceError,
webrtc::kTraceVideo,
ViEId(engine_id_, channel_id_),

View File

@ -303,7 +303,6 @@ pref("media.peerconnection.enabled", true);
pref("media.peerconnection.video.enabled", true);
pref("media.navigator.video.max_fs", 1200); // 640x480 == 1200mb
pref("media.navigator.video.max_fr", 30);
pref("media.navigator.video.h264.level", 12); // 0x42E00C - level 1.2
pref("media.navigator.video.h264.max_br", 700); // 8x10
pref("media.navigator.video.h264.max_mbps", 11880); // CIF@30fps
pref("media.peerconnection.video.h264_enabled", false);
@ -315,7 +314,6 @@ pref("media.peerconnection.enabled", true);
pref("media.peerconnection.video.enabled", true);
pref("media.navigator.video.max_fs", 0); // unrestricted
pref("media.navigator.video.max_fr", 0); // unrestricted
pref("media.navigator.video.h264.level", 31); // 0x42E01f - level 3.1
pref("media.navigator.video.h264.max_br", 0);
pref("media.navigator.video.h264.max_mbps", 0);
pref("media.peerconnection.video.h264_enabled", false);
@ -373,12 +371,7 @@ pref("media.navigator.enabled", true);
#endif
pref("media.getusermedia.screensharing.enabled", true);
#ifdef RELEASE_BUILD
pref("media.getusermedia.screensharing.allowed_domains", "");
#else
// temporary value, not intended for release - bug 1049087
pref("media.getusermedia.screensharing.allowed_domains", "mozilla.github.io");
#endif
// OS/X 10.6 and XP have screen/window sharing off by default due to various issues - Caveat emptor
pref("media.getusermedia.screensharing.allow_on_old_platforms", false);