Bug 1434946 - Report resolution change in settings already on first frame. r?jib
MozReview-Commit-ID: IzhdiHgVKOc
--- a/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp
+++ b/dom/media/webrtc/MediaEngineRemoteVideoSource.cpp
@@ -39,16 +39,18 @@ MediaEngineRemoteVideoSource::MediaEngin
, mCapEngine(aCapEngine)
, mScary(aScary)
, mMutex("MediaEngineRemoteVideoSource::mMutex")
, mRescalingBufferPool(/* zero_initialize */ false,
/* max_number_of_buffers */ 1)
, mSettings(MakeAndAddRef<media::Refcountable<MediaTrackSettings>>())
{
MOZ_ASSERT(aMediaSource != MediaSourceEnum::Other);
+ mSettings->mWidth.Construct(0);
+ mSettings->mHeight.Construct(0);
Init();
}
void
MediaEngineRemoteVideoSource::Init()
{
LOG((__PRETTY_FUNCTION__));
AssertIsOnOwningThread();
@@ -532,17 +534,18 @@ MediaEngineRemoteVideoSource::DeliverFra
frame_num++, aProps.width(), aProps.height(), dst_width, dst_height,
aProps.timeStamp(), aProps.ntpTimeMs(), aProps.renderTimeMs()));
#endif
bool sizeChanged = false;
{
MutexAutoLock lock(mMutex);
// implicitly releases last image
- sizeChanged = mImage && image && mImage->GetSize() != image->GetSize();
+ sizeChanged = (!mImage && image) ||
+ (mImage && image && mImage->GetSize() != image->GetSize());
mImage = image.forget();
mImageSize = mImage->GetSize();
}
if (sizeChanged) {
NS_DispatchToMainThread(NS_NewRunnableFunction(
"MediaEngineRemoteVideoSource::FrameSizeChange",
[settings = mSettings, dst_width, dst_height]() mutable {