webrtc/sdk/objc/base/RTCVideoEncoder.h
Boris Tsirkin 7b6c887ffd Format the rest of /sdk/objc folder
I already submitted separate CLs for /api and /components, here I'm
doing the rest of this folder

Format /sdk/objc/api folder

There are a lot of changes in /sdk so I'm splitting it

Formatting done via:

git ls-files | grep -E '^sdk\/objc\/.*\.(h|cc|mm)' | grep -Ev '^sdk\/objc\/(api|components).*' | xargs clang-format -i

No-Iwyu: Includes didn't change and it isn't related to formatting
Bug: webrtc:42225392
Change-Id: I8bb63f6696b2649ea642b900b9d9827980cc8315
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/373884
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43696}
2025-01-09 04:43:07 -08:00

62 lines
2.3 KiB
Objective-C

/*
* Copyright 2017 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 <Foundation/Foundation.h>
#import "RTCCodecSpecificInfo.h"
#import "RTCEncodedImage.h"
#import "RTCVideoEncoderQpThresholds.h"
#import "RTCVideoEncoderSettings.h"
#import "RTCVideoFrame.h"
#import "sdk/objc/base/RTCMacros.h"
NS_ASSUME_NONNULL_BEGIN
/** Callback block for encoder. */
typedef BOOL (^RTCVideoEncoderCallback)(
RTC_OBJC_TYPE(RTCEncodedImage) * frame,
id<RTC_OBJC_TYPE(RTCCodecSpecificInfo)> info);
/** Protocol for encoder implementations. */
RTC_OBJC_EXPORT
@protocol RTC_OBJC_TYPE
(RTCVideoEncoder)<NSObject>
- (void)setCallback : (nullable RTCVideoEncoderCallback)callback;
- (NSInteger)startEncodeWithSettings:
(RTC_OBJC_TYPE(RTCVideoEncoderSettings) *)settings
numberOfCores:(int)numberOfCores;
- (NSInteger)releaseEncoder;
- (NSInteger)encode:(RTC_OBJC_TYPE(RTCVideoFrame) *)frame
codecSpecificInfo:(nullable id<RTC_OBJC_TYPE(RTCCodecSpecificInfo)>)info
frameTypes:(NSArray<NSNumber *> *)frameTypes;
- (int)setBitrate:(uint32_t)bitrateKbit framerate:(uint32_t)framerate;
- (NSString *)implementationName;
/** Returns QP scaling settings for encoder. The quality scaler adjusts the
* resolution in order to keep the QP from the encoded images within the given
* range. Returning nil from this function disables quality scaling. */
- (nullable RTC_OBJC_TYPE(RTCVideoEncoderQpThresholds) *)scalingSettings;
/** Resolutions should be aligned to this value. */
@property(nonatomic, readonly) NSInteger resolutionAlignment;
/** If enabled, resolution alignment is applied to all simulcast layers
simultaneously so that when scaled, all resolutions comply with
'resolutionAlignment'. */
@property(nonatomic, readonly) BOOL applyAlignmentToAllSimulcastLayers;
/** If YES, the receiver is expected to resample/scale the source texture to the
expected output size. */
@property(nonatomic, readonly) BOOL supportsNativeHandle;
@end
NS_ASSUME_NONNULL_END