Fix rendering tests of RTCMTLVideoViewTests to work as expected

In https://webrtc-review.googlesource.com/c/src/+/244420,
I added sanity check of RTCVideoFrame in RTCMTLVideoView, but I forgot
to modify the related tests.

Fix this by adding the appropriate property stubs to RTCVideoFrame stubs
created in RTCMTLVideoViewTests.

Bug: webrtc:13990, webrtc:13490
Change-Id: I21f0f75cd052e4255e1eee5f39ffdd50c2f8e61b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260420
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#36714}
This commit is contained in:
Byoungchan Lee
2022-04-29 16:10:42 +09:00
committed by WebRTC LUCI CQ
parent e8aa4155a3
commit d7de6e5ea4

View File

@ -21,6 +21,9 @@
#import "components/renderer/metal/RTCMTLNV12Renderer.h"
#import "components/video_frame_buffer/RTCCVPixelBuffer.h"
static size_t kBufferWidth = 200;
static size_t kBufferHeight = 200;
// Extension of RTC_OBJC_TYPE(RTCMTLVideoView) for testing purposes.
@interface RTC_OBJC_TYPE (RTCMTLVideoView)
(Testing)
@ -68,14 +71,21 @@
id frameMock = OCMClassMock([RTC_OBJC_TYPE(RTCVideoFrame) class]);
if (hasCVPixelBuffer) {
CVPixelBufferRef pixelBufferRef;
CVPixelBufferCreate(
kCFAllocatorDefault, 200, 200, kCVPixelFormatType_420YpCbCr8Planar, nil, &pixelBufferRef);
CVPixelBufferCreate(kCFAllocatorDefault,
kBufferWidth,
kBufferHeight,
kCVPixelFormatType_420YpCbCr8Planar,
nil,
&pixelBufferRef);
OCMStub([frameMock buffer])
.andReturn([[RTC_OBJC_TYPE(RTCCVPixelBuffer) alloc] initWithPixelBuffer:pixelBufferRef]);
} else {
OCMStub([frameMock buffer])
.andReturn([[RTC_OBJC_TYPE(RTCI420Buffer) alloc] initWithWidth:200 height:200]);
.andReturn([[RTC_OBJC_TYPE(RTCI420Buffer) alloc] initWithWidth:kBufferWidth
height:kBufferHeight]);
}
OCMStub([((RTC_OBJC_TYPE(RTCVideoFrame) *)frameMock) width]).andReturn(kBufferWidth);
OCMStub([((RTC_OBJC_TYPE(RTCVideoFrame) *)frameMock) height]).andReturn(kBufferHeight);
OCMStub([frameMock timeStampNs]).andReturn(arc4random_uniform(INT_MAX));
return frameMock;
}
@ -131,8 +141,6 @@
[self.classMock verify];
}
// TODO(crbug.com/webrtc/13990): method was not invoked: drawFrame.
#if !TARGET_IPHONE_SIMULATOR
- (void)testRTCVideoRenderFrameCallbackI420 {
// given
OCMStub([self.classMock isMetalAvailable]).andReturn(YES);
@ -257,7 +265,6 @@
[self.rendererNV12Mock verify];
}
#endif
- (void)testReportsSizeChangesToDelegate {
OCMStub([self.classMock isMetalAvailable]).andReturn(YES);