/* * 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 #import #import NS_ASSUME_NONNULL_BEGIN /** RTCVideoEncoderFactory is an Objective-C version of webrtc::VideoEncoderFactory. */ RTC_EXPORT @protocol RTCVideoEncoderFactory - (nullable id)createEncoder:(RTCVideoCodecInfo *)info; - (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? @end /** RTCVideoDecoderFactory is an Objective-C version of webrtc::VideoDecoderFactory. */ RTC_EXPORT @protocol RTCVideoDecoderFactory - (nullable id)createDecoder:(RTCVideoCodecInfo *)info; - (NSArray *)supportedCodecs; // TODO(andersc): "supportedFormats" instead? @end #pragma mark - Default factories /** These codec factories include support for all codecs bundled with WebRTC. If using custom * codecs, create custom implementations of RTCVideoEncoderFactory and RTCVideoDecoderFactory. */ RTC_EXPORT @interface RTCDefaultVideoEncoderFactory : NSObject @property(nonatomic, retain) RTCVideoCodecInfo *preferredCodec; + (NSArray *)supportedCodecs; @end RTC_EXPORT @interface RTCDefaultVideoDecoderFactory : NSObject @end NS_ASSUME_NONNULL_END