Metal rendering should account for cropping.

Also:
- added a rotation override to allow ignoring frame rotation
- fixed a couple of minor issues
- made it possible to run the MTKView without the DisplayLink

Bug: webrtc:9301
Change-Id: Ia83c152d9b6d45d56ceb80d287b5d3eacfaebddd
Reviewed-on: https://webrtc-review.googlesource.com/78282
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23452}
This commit is contained in:
Peter Hanspers
2018-05-23 16:30:00 +02:00
committed by Commit Bot
parent 942b360d82
commit fc4a9c9333
8 changed files with 268 additions and 98 deletions

View File

@ -10,6 +10,7 @@
#import <Foundation/Foundation.h>
#import "WebRTC/RTCVideoFrame.h"
#import "WebRTC/RTCVideoRenderer.h"
// Check if metal is supported in WebRTC.
@ -35,7 +36,21 @@ RTC_EXPORT
@property(nonatomic, weak) id<RTCVideoViewDelegate> delegate;
- (void)setVideoContentMode:(UIViewContentMode)mode;
@property(nonatomic) UIViewContentMode videoContentMode;
/** @abstract Enables/disables rendering.
*/
@property(nonatomic, getter=isEnabled) BOOL enabled;
/** @abstract If YES, the backing MTKView will use a display link to issue
draw calls.
@discussion Default is YES.
*/
@property(nonatomic) BOOL useDisplayLink;
/** @abstract Wrapped RTCVideoRotation, or nil.
*/
@property(nullable) NSValue* rotationOverride;
@end