blob: b115b2ad39b21d1c9363d4d679137c691f985636 [file] [log] [blame]
Anders Carlsson7bca8ca2018-08-30 09:30:29 +02001/*
2 * Copyright 2017 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#import <Foundation/Foundation.h>
12
13#import "RTCMacros.h"
14#import "RTCVideoCodecInfo.h"
15#import "RTCVideoEncoder.h"
16
17NS_ASSUME_NONNULL_BEGIN
18
Kári Tristan Helgason22882562020-04-03 09:33:14 +020019/** RTCVideoEncoderFactory is an Objective-C version of
20 webrtc::VideoEncoderFactory::VideoEncoderSelector.
21 */
22RTC_OBJC_EXPORT
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020023@protocol RTC_OBJC_TYPE
24(RTCVideoEncoderSelector)<NSObject>
Kári Tristan Helgason22882562020-04-03 09:33:14 +020025
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020026 - (void)registerCurrentEncoderInfo : (RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info;
27- (nullable RTC_OBJC_TYPE(RTCVideoCodecInfo) *)encoderForBitrate:(NSInteger)bitrate;
28- (nullable RTC_OBJC_TYPE(RTCVideoCodecInfo) *)encoderForBrokenEncoder;
Kári Tristan Helgason22882562020-04-03 09:33:14 +020029
30@end
31
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020032/** RTCVideoEncoderFactory is an Objective-C version of webrtc::VideoEncoderFactory.
33 */
Mirko Bonadeie8d57242018-09-17 10:22:56 +020034RTC_OBJC_EXPORT
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020035@protocol RTC_OBJC_TYPE
36(RTCVideoEncoderFactory)<NSObject>
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020037
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020038 - (nullable id<RTC_OBJC_TYPE(RTCVideoEncoder)>)createEncoder
39 : (RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info;
40- (NSArray<RTC_OBJC_TYPE(RTCVideoCodecInfo) *> *)
41 supportedCodecs; // TODO(andersc): "supportedFormats" instead?
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020042
Kári Tristan Helgason6e706ed2019-08-23 13:02:05 +020043@optional
Mirko Bonadeia81e9c82020-05-04 16:14:32 +020044- (NSArray<RTC_OBJC_TYPE(RTCVideoCodecInfo) *> *)implementations;
45- (nullable id<RTC_OBJC_TYPE(RTCVideoEncoderSelector)>)encoderSelector;
Kári Tristan Helgason6e706ed2019-08-23 13:02:05 +020046
Anders Carlsson7bca8ca2018-08-30 09:30:29 +020047@end
48
49NS_ASSUME_NONNULL_END