Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

83 lines
2.9 KiB
C
Raw Normal View History

/*
* Copyright 2015 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#import <AVFoundation/AVFoundation.h>
#import <Foundation/Foundation.h>
#import <WebRTC/RTCMacros.h>
NS_ASSUME_NONNULL_BEGIN
typedef NS_ENUM(NSInteger, RTCVideoRotation) {
RTCVideoRotation_0 = 0,
RTCVideoRotation_90 = 90,
RTCVideoRotation_180 = 180,
RTCVideoRotation_270 = 270,
};
Reland of Delete all use of cricket::VideoFrame and cricket::WebRtcVideoFrame. (patchset #1 id:1 of https://codereview.webrtc.org/2471783002/ ) Reason for revert: Relanding after known downstream breakages have been fixed. Original issue's description: > Revert of Delete all use of cricket::VideoFrame and cricket::WebRtcVideoFrame. (patchset #7 id:120001 of https://codereview.webrtc.org/2383093002/ ) > > Reason for revert: > Breaks chrome, see https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/19019/steps/compile/logs/stdio > > Analysis: Chrome uses cricket::VideoFrame, without explicitly including webrtc/media/base/videoframe.h, and breaks when that file is no longer included by any other webrtc headers. Will reland after updating Chrome. > > Original issue's description: > > Delete all use of cricket::VideoFrame and cricket::WebRtcVideoFrame. > > > > Replaced with webrtc::VideoFrame. > > > > TBR=mflodman@webrtc.org > > BUG=webrtc:5682 > > > > Committed: https://crrev.com/45c8b8940042bd2574c39920804ade8343cefdba > > Cr-Commit-Position: refs/heads/master@{#14885} > > TBR=perkj@webrtc.org,pthatcher@webrtc.org,tkchin@webrtc.org,mflodman@webrtc.org,stefan@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:5682 > > Committed: https://crrev.com/7341ab8e2505c9763d208e069bda269018357e7d > Cr-Commit-Position: refs/heads/master@{#14886} TBR=perkj@webrtc.org,pthatcher@webrtc.org,tkchin@webrtc.org,mflodman@webrtc.org,stefan@webrtc.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=webrtc:5682 Review-Url: https://codereview.webrtc.org/2487633002 Cr-Commit-Position: refs/heads/master@{#15039}
2016-11-11 03:55:13 -08:00
// RTCVideoFrame is an ObjectiveC version of webrtc::VideoFrame.
RTC_EXPORT
@interface RTCVideoFrame : NSObject
/** Width without rotation applied. */
@property(nonatomic, readonly) int width;
/** Height without rotation applied. */
@property(nonatomic, readonly) int height;
@property(nonatomic, readonly) RTCVideoRotation rotation;
/** Accessing YUV data should only be done for I420 frames, i.e. if nativeHandle
* is null. It is always possible to get such a frame by calling
* newI420VideoFrame.
*/
Revert "Revert "Revert "Support more formats in RTCVideoFrame""" This reverts commit 7583390d1a3a7c4e9a77da0d77250abac0c34d1d. Reason for revert: Breaks unit tests Original change's description: > Revert "Revert "Support more formats in RTCVideoFrame"" > > This reverts commit 0789dab2cbd1617e94d7300e375163d42345f3d4. > > Reason for revert: Include obc_corevideoframebuffer target > > Original change's description: > > Revert "Support more formats in RTCVideoFrame" > > > > This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34. > > > > Reason for revert: Broke external clients > > > > Original change's description: > > > Support more formats in RTCVideoFrame > > > > > > Implement Obj-C version of webrtc::VideoFrameBuffer and use that in > > > RTCVideoFrame. > > > > > > Bug: webrtc:7785 > > > Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677 > > > Reviewed-on: https://chromium-review.googlesource.com/536773 > > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#18691} > > > > TBR=magjed@webrtc.org,andersc@webrtc.org > > > > Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: webrtc:7785 > > Reviewed-on: https://chromium-review.googlesource.com/542837 > > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#18697} > > TBR=magjed@webrtc.org,andersc@webrtc.org > > Change-Id: I1ef5313b4a6c56eb8c7fd02d95db62c4e3c00255 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:7785 > Reviewed-on: https://chromium-review.googlesource.com/542838 > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#18716} TBR=magjed@webrtc.org,andersc@webrtc.org Change-Id: Id12f33698eb02041607cb9a5c54f37f01bfac5b1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:7785 Reviewed-on: https://chromium-review.googlesource.com/544840 Reviewed-by: Anders Carlsson <andersc@webrtc.org> Commit-Queue: Anders Carlsson <andersc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#18718}
2017-06-22 13:06:39 +00:00
@property(nonatomic, readonly, nullable) const uint8_t *dataY;
@property(nonatomic, readonly, nullable) const uint8_t *dataU;
@property(nonatomic, readonly, nullable) const uint8_t *dataV;
@property(nonatomic, readonly) int strideY;
@property(nonatomic, readonly) int strideU;
@property(nonatomic, readonly) int strideV;
/** Timestamp in nanoseconds. */
@property(nonatomic, readonly) int64_t timeStampNs;
/** The native handle should be a pixel buffer on iOS. */
Revert "Revert "Revert "Support more formats in RTCVideoFrame""" This reverts commit 7583390d1a3a7c4e9a77da0d77250abac0c34d1d. Reason for revert: Breaks unit tests Original change's description: > Revert "Revert "Support more formats in RTCVideoFrame"" > > This reverts commit 0789dab2cbd1617e94d7300e375163d42345f3d4. > > Reason for revert: Include obc_corevideoframebuffer target > > Original change's description: > > Revert "Support more formats in RTCVideoFrame" > > > > This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34. > > > > Reason for revert: Broke external clients > > > > Original change's description: > > > Support more formats in RTCVideoFrame > > > > > > Implement Obj-C version of webrtc::VideoFrameBuffer and use that in > > > RTCVideoFrame. > > > > > > Bug: webrtc:7785 > > > Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677 > > > Reviewed-on: https://chromium-review.googlesource.com/536773 > > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#18691} > > > > TBR=magjed@webrtc.org,andersc@webrtc.org > > > > Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: webrtc:7785 > > Reviewed-on: https://chromium-review.googlesource.com/542837 > > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#18697} > > TBR=magjed@webrtc.org,andersc@webrtc.org > > Change-Id: I1ef5313b4a6c56eb8c7fd02d95db62c4e3c00255 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:7785 > Reviewed-on: https://chromium-review.googlesource.com/542838 > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#18716} TBR=magjed@webrtc.org,andersc@webrtc.org Change-Id: Id12f33698eb02041607cb9a5c54f37f01bfac5b1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:7785 Reviewed-on: https://chromium-review.googlesource.com/544840 Reviewed-by: Anders Carlsson <andersc@webrtc.org> Commit-Queue: Anders Carlsson <andersc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#18718}
2017-06-22 13:06:39 +00:00
@property(nonatomic, readonly) CVPixelBufferRef nativeHandle;
- (instancetype)init NS_UNAVAILABLE;
- (instancetype)new NS_UNAVAILABLE;
/** Initialize an RTCVideoFrame from a pixel buffer, rotation, and timestamp.
*/
- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer
rotation:(RTCVideoRotation)rotation
Revert "Revert "Revert "Support more formats in RTCVideoFrame""" This reverts commit 7583390d1a3a7c4e9a77da0d77250abac0c34d1d. Reason for revert: Breaks unit tests Original change's description: > Revert "Revert "Support more formats in RTCVideoFrame"" > > This reverts commit 0789dab2cbd1617e94d7300e375163d42345f3d4. > > Reason for revert: Include obc_corevideoframebuffer target > > Original change's description: > > Revert "Support more formats in RTCVideoFrame" > > > > This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34. > > > > Reason for revert: Broke external clients > > > > Original change's description: > > > Support more formats in RTCVideoFrame > > > > > > Implement Obj-C version of webrtc::VideoFrameBuffer and use that in > > > RTCVideoFrame. > > > > > > Bug: webrtc:7785 > > > Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677 > > > Reviewed-on: https://chromium-review.googlesource.com/536773 > > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#18691} > > > > TBR=magjed@webrtc.org,andersc@webrtc.org > > > > Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: webrtc:7785 > > Reviewed-on: https://chromium-review.googlesource.com/542837 > > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#18697} > > TBR=magjed@webrtc.org,andersc@webrtc.org > > Change-Id: I1ef5313b4a6c56eb8c7fd02d95db62c4e3c00255 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:7785 > Reviewed-on: https://chromium-review.googlesource.com/542838 > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#18716} TBR=magjed@webrtc.org,andersc@webrtc.org Change-Id: Id12f33698eb02041607cb9a5c54f37f01bfac5b1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:7785 Reviewed-on: https://chromium-review.googlesource.com/544840 Reviewed-by: Anders Carlsson <andersc@webrtc.org> Commit-Queue: Anders Carlsson <andersc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#18718}
2017-06-22 13:06:39 +00:00
timeStampNs:(int64_t)timeStampNs;
/** Initialize an RTCVideoFrame from a pixel buffer combined with cropping and
* scaling. Cropping will be applied first on the pixel buffer, followed by
* scaling to the final resolution of scaledWidth x scaledHeight.
*/
- (instancetype)initWithPixelBuffer:(CVPixelBufferRef)pixelBuffer
scaledWidth:(int)scaledWidth
scaledHeight:(int)scaledHeight
cropWidth:(int)cropWidth
cropHeight:(int)cropHeight
cropX:(int)cropX
cropY:(int)cropY
rotation:(RTCVideoRotation)rotation
Revert "Revert "Revert "Support more formats in RTCVideoFrame""" This reverts commit 7583390d1a3a7c4e9a77da0d77250abac0c34d1d. Reason for revert: Breaks unit tests Original change's description: > Revert "Revert "Support more formats in RTCVideoFrame"" > > This reverts commit 0789dab2cbd1617e94d7300e375163d42345f3d4. > > Reason for revert: Include obc_corevideoframebuffer target > > Original change's description: > > Revert "Support more formats in RTCVideoFrame" > > > > This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34. > > > > Reason for revert: Broke external clients > > > > Original change's description: > > > Support more formats in RTCVideoFrame > > > > > > Implement Obj-C version of webrtc::VideoFrameBuffer and use that in > > > RTCVideoFrame. > > > > > > Bug: webrtc:7785 > > > Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677 > > > Reviewed-on: https://chromium-review.googlesource.com/536773 > > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > > Reviewed-by: Magnus Jedvert <magjed@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#18691} > > > > TBR=magjed@webrtc.org,andersc@webrtc.org > > > > Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: webrtc:7785 > > Reviewed-on: https://chromium-review.googlesource.com/542837 > > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#18697} > > TBR=magjed@webrtc.org,andersc@webrtc.org > > Change-Id: I1ef5313b4a6c56eb8c7fd02d95db62c4e3c00255 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:7785 > Reviewed-on: https://chromium-review.googlesource.com/542838 > Commit-Queue: Anders Carlsson <andersc@webrtc.org> > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#18716} TBR=magjed@webrtc.org,andersc@webrtc.org Change-Id: Id12f33698eb02041607cb9a5c54f37f01bfac5b1 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:7785 Reviewed-on: https://chromium-review.googlesource.com/544840 Reviewed-by: Anders Carlsson <andersc@webrtc.org> Commit-Queue: Anders Carlsson <andersc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#18718}
2017-06-22 13:06:39 +00:00
timeStampNs:(int64_t)timeStampNs;
/** Return a frame that is guaranteed to be I420, i.e. it is possible to access
* the YUV data on it.
*/
- (RTCVideoFrame *)newI420VideoFrame;
@end
NS_ASSUME_NONNULL_END