| commit | 14d4e9f186952f02323ec43750252accb7ad5012 | [log] [tgz] |
|---|---|---|
| author | Saúl Ibarra Corretgé <saghul@jitsi.org> | Tue May 02 08:00:54 2023 |
| committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue May 02 12:08:56 2023 |
| tree | d8f7edfd66e41a60106a484beb389ac8d0bb276e | |
| parent | f42cfc56a989fd09f8cb894b72e07b2beab59e2f [diff] |
Fix crash in RTCMTLVideoView when trying to draw an invalid sized frame Bug: webrtc:14892 Change-Id: I6321380444fa1de34c64fe72b587f1f5b245fad8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304000 Commit-Queue: Kári Helgason <kthelgason@webrtc.org> Reviewed-by: Kári Helgason <kthelgason@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39971}
diff --git a/sdk/objc/components/renderer/metal/RTCMTLI420Renderer.mm b/sdk/objc/components/renderer/metal/RTCMTLI420Renderer.mm index f4c76fa..eba8800 100644 --- a/sdk/objc/components/renderer/metal/RTCMTLI420Renderer.mm +++ b/sdk/objc/components/renderer/metal/RTCMTLI420Renderer.mm
@@ -116,6 +116,13 @@ return NO; } + // Chroma size must be >= 1 as per the Apple documentation, so skip ?x1 + // and 1x? frames. + // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=14892 + if (frame.width < 2 || frame.height < 2) { + return NO; + } + id<RTC_OBJC_TYPE(RTCI420Buffer)> buffer = [frame.buffer toI420]; // Luma (y) texture.