8673 Commits

Author SHA1 Message Date
terelius
6b1968ea70 Allow passing in strings of length zero to FileWrapper::Write without closing the file.
BUG=webrtc:5253

Review URL: https://codereview.webrtc.org/1714503003

Cr-Commit-Position: refs/heads/master@{#12132}
2016-03-29 08:40:04 +00:00
peah
d4f6ea70b5 Re-reland of Added a bitexactness test for the echo canceller in the audio processing module.
This is a reland of the CL https://codereview.webrtc.org/1827833006/ that was reverted due to problems of the bitexactness of the Chromium Android64 and Android32 bots.

The reverting CL was https://codereview.webrtc.org/1827863003/

This new action taken in this CL is to disable the test for all Android, ARM and ARM64 platforms

TBR=henrik.lundin@webrtc.org
BUG=webrtc:5337

Review URL: https://codereview.webrtc.org/1829193002

Cr-Commit-Position: refs/heads/master@{#12131}
2016-03-29 07:37:51 +00:00
Per
85e46a8f13 Fix PeerConnectionInterfaceTest.CloseAndTestStreamsAndStates
Increase delay for waiting for AudioSource state change to 10ms to hopefully fix flake that started happening on the 24th of Mars after landing https://codereview.webrtc.org/1816143002/.

TBR=deadbeef@webrtc.org
BUG=5692

Review URL: https://codereview.webrtc.org/1844503002 .

Cr-Commit-Position: refs/heads/master@{#12130}
2016-03-29 07:18:16 +00:00
peah
4b0c74172e Added a bitexactness test for the intelligibility enhancer in the audio processing module
BUG=webrtc:5242

Review URL: https://codereview.webrtc.org/1814723003

Cr-Commit-Position: refs/heads/master@{#12129}
2016-03-29 06:43:57 +00:00
Jon Hjelle
3a2f7e01ef Build dynamic framework with podspec for Objective-C API.
BUG=
R=tkchin@webrtc.org

Review URL: https://codereview.webrtc.org/1829783003 .

Patch from Jon Hjelle <hjon@webrtc.org>.

Cr-Commit-Position: refs/heads/master@{#12128}
2016-03-25 21:49:18 +00:00
peah
918d015737 Revert of Added a bitexactness test for the gain controller in the audio processing module. (patchset #3 id:60001 of https://codereview.webrtc.org/1812433002/ )
Reason for revert:
This CL are breaking some of the Android buildbots in Chromium.

The CL will need be be revised to exclude the Android platform.

Original issue's description:
> Added a bitexactness test for the gain controller in the audio processing module.
>
> BUG=webrtc:5339
>
> Committed: https://crrev.com/a49dc36976da44f3d6d75aed2dcab93fe14fc3a0
> Cr-Commit-Position: refs/heads/master@{#12124}

TBR=henrik.lundin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5339

Review URL: https://codereview.webrtc.org/1829323002

Cr-Commit-Position: refs/heads/master@{#12127}
2016-03-25 07:50:47 +00:00
skvlad
303b3c21a4 Added the JNI interface to get and set RtpParameters and the maximum bitrate limits.
Defined a JavaCollection convenience class to simplify iterating over collections from within JNI code
Follow-up to https://codereview.webrtc.org/1788583004/.
BUG=

Review URL: https://codereview.webrtc.org/1819553002

Cr-Commit-Position: refs/heads/master@{#12125}
2016-03-25 02:36:54 +00:00
peah
a49dc36976 Added a bitexactness test for the gain controller in the audio processing module.
BUG=webrtc:5339

Review URL: https://codereview.webrtc.org/1812433002

Cr-Commit-Position: refs/heads/master@{#12124}
2016-03-25 00:59:29 +00:00
minyue
84db6fa7f5 Adding BlockMeanCalculator for AEC.
This will improve the readability of AEC code.

BUG=

Review URL: https://codereview.webrtc.org/1805633006

Cr-Commit-Position: refs/heads/master@{#12123}
2016-03-24 21:36:33 +00:00
peah
7c931ad698 Fixed a potential deadlock problem in the AGC
where the render and capture locks were
acquired in the wrong order.

BUG=webrtc:5339

Review URL: https://codereview.webrtc.org/1827013002

Cr-Commit-Position: refs/heads/master@{#12122}
2016-03-24 19:52:11 +00:00
solenberg
1c2af8e319 Avoid clicks when muting/unmuting a voe::Channel.
Muting/unmuting is triggered in the PeerConnection API by calling setEnable() on an audio track.

BUG=webrtc:5671

Review URL: https://codereview.webrtc.org/1810413002

Cr-Commit-Position: refs/heads/master@{#12121}
2016-03-24 17:36:06 +00:00
David Benjamin
60d5f3f4b7 Don't override curve preferences in BoringSSL.
BoringSSL has since fixed OpenSSL's API wart and can do ECDHE by default as a server. Notably, removing this call means that X25519 may be used as either client or server.

R=torbjorng@webrtc.org
TBR=juberti@webrtc.org

BUG=webrtc:5674

Review URL: https://codereview.webrtc.org/1823213002 .

Cr-Commit-Position: refs/heads/master@{#12120}
2016-03-24 17:28:31 +00:00
guidou
027fd8f907 Revert of Added a bitexactness test for the echo canceller in the audio processing module. (patchset #2 id:40001 of https://codereview.webrtc.org/1827833006/ )
Reason for revert:
This CL is breaking some WebRTC Android bots.
Example: https://build.chromium.org/p/client.webrtc/builders/Android32%20Tests%20%28L%20Nexus5%29/builds/6038

Original issue's description:
> Reland of Added a bitexactness test for the echo canceller in the audio processing module.
>
> This is a reland of the CL https://codereview.webrtc.org/1809613002/ that was reverted due to problems of the bitexactness of the Chromium Android64 bots.
>
> The reverting CL was https://codereview.webrtc.org/1824583003/
>
> TBR=henrik.lundin@webrtc.org
> BUG=webrtc:5337
>
> Committed: https://crrev.com/e29f0e2515934d5286950da7fc58b548132469ff
> Cr-Commit-Position: refs/heads/master@{#12114}

TBR=peah@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5337

Review URL: https://codereview.webrtc.org/1827863003

Cr-Commit-Position: refs/heads/master@{#12119}
2016-03-24 13:44:06 +00:00
perkj
7ca142e047 ReAdd dummy MediaStreamTrack::set_state to make Chrome build happy.
https://codereview.webrtc.org/1816143002/ broke the Chrome test builds. The method is only used for tests and adding a dummy implementation seem to be enough.

BUG=webrtc:5426
R=guidou@webrtc.org

Review URL: https://codereview.webrtc.org/1828233002 .

Cr-Commit-Position: refs/heads/master@{#12118}
2016-03-24 13:19:24 +00:00
Torbjorn Granlund
9adc91d9cc Revert of Remove code interfacing legacy openssl. (patchset #3 id:40001 of https://codereview.webrtc.org/1808763002/ )
Reason for revert:
We will make it possible to link to BoringSSL for WebRTC's usages of the crypto APIs and OpenSSL for other usages in the same binary. Once that is completed, we will reland this.

Original issue's description:
> Remove code interfacing legacy openssl.
>
> BUG=webrtc:5664
>
> Committed: https://crrev.com/4cd331beade6de16c073dcdaf89c4e038bdbf73f
> Cr-Commit-Position: refs/heads/master@{#12041}

TBR=tommi@webrtc.org,davidben@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5664

Review URL: https://codereview.webrtc.org/1828773003 .

Cr-Commit-Position: refs/heads/master@{#12117}
2016-03-24 13:05:18 +00:00
perkj
4a3a135e68 More cleanup of cricket::VideoCapturer
Remove unused state CS_PAUSED and dummy implementation of Pause()
Remove unused SignalVideoFrame

This should now be possible since https://codereview.chromium.org/1745923002/ has landed.

BUG=webrtc:5426

Review URL: https://codereview.webrtc.org/1832793002

Cr-Commit-Position: refs/heads/master@{#12116}
2016-03-24 11:39:56 +00:00
perkj
d61bf803d2 Removed MediaStreamTrackInterface::set_state
The track state should be implicitly set by the underlying source.
This removes the public method and cleans up how AudioRtpReceiver is created. Further more it cleans up how the RtpReceivers are destroyed.

Note that this cl depend on https://codereview.webrtc.org/1790633002.
BUG=webrtc:5426

Review URL: https://codereview.webrtc.org/1816143002

Cr-Commit-Position: refs/heads/master@{#12115}
2016-03-24 10:16:23 +00:00
peah
e29f0e2515 Reland of Added a bitexactness test for the echo canceller in the audio processing module.
This is a reland of the CL https://codereview.webrtc.org/1809613002/ that was reverted due to problems of the bitexactness of the Chromium Android64 bots.

The reverting CL was https://codereview.webrtc.org/1824583003/

TBR=henrik.lundin@webrtc.org
BUG=webrtc:5337

Review URL: https://codereview.webrtc.org/1827833006

Cr-Commit-Position: refs/heads/master@{#12114}
2016-03-24 09:45:58 +00:00
terelius
85fa7d5311 Move swap_queue.h to base/
This will let us use the SwapQueue as a message queue for the event log's output thread. See https://codereview.webrtc.org/1687703002/

Review URL: https://codereview.webrtc.org/1812823007

Cr-Commit-Position: refs/heads/master@{#12113}
2016-03-24 08:51:59 +00:00
nisse
a4f07887c7 Delete default_send_ssrc_.
BUG=webrtc:5426

Review URL: https://codereview.webrtc.org/1814233002

Cr-Commit-Position: refs/heads/master@{#12112}
2016-03-24 08:02:55 +00:00
honghaiz
a0c44eaa82 Add 16-bit network id to the candidate signaling.
Also include that in the stun-ping request as part of the
network-info attribute.
Change the network cost to be 16 bits.

BUG=

Review URL: https://codereview.webrtc.org/1815473002

Cr-Commit-Position: refs/heads/master@{#12110}
2016-03-23 23:07:54 +00:00
Alex Glaznev
887a19b9d2 Switch to using EGL 1.0 for rendering and HW codec.
Using EGL 1.4 may cause texture rendering deadlock on some
Android devices.

R=jiayl@webrtc.org

Review URL: https://codereview.webrtc.org/1829923002 .

Cr-Commit-Position: refs/heads/master@{#12109}
2016-03-23 22:01:54 +00:00
tkchin
1bd9553d2e Add visibility flag to GYP.
BUG=

Review URL: https://codereview.webrtc.org/1826453004

Cr-Commit-Position: refs/heads/master@{#12108}
2016-03-23 20:19:23 +00:00
tkchin
24a62d5d83 Remove WEBRTC_IOS from RTCPeerConnectionFactory public header.
We shouldn't make external users define this flag to use our file.

BUG=

Review URL: https://codereview.webrtc.org/1825713003

Cr-Commit-Position: refs/heads/master@{#12106}
2016-03-23 18:29:32 +00:00
Taylor Brandstetter
a8415fe9ea Adding comments about threading around CreatePeerConnectionFactory.
This has confused a lot of developers (understandably).

R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1828463002 .

Cr-Commit-Position: refs/heads/master@{#12105}
2016-03-23 17:38:16 +00:00
danilchap
f752f85f3d [rtcp] Pli::Parse updated not to use RTCPUtility
BUG=webrtc:5260
R=åsapersson

Review URL: https://codereview.webrtc.org/1811933002

Cr-Commit-Position: refs/heads/master@{#12104}
2016-03-23 15:25:30 +00:00
nisse
7ade7b3282 Delete class webrtc::VideoRenderer and its header file.
To replace the SmoothsRenderedFrames method, added a corresponding
flag to VideoReceiveStream::Config instead.

BUG=webrtc:5426

Review URL: https://codereview.webrtc.org/1818023002

Cr-Commit-Position: refs/heads/master@{#12102}
2016-03-23 11:48:17 +00:00
nisse
1509fa1aa9 Delete cricket::VideoRenderer.
TBR=glaznev@webrtc.org (deleting an #include in main_wnd.h)
BUG=webrtc:5426

Review URL: https://codereview.webrtc.org/1819103003

Cr-Commit-Position: refs/heads/master@{#12101}
2016-03-23 11:06:05 +00:00
solenberg
de3185521b Add Mic Toggle button to AppRTCDemo (Android).
BUG=webrtc:5671

Review URL: https://codereview.webrtc.org/1820113003

Cr-Commit-Position: refs/heads/master@{#12100}
2016-03-23 09:57:12 +00:00
Niels Möller
8f59762897 Delete VideoRendererInterface.
Use in chromium was deleted a few days ago.

BUG=webrtc:5426
R=magjed@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org

Review URL: https://codereview.webrtc.org/1817473002 .

Cr-Commit-Position: refs/heads/master@{#12099}
2016-03-23 09:33:19 +00:00
perkj
c8f952deaa Propagate MediaStreamSource state to video tracks the same way as audio.
Also removes unused track states kLive and kFailed.
Since this also required a Video source to exist in all unit tests that create a track, a FakeVideoTrackSource is added and used in tests.

BUG=webrtc:5426

Review URL: https://codereview.webrtc.org/1790633002

Cr-Commit-Position: refs/heads/master@{#12098}
2016-03-23 07:34:01 +00:00
emircan
2df29cb673 Remove redefined macros from BitrateAdjuster
This CL removes the include that redefines Chrome macros, so Chrome
can include this header in https://codereview.chromium.org/1818903004/.

Review URL: https://codereview.webrtc.org/1824833002

Cr-Commit-Position: refs/heads/master@{#12095}
2016-03-22 23:05:35 +00:00
deadbeef
dbe2b8744f Adding support for RTCRtpEncodingParameters.active flag.
This will allow a sender to stop/start sending media on the
application's demand.

Among other things, this can allow an application to set a track on a
sender while the encoding(s) are inactive, allowing the encoder to be
initialized for that track, then later set the encodings to "active"
to instantly start sending the track.

Review URL: https://codereview.webrtc.org/1822923002

Cr-Commit-Position: refs/heads/master@{#12094}
2016-03-22 22:42:07 +00:00
skvlad
7a43d253f9 Make the audio channel communicate network state changes to the call.
This change enables voice-only calls to keep track of the network state.
This is only a partial fix - the last modality to change state controls
the state for the entire call, so a call with a failed video transport
will also stop sending audio packets. Handling this condition correctly
would require the call to keep track of network state for each media
type separately, and take care of conditions such as a failed video
channel getting removed, while a functioning audio channel remains.

BUG=webrtc:5307

Review URL: https://codereview.webrtc.org/1757683002

Cr-Commit-Position: refs/heads/master@{#12093}
2016-03-22 22:32:31 +00:00
Peter Boström
01bcbd0df6 Make Android min-resolution rotation-agnostic.
Min resolution shouldn't have anything to do with CVO being enabled or
not, nor device rotation.

BUG=webrtc:5678
R=glaznev@webrtc.org
TBR=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1824083002 .

Cr-Commit-Position: refs/heads/master@{#12092}
2016-03-22 20:44:43 +00:00
danilchap
56036ffc45 cleanup RTCPSender
rtc::scoped_ptr -> std::unique_ptr.
CrticalSectionWrapper -> CriticalSection.
assert -> DCHECK.
removed unused headers.
removed unused using.
removed unused member field.

BUG=webrtc:5520, webrtc:5565
R=åsapersson

Review URL: https://codereview.webrtc.org/1806603002

Cr-Commit-Position: refs/heads/master@{#12091}
2016-03-22 18:14:16 +00:00
peah
8d2ade65b1 Reland of Added a bitexactness test for the echo control mobile in the audio processing module
The reverted CL https://codereview.webrtc.org/1805373002/ was reverted due to an error in another CL.

BUG=webrtc:5663
TBR=henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1822653005

Cr-Commit-Position: refs/heads/master@{#12090}
2016-03-22 18:05:17 +00:00
Tze Kwang Chin
f3cb49f3ef Refactor some ObjC API init methods.
initWithFactory: is clumsy and makes classes difficult to mock out in
tests. By keeping methods on the factory, we can simply mock out the
factory's methods instead.

We can consider adding regular Obj-C like ctors if we move to making
the factory a singleton, but that requires further discussion.

BUG=
R=haysc@webrtc.org, hjon@webrtc.org

Review URL: https://codereview.webrtc.org/1820193002 .

Cr-Commit-Position: refs/heads/master@{#12089}
2016-03-22 17:58:04 +00:00
Peter Boström
09c3a1e291 Use rtc::scoped_refptr for WebRtcVideoCapturer.
Un-breaks peerconnection_client which would instantly use-after-free on
an allocated VCM because it wasn't building a scoped_refptr so all
references to the VCM were dropped.

BUG=webrtc:5229
TBR=tommi@webrtc.org
TEST=Run peerconnection_client locally, verify that there's no crash.

Review URL: https://codereview.webrtc.org/1817953005 .

Cr-Commit-Position: refs/heads/master@{#12088}
2016-03-22 16:17:47 +00:00
magjed
2943f015b6 Reland of VCMCodecTimer: Change filter from max to 95th percentile (patchset #1 id:1 of https://codereview.webrtc.org/1808693002/ )
This CL is expected to lower goog_max_decode_ms and total_delay_incl_network/receiver_time for screenshare.

Reason for revert:
This CL did not cause the unexpected goog_encode_usage_percent and goog_avg_encode_ms perf changes.

Original issue's description:
> Revert of VCMCodecTimer: Change filter from max to 95th percentile (patchset #5 id:180001 of https://codereview.webrtc.org/1742323002/ )
>
> Reason for revert:
> Caused unexpected perf stats changes, see http://crbug/594575.
>
> Original issue's description:
> > VCMCodecTimer: Change filter from max to 95th percentile
> >
> > The purpose with this change is to make the filter more robust against anomalies. googMaxDecodeMs is expected to drop a litte by this.
> >
> > BUG=b/27306053
> >
> > Committed: https://crrev.com/4bf0c717740d1834e810ea5f32b3c4306c64235f
> > Cr-Commit-Position: refs/heads/master@{#11952}
>
> TBR=stefan@webrtc.org,philipel@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=594575,b/27306053
>
> Committed: https://crrev.com/c4a74e95b545f4752d4e72961ac03c1380d4bc1f
> Cr-Commit-Position: refs/heads/master@{#12018}

TBR=stefan@webrtc.org,philipel@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=594575,b/27306053

Review URL: https://codereview.webrtc.org/1824763003

Cr-Commit-Position: refs/heads/master@{#12087}
2016-03-22 12:12:12 +00:00
Peter Boström
81cbd92444 Revert of Initialize/configure video encoders asychronously. (patchset #4 id:60001 of https://codereview.webrtc.org/1757313002/ )
Reason for revert:
Breaks RTCVideoEncoder which has incorrect assumptions on where InitEncode etc. is called from. Temporarily reverting until RTCVideoEncoder has been updated.

Original issue's description:
> Initialize/configure video encoders asychronously.
>
> Greatly speeds up setRemoteDescription() by moving encoder initialization
> off the main worker thread, which is free to move onto gathering ICE
> candidates and other tasks while InitEncode() is performed. It also
> un-blocks PeerConnection GetStats() which is no longer blocked on
> encoder initialization.
>
> BUG=webrtc:5410
> R=stefan@webrtc.org
>
> Committed: fb647a67be

R=stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:595274, chromium:595308, webrtc:5410

Review URL: https://codereview.webrtc.org/1821983002 .

Cr-Commit-Position: refs/heads/master@{#12086}
2016-03-22 11:19:14 +00:00
sdefresne
60624cd6bf [iOS] Link with base/maccocoathreadhelper.mm on iOS.
rtc::ThreadManager::ThreadManager() calls rtc::InitCocoaMultiThreading()
on iOS so add base/maccocoathreadhelper.mm to the file to build on iOS.

Fixes the following linker error:

Undefined symbols for architecture x86_64:
  "rtc::InitCocoaMultiThreading()", referenced from:
      rtc::ThreadManager::ThreadManager() in librtc_base.a(thread.o)

BUG=459705
NOTRY=True

Review URL: https://codereview.webrtc.org/1810373003

Cr-Commit-Position: refs/heads/master@{#12085}
2016-03-22 10:32:22 +00:00
minyue
6a85d3450c Fixing UpdateLevel function in AEC.
From an earlier CL, we start to feed UpdateLevel() with power instead of energy. I found that UpdateLevel() is still taking the input as energy and normalize it. This CL fixes this.

The earlier CL is
https://codereview.webrtc.org/1542573002/

BUG=

Review URL: https://codereview.webrtc.org/1810773003

Cr-Commit-Position: refs/heads/master@{#12084}
2016-03-22 09:15:01 +00:00
philipel
2cb73413f4 Moved sequence number specific operations from mod_ops.h
to sequence_number_util.h

Also in this CL:
  - Implemented a MinDiff function which finds the smallest diff of two
    wrapping numbers.
  - Implemented comparators for sequence numbers.

BUG=
R=mflodman@webrtc.org, tommi@webrtc.org, torbjorng@webrtc.org

Review URL: https://codereview.webrtc.org/1814753002 .

Cr-Commit-Position: refs/heads/master@{#12083}
2016-03-22 09:03:55 +00:00
sprang
53cf3463c0 Fix race condition in EventTimerPosix
The intended signalling from StartTimer() to Process() is that
created_at_.tv_sec is set to 0, and timer_event_->Set() is then called
in order to wake the process thread from timer_event_->Wait(). When this
happens the process thread will return early and the run Process()
again. This time it will pick up created_at_.tv_sec = 0 and run a new
Wait() call with the desired end time.

However if the process thread was NOT blocking on timer_event_->Wait()
when timer_event_->Set() was called from StartTimer() it will mean that
the first call to timer_event_->Wait() from Process(), AFTER the new
time has been configured (count_ = 1), will return early.

If the timer is not periodic it means that Set() will never be called,
and any calls will Wait() will block until the time out.

The solution is to always reset the event in timer_event_ on the first
call to timerEvent_->Wait(), after a timer has started.

Also some general cleanup.

BUG=

Review URL: https://codereview.webrtc.org/1812533002

Cr-Commit-Position: refs/heads/master@{#12082}
2016-03-22 08:51:46 +00:00
Alex Glaznev
e56b99ed02 Update CPU Monitor to report CPU frequency and battery level.
R=wzh@webrtc.org

Review URL: https://codereview.webrtc.org/1813053007 .

Cr-Commit-Position: refs/heads/master@{#12081}
2016-03-21 23:24:48 +00:00
Tze Kwang Chin
307a0922c5 Support delayed AudioUnit initialization.
Applications can choose to decide when to give up control of the
AVAudioSession to WebRTC. Otherwise, behavior should be
unchanged.

Adds a toggle to AppRTCDemo so developers can see the different
paths.

BUG=
R=haysc@webrtc.org

Review URL: https://codereview.webrtc.org/1822543002 .

Cr-Commit-Position: refs/heads/master@{#12080}
2016-03-21 20:58:01 +00:00
hjon
bc73fe1aad Move build scripts to webrtc/build/ios
BUG=
NOTRY=True

Review URL: https://codereview.webrtc.org/1801943003

Cr-Commit-Position: refs/heads/master@{#12079}
2016-03-21 18:38:35 +00:00
sdefresne
0db3db94e5 Put config in sync between gyp and gn.
webrtc/base/base.gyp unconditionally set SSL_USE_OPENSSL and
HAVE_OPENSSL_SSL_H, fix webrtc/base/BUILD.gn to do the same.

Better implementation than https://codereview.webrtc.org/1441323002
to fix the same underlying issue (i.e. compilation on iOS).

BUG=459705

Review URL: https://codereview.webrtc.org/1812213002

Cr-Commit-Position: refs/heads/master@{#12078}
2016-03-21 18:20:33 +00:00
Sergey Ulanov
0c4de568a6 Fix potential crashes in the screen capturer on Mac
ScreenCapturerMac wasn't handling the following two cases properly
which could cause crashes:
 1. CGDisplayCreateImage() returns image with depth other than 32-bit
 2. CGDisplayCreateImage() returns image with dimensions different
    from expected (e.g. when screen resolution is being changed).

I suspect that (2) was causing the linked bug.

BUG=crbug.com/504927
R=jiayl@webrtc.org

Review URL: https://codereview.webrtc.org/1816723002 .

Cr-Commit-Position: refs/heads/master@{#12077}
2016-03-21 18:18:53 +00:00