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}
diff --git a/sdk/objc/Framework/Classes/Metal/RTCMTLRenderer.h b/sdk/objc/Framework/Classes/Metal/RTCMTLRenderer.h
index e279b09..244736d 100644
--- a/sdk/objc/Framework/Classes/Metal/RTCMTLRenderer.h
+++ b/sdk/objc/Framework/Classes/Metal/RTCMTLRenderer.h
@@ -46,10 +46,16 @@
 @end
 
 /**
- * Implementation of RTCMTLRenderer protocol for rendering native nv12 video frames.
+ * Implementation of RTCMTLRenderer protocol.
  */
 NS_AVAILABLE(10_11, 9_0)
 @interface RTCMTLRenderer : NSObject<RTCMTLRenderer>
+
+/** @abstract   A wrapped RTCVideoRotation, or nil.
+    @discussion When not nil, the frame rotation is ignored when rendering.
+ */
+@property(atomic, nullable) NSValue *rotationOverride;
+
 @end
 
 NS_ASSUME_NONNULL_END